public void openProject(Project project) { final ProjectImpl projectImpl = (ProjectImpl) project; final ProjectInformationImpl projectInformationImpl = projectImpl.getLookup().lookup(ProjectInformationImpl.class); final WorkspaceProviderImpl workspaceProviderImpl = project.getLookup().lookup(WorkspaceProviderImpl.class); if (projects.hasCurrentProject()) { closeCurrentProject(); } projects.addProject(projectImpl); projects.setCurrentProject(projectImpl); projectInformationImpl.open(); for (Workspace ws : project.getLookup().lookup(WorkspaceProviderImpl.class).getWorkspaces()) { fireWorkspaceEvent(EventType.INITIALIZE, ws); } if (!workspaceProviderImpl.hasCurrentWorkspace()) { if (workspaceProviderImpl.getWorkspaces().length == 0) { Workspace workspace = newWorkspace(project); openWorkspace(workspace); } else { Workspace workspace = workspaceProviderImpl.getWorkspaces()[0]; openWorkspace(workspace); } } else { fireWorkspaceEvent(EventType.SELECT, workspaceProviderImpl.getCurrentWorkspace()); } }
@Override public void newProject() { closeCurrentProject(); ProjectImpl project = new ProjectImpl(projects.nextProjectId()); projects.addProject(project); openProject(project); }