use of org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy in project liferay-ide by liferay.
the class ProjectUtil method createNewSDKProject.
public static IProject createNewSDKProject(ProjectRecord projectRecord, IRuntime runtime, String sdkLocation, NewLiferayPluginProjectOp op, IProgressMonitor monitor) throws CoreException {
IDataModel newProjectDataModel = DataModelFactory.createDataModel(new PluginFacetProjectCreationDataModelProvider());
// we are importing so set flag to not create anything
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.CREATE_PROJECT_OPERATION, false);
IDataModel nestedModel = newProjectDataModel.getNestedModel(IPluginProjectDataModelProperties.NESTED_PROJECT_DM);
if (op != null) {
if (op.getUseDefaultLocation().content(true)) {
// using Eclipse workspace location
nestedModel.setBooleanProperty(IPluginProjectDataModelProperties.USE_DEFAULT_LOCATION, true);
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.LIFERAY_USE_SDK_LOCATION, false);
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.LIFERAY_USE_WORKSPACE_LOCATION, true);
} else {
nestedModel.setBooleanProperty(IPluginProjectDataModelProperties.USE_DEFAULT_LOCATION, false);
org.eclipse.sapphire.modeling.Path path = op.getLocation().content(true);
nestedModel.setStringProperty(IPluginProjectDataModelProperties.USER_DEFINED_LOCATION, path.toOSString());
if (!op.getUseDefaultLocation().content(true)) {
newProjectDataModel.setBooleanProperty(IPluginProjectDataModelProperties.LIFERAY_USE_CUSTOM_LOCATION, true);
}
}
}
setGenerateDD(newProjectDataModel, false);
IPath webXmlPath = projectRecord.getProjectLocation().append(ISDKConstants.DEFAULT_DOCROOT_FOLDER + "/WEB-INF/web.xml");
String projectName = projectRecord.getProjectName();
if (projectName.endsWith(ISDKConstants.PORTLET_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_PORTLET, true);
if (!(webXmlPath.toFile().exists())) {
createDefaultWebXml(webXmlPath.toFile(), projectRecord.getProjectName());
}
} else if (projectName.endsWith(ISDKConstants.HOOK_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_HOOK, true);
if (!(webXmlPath.toFile().exists())) {
createDefaultWebXml(webXmlPath.toFile(), projectName);
}
} else if (projectName.endsWith(ISDKConstants.EXT_PLUGIN_PROJECT_SUFFIX)) {
Path webPath = new Path(ISDKConstants.DEFAULT_DOCROOT_FOLDER + "/WEB-INF/ext-web/docroot/WEB-INF/web.xml");
webXmlPath = webXmlPath.removeLastSegments(3).append(webPath);
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_EXT, true);
if (!(webXmlPath.toFile().exists())) {
createDefaultWebXml(webXmlPath.toFile(), projectName);
}
} else if (projectName.endsWith(ISDKConstants.LAYOUTTPL_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_LAYOUTTPL, true);
} else if (projectName.endsWith(ISDKConstants.THEME_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_THEME, true);
} else if (projectName.endsWith(ISDKConstants.WEB_PLUGIN_PROJECT_SUFFIX)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.PLUGIN_TYPE_WEB, true);
}
IFacetedProjectWorkingCopy fpwc = (IFacetedProjectWorkingCopy) newProjectDataModel.getProperty(IFacetProjectCreationDataModelProperties.FACETED_PROJECT_WORKING_COPY);
fpwc.setProjectName(projectName);
IPath projectLocation = projectRecord.getProjectLocation();
String projectDirName = projectLocation.lastSegment();
// for now always set a project location (so it can be used by facet install methods) may be unset later
fpwc.setProjectLocation(projectRecord.getProjectLocation());
String pluginType = null;
if (op != null) {
PluginType type = op.getPluginType().content();
pluginType = type.name();
if (PluginType.theme.name().equals(pluginType)) {
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.THEME_PARENT, op.getThemeParent().content(true));
newProjectDataModel.setProperty(IPluginProjectDataModelProperties.THEME_TEMPLATE_FRAMEWORK, op.getThemeFramework().content(true));
}
} else {
pluginType = guessPluginType(fpwc);
}
SDKPluginFacetUtil.configureProjectAsRuntimeProject(fpwc, runtime, pluginType, sdkLocation, projectRecord);
String portlet = PluginType.portlet.name();
if ((op != null) && portlet.equals(pluginType)) {
IPortletFramework portletFramework = op.getPortletFramework().content(true);
portletFramework.configureNewProject(newProjectDataModel, fpwc);
}
// if project is located in natural workspace location then don't need to set a project location
IPath workspaceLocation = CoreUtil.getWorkspaceRoot().getLocation();
if (workspaceLocation.append(projectDirName).equals(projectLocation)) {
fpwc.setProjectLocation(null);
}
fpwc.commitChanges(monitor);
return fpwc.getProject();
}
use of org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy in project mdw-designer by CenturyLinkCloud.
the class ConvertProjectAction method run.
@SuppressWarnings("restriction")
public void run(IAction action) {
if (selection != null) {
Object element = selection.getFirstElement();
try {
IProject project = (element instanceof IJavaProject) ? ((IJavaProject) element).getProject() : (IProject) element;
IFacetedProject facetedProject = ProjectFacetsManager.create(project);
if (facetedProject == null) {
org.eclipse.wst.common.project.facet.ui.internal.ConvertProjectToFacetedFormRunnable.runInProgressDialog(shell, project);
facetedProject = ProjectFacetsManager.create(project);
}
IFacetedProjectWorkingCopy workingCopy = org.eclipse.wst.common.project.facet.ui.internal.SharedWorkingCopyManager.getWorkingCopy(facetedProject);
workingCopy.addProjectFacet(ProjectFacetsManager.getProjectFacet("mdw.workflow").getDefaultVersion());
if (!facetedProject.hasProjectFacet(ProjectFacetsManager.getProjectFacet("jst.ear")) && !facetedProject.hasProjectFacet(ProjectFacetsManager.getProjectFacet("jst.web")) && !facetedProject.hasProjectFacet(ProjectFacetsManager.getProjectFacet("jst.utility"))) {
workingCopy.addProjectFacet(ProjectFacetsManager.getProjectFacet("jst.utility").getDefaultVersion());
}
PreferenceDialog dialog = PreferencesUtil.createPropertyDialogOn(shell, element, FACETS_PROP_PAGE_ID, null, null, PreferencesUtil.OPTION_NONE);
if (dialog != null) {
dialog.open();
}
} catch (Exception ex) {
PluginMessages.uiError(shell, ex, "Convert Workflow Project");
}
}
}
Aggregations