@Override public void closeCurrentProject() { if (projects.hasCurrentProject()) { ProjectImpl currentProject = projects.getCurrentProject(); // Event if (currentProject.getLookup().lookup(WorkspaceProvider.class).hasCurrentWorkspace()) { fireWorkspaceEvent( EventType.UNSELECT, currentProject.getLookup().lookup(WorkspaceProvider.class).getCurrentWorkspace()); } for (Workspace ws : currentProject.getLookup().lookup(WorkspaceProviderImpl.class).getWorkspaces()) { fireWorkspaceEvent(EventType.CLOSE, ws); } // Close currentProject.getLookup().lookup(ProjectInformationImpl.class).close(); projects.closeCurrentProject(); fireWorkspaceEvent(EventType.DISABLE, null); // Remove projects.removeProject(currentProject); } }