protected IFacetedProject getFacetedProject() { IFacetedProject retval = null; IProject project = getProject(); if (project != null) { retval = ProjectUtil.getFacetedProject(project); } return retval; }
public void checkValidProjectTypes() { IProject[] projects = CoreUtil.getAllProjects(); boolean hasValidProjectTypes = false; boolean hasJsfFacet = false; for (IProject project : projects) { if (ProjectUtil.isLiferayProject(project)) { Set<IProjectFacetVersion> facets = ProjectUtil.getFacetedProject(project).getProjectFacets(); if (validProjectTypes != null && facets != null) { String[] validTypes = validProjectTypes.split(","); for (String validProjectType : validTypes) { for (IProjectFacetVersion facet : facets) { String id = facet.getProjectFacet().getId(); if (isJsfPortlet && id.equals("jst.jsf")) { hasJsfFacet = true; } if (id.startsWith("liferay.") && id.equals("liferay." + validProjectType)) { hasValidProjectTypes = true; } } } } } } if (isJsfPortlet) { hasValidProjectTypes = hasJsfFacet && hasValidProjectTypes; } if (!hasValidProjectTypes) { final Shell activeShell = Display.getDefault().getActiveShell(); Boolean openNewLiferayProjectWizard = MessageDialog.openQuestion( activeShell, "New Element", "There are no suitable Liferay projects available for this new element.\nDo you want" + " to open the \'New Liferay Project\' wizard now?"); if (openNewLiferayProjectWizard) { Action[] actions = NewPluginProjectDropDownAction.getNewProjectActions(); if (actions.length > 0) { actions[0].run(); this.checkValidProjectTypes(); } } } }
@Override public boolean performOk() { final String selectedRuntimeName = this.runtimeCombo.getText(); if (!CoreUtil.isNullOrEmpty(selectedRuntimeName)) { final org.eclipse.wst.common.project.facet.core.runtime.IRuntime runtime = RuntimeManager.getRuntime(selectedRuntimeName); if (runtime != null) { final IFacetedProject fProject = ProjectUtil.getFacetedProject(getProject()); final org.eclipse.wst.common.project.facet.core.runtime.IRuntime primaryRuntime = fProject.getPrimaryRuntime(); if (!runtime.equals(primaryRuntime)) { Job job = new WorkspaceJob("Setting targeted runtime for project.") // $NON-NLS-1$ { @Override public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { IStatus retval = Status.OK_STATUS; try { fProject.setTargetedRuntimes(Collections.singleton(runtime), monitor); fProject.setPrimaryRuntime(runtime, monitor); } catch (Exception e) { retval = ProjectUIPlugin.createErrorStatus( "Could not set targeted runtime", e); // $NON-NLS-1$ } return retval; } }; job.schedule(); } } else { return false; } } return true; }