@Override public boolean canFinish() { return generalPage.isDemo() || (generalPage.isPageComplete() && providerPage.isPageComplete() && themePage.isPageComplete()); }
@Override public boolean performFinish() { boolean retVal = true; final String projectName = generalPage.getProjectName(); IPath workspacePath = ResourcesPlugin.getWorkspace().getRoot().getLocation(); IWorkspace workspace = ResourcesPlugin.getWorkspace(); final IProject projHandle = workspace.getRoot().getProject(projectName); final IProjectDescription desc = workspace.newProjectDescription(projHandle.getName()); WorkspaceModifyOperation modifyOperation = new WorkspaceModifyOperation() { @Override protected void execute(IProgressMonitor monitor) throws CoreException { try { projHandle.create(desc, monitor); projHandle.open(IResource.BACKGROUND_REFRESH, new SubProgressMonitor(monitor, 2000)); } finally { monitor.done(); } } }; try { ProjectCreationRequest projectCreationRequest = new ProjectCreationRequest(); projectCreationRequest.setTemplateName(generalPage.getTemplateName()); projectCreationRequest.setBaseDir(PathsUtil.toOsLocation(workspacePath)); projectCreationRequest.setProjectName(projectName); projectCreationRequest.setProvider(providerPage.getProvider()); projectCreationRequest.setDefaultPackageName(generalPage.getDefaultPackageName()); projectCreationRequest.setHostName(providerPage.getHostName()); projectCreationRequest.setHostPort(Integer.parseInt(providerPage.getHostPort())); projectCreationRequest.setCodePage(providerPage.getCodePage()); projectCreationRequest.setSupportTheme(generalPage.isProjectSupportTheme()); projectCreationRequest.setProjectTheme(themePage.getProjectTheme()); projectCreationRequest.setZipFile(generalPage.getZipFile()); projectCreationRequest.setTemplateFetcher(retriever.getTemplateFetcher()); EclipseDesignTimeExecuter.instance().createProject(projectCreationRequest); } catch (Exception e) { throw (new RuntimeException(e)); } try { getContainer().run(true, true, modifyOperation); } catch (Exception e) { throw (new RuntimeException(e)); } return retVal; }