@Override public void execute(IProgressMonitor monitor) throws InvocationTargetException, CoreException { IWorkspace workspace = ResourcesPlugin.getWorkspace(); IProject newProject = config.getProject(); URI location = config.getEclipseProjectLocationUri(); String name = newProject.getName(); IProjectDescription description = workspace.newProjectDescription(name); description.setLocationURI(location); String operationLabel = getDescription(); SubMonitor subMonitor = SubMonitor.convert(monitor, operationLabel, 120); CreateProjectOperation operation = new CreateProjectOperation(description, operationLabel); try { operation.execute(subMonitor.newChild(10), uiInfoAdapter); mostImportant = createAndConfigureProjectContent(newProject, config, subMonitor.newChild(80)); } catch (ExecutionException ex) { throw new InvocationTargetException(ex); } IFacetedProject facetedProject = ProjectFacetsManager.create( newProject, true /* convertIfNecessary */, subMonitor.newChild(5)); addAppEngineFacet(facetedProject, subMonitor.newChild(6)); addAdditionalDependencies(newProject, config, subMonitor.newChild(20)); fixTestSourceDirectorySettings(newProject, subMonitor.newChild(5)); }
private IProject createProject( IProjectDescription projectDescription ) { String label = "Create project " + projectName; try { new CreateProjectOperation( projectDescription, label ).execute( newProgressMonitor(), null ); } catch( ExecutionException ee ) { throw new RuntimeException( ee ); } return ResourcesPlugin.getWorkspace().getRoot().getProject( projectName ); }