Search in sources :

Example 1 with ProjectConfigerUtil

use of net.heartsome.cat.ts.core.file.ProjectConfigerUtil in project translationstudio8 by heartsome.

the class ImportProjectWizardPage2 method createProjects.

/**
	 * 创建项目
	 * @return
	 */
public boolean createProjects(IProgressMonitor monitor) {
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }
    Display.getDefault().syncExec(new Runnable() {

        public void run() {
            for (ProjectResource projRoot : rootProjectArray) {
                if (selectElementTree.getChecked(projRoot)) {
                    totalWorkSum++;
                }
            }
        }
    });
    monitor.beginTask(Messages.getString("importProjectWizardPage.beginImportProj"), totalWorkSum);
    Display.getDefault().syncExec(new Runnable() {

        public void run() {
            openedIfileMap = getAllOpenedIFile();
        }
    });
    try {
        // 一个项目一个项目的进行相关处理
        for (final ProjectResource projRoot : rootProjectArray) {
            // 如果当前项目未被选择。跳过继续执行
            runContinue = false;
            Display.getDefault().syncExec(new Runnable() {

                public void run() {
                    if (!selectElementTree.getChecked(projRoot)) {
                        runContinue = true;
                    }
                }
            });
            if (runContinue) {
                continue;
            }
            monitor.setTaskName(MessageFormat.format(Messages.getString("importProjectWizardPage.beginImportProjName"), new Object[] { projRoot.getProjectName() }));
            final IProject newProject = root.getProject(projRoot.getProjectName());
            if (!projRoot.isProjectRepeat()) {
                // 创建项目
                newProject.create(null);
                if (!newProject.isOpen()) {
                    newProject.open(null);
                }
            }
            IFile configIFile = newProject.getFile(Constant.FILE_CONFIG);
            ProjectConfigerUtil configUtil = null;
            if (configIFile.exists()) {
                configUtil = new ProjectConfigerUtil(newProject);
                configUtil.setDbMementos();
                configUtil.clearConfig();
            }
            final StringBuilder sb = new StringBuilder();
            try {
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        try {
                            createProjectImpl(projRoot, newProject);
                        } catch (Exception e) {
                            sb.append(Messages.getString("importProjectWizardPage.importFail"));
                            LOGGER.error("", e);
                        }
                    }
                });
            } finally {
                if (null != configUtil) {
                    configUtil.restoreMementos();
                }
                if (!sb.toString().isEmpty()) {
                    monitor.done();
                    Display.getDefault().syncExec(new Runnable() {

                        public void run() {
                            MessageDialog.openWarning(getShell(), Messages.getString("importProject.all.dialog.warning"), Messages.getString("importProjectWizardPage.importFail"));
                        }
                    });
                    return false;
                }
            }
            createConfigFile(projRoot, newProject);
            createRequireFolder(newProject);
            resetConfigContent(newProject);
            monitor.worked(1);
        }
    } catch (Exception e) {
        e.printStackTrace();
        monitor.done();
        Display.getDefault().syncExec(new Runnable() {

            public void run() {
                MessageDialog.openWarning(getShell(), Messages.getString("importProject.all.dialog.warning"), Messages.getString("importProjectWizardPage.importFail"));
            }
        });
        LOGGER.error(Messages.getString("importProjectWizardPage.LOGG.importEroor"), e);
        //	disposeImg();
        return false;
    }
    disposeImg();
    monitor.done();
    Display.getDefault().syncExec(new Runnable() {

        public void run() {
            MessageDialog.openInformation(getShell(), Messages.getString("importProject.all.dialog.info"), Messages.getString("importProjectWizardPage.importSuccess"));
        }
    });
    return true;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) IFile(org.eclipse.core.resources.IFile) ProjectResource(net.heartsome.cat.ts.importproject.widgiet.ProjectResource) ProjectConfigerUtil(net.heartsome.cat.ts.core.file.ProjectConfigerUtil) IProject(org.eclipse.core.resources.IProject) CoreException(org.eclipse.core.runtime.CoreException) ZipException(java.util.zip.ZipException) InvocationTargetException(java.lang.reflect.InvocationTargetException) TarException(org.eclipse.ui.internal.wizards.datatransfer.TarException) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 ZipException (java.util.zip.ZipException)1 ProjectConfigerUtil (net.heartsome.cat.ts.core.file.ProjectConfigerUtil)1 ProjectResource (net.heartsome.cat.ts.importproject.widgiet.ProjectResource)1 IFile (org.eclipse.core.resources.IFile)1 IProject (org.eclipse.core.resources.IProject)1 CoreException (org.eclipse.core.runtime.CoreException)1 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)1 TarException (org.eclipse.ui.internal.wizards.datatransfer.TarException)1