List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:com.iw.plugins.spindle.ui.wizards.fields.ContainerDialogField.java
License:Mozilla Public License
protected IStatus containerChanged() { SpindleStatus status = new SpindleStatus(); fCurrentRoot = null;/*ww w.j av a2 s . c o m*/ String str = getContainerText(); if (str == null || "".equals(str)) { status.setError(UIPlugin.getString(fName + ".error.EnterContainerName")); return status; } IPath path = new Path(str); IResource res = fWorkspaceRoot.findMember(path); if (res != null) { int resType = res.getType(); if (resType == IResource.PROJECT || resType == IResource.FOLDER) { IProject proj = res.getProject(); if (!proj.isOpen()) { status.setError( UIPlugin.getString(fName + ".error.ProjectClosed", proj.getFullPath().toString())); return status; } IJavaProject jproject = JavaCore.create(proj); fCurrentRoot = jproject.getPackageFragmentRoot(res); if (fCurrentRoot.exists()) { try { if (!proj.hasNature(JavaCore.NATURE_ID)) { if (resType == IResource.PROJECT) { status.setWarning(UIPlugin.getString(fName + ".warning.NotAJavaProject")); } else { status.setWarning(UIPlugin.getString(fName + ".warning.NotInAJavaProject")); } return status; } } catch (CoreException e) { status.setWarning(UIPlugin.getString(fName + ".warning.NotAJavaProject")); } try { if (!CoreUtils.isOnBuildPath(jproject, fCurrentRoot)) { status.setWarning(UIPlugin.getString(fName + ".warning.NotOnClassPath", str)); } } catch (JavaModelException e) { status.setWarning(UIPlugin.getString(fName + ".warning.NotOnClassPath", str)); } if (fCurrentRoot.isArchive()) { status.setError(UIPlugin.getString(fName + ".error.ContainerIsBinary", str)); return status; } } else { status.setError(UIPlugin.getString(fName + ".error.NotOnClassPath", str)); } return status; } else { status.setError(UIPlugin.getString(fName + ".error.NotAFolder", str)); return status; } } else { status.setError(UIPlugin.getString(fName + ".error.ContainerDoesNotExist", str)); return status; } }
From source file:com.iw.plugins.spindle.wizards.fields.ContainerDialogField.java
License:Mozilla Public License
public void init(IJavaElement elem, IRunnableContext context) { super.init(context); setButtonLabel(MessageUtil.getString(name + ".button")); IPackageFragmentRoot initRoot = null; if (elem != null) { initRoot = Utils.getPackageFragmentRoot(elem); if (initRoot == null || initRoot.isArchive()) { IJavaProject jproject = elem.getJavaProject(); try { initRoot = null;/*from w w w . j a v a 2s.com*/ IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { initRoot = roots[i]; break; } } } catch (JavaModelException e) { TapestryPlugin.getDefault().logException(e); } if (initRoot == null) { initRoot = jproject.getPackageFragmentRoot(""); } } setPackageFragmentRoot(initRoot, true); } }
From source file:com.iw.plugins.spindle.wizards.fields.ContainerDialogField.java
License:Mozilla Public License
private IPackageFragmentRoot chooseSourceContainer(IJavaElement initElement) { final IJavaProject thisProject = initElement.getJavaProject(); Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; ISelectionStatusValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { public boolean isSelectedValid(Object element) { try { boolean accepted = false; if (thisProjectOnly) { accepted = element instanceof IJavaProject && thisProject.equals((IJavaProject) element); } else { accepted = element instanceof IJavaProject; }/*from w ww. j a v a2 s. co m*/ if (accepted) { IJavaProject jproject = (IJavaProject) element; IPath path = jproject.getProject().getFullPath(); return (jproject.findPackageFragmentRoot(path) != null); } else if (element instanceof IPackageFragmentRoot) { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } return true; } catch (JavaModelException e) { TapestryPlugin.getDefault().logException(e); // just log, no ui in validation } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IJavaProject) { return thisProject.equals((IJavaProject) element); } if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { TapestryPlugin.getDefault().logException(e); return false; } } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setSorter(new JavaElementSorter()); dialog.setTitle(MessageUtil.getString(name + ".ChooseSourceContainerDialog.title")); dialog.setMessage(MessageUtil.getString(name + ".ChooseSourceContainerDialog.description")); dialog.addFilter(filter); dialog.setInput(JavaCore.create(workspaceRoot)); dialog.setInitialSelection(initElement); if (dialog.open() == dialog.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
From source file:com.iw.plugins.spindle.wizards.fields.ContainerDialogField.java
License:Mozilla Public License
protected IStatus containerChanged() { SpindleStatus status = new SpindleStatus(); currentRoot = null;// www . j a v a 2 s .c om String str = getContainerText(); if (str == null || "".equals(str)) { status.setError(MessageUtil.getString(name + ".error.EnterContainerName")); return status; } IPath path = new Path(str); IResource res = workspaceRoot.findMember(path); if (res != null) { int resType = res.getType(); if (resType == IResource.PROJECT || resType == IResource.FOLDER) { IProject proj = res.getProject(); if (!proj.isOpen()) { status.setError(MessageUtil.getFormattedString(name + ".error.ProjectClosed", proj.getFullPath().toString())); return status; } IJavaProject jproject = JavaCore.create(proj); currentRoot = jproject.getPackageFragmentRoot(res); if (currentRoot.exists()) { try { if (!proj.hasNature(JavaCore.NATURE_ID)) { if (resType == IResource.PROJECT) { status.setWarning(MessageUtil.getString(name + ".warning.NotAJavaProject")); } else { status.setWarning(MessageUtil.getString(name + ".warning.NotInAJavaProject")); } return status; } } catch (CoreException e) { status.setWarning(MessageUtil.getString(name + ".warning.NotAJavaProject")); } try { if (!Utils.isOnBuildPath(jproject, currentRoot)) { status.setWarning( MessageUtil.getFormattedString(name + ".warning.NotOnClassPath", str)); } } catch (JavaModelException e) { status.setWarning(MessageUtil.getFormattedString(name + ".warning.NotOnClassPath", str)); } if (currentRoot.isArchive()) { status.setError(MessageUtil.getFormattedString(name + ".error.ContainerIsBinary", str)); return status; } } return status; } else { status.setError(MessageUtil.getFormattedString(name + ".error.NotAFolder", str)); return status; } } else { status.setError(MessageUtil.getFormattedString(name + ".error.ContainerDoesNotExist", str)); return status; } }
From source file:com.liferay.ide.hook.core.operation.NewHookDataModelProvider.java
License:Open Source License
/** * Subclasses may extend this method to perform their own retrieval mechanism. This implementation simply returns * the JDT package fragment root for the selected source folder. This method may return null. * * @see IJavaProject#getPackageFragmentRoot(org.eclipse.core.resources.IResource) * @return IPackageFragmentRoot//from w ww . ja v a 2 s.c o m */ protected IPackageFragmentRoot getJavaPackageFragmentRoot() { IProject project = getTargetProject(); if (project != null) { IJavaProject aJavaProject = JemProjectUtilities.getJavaProject(project); // Return the source folder for the java project of the selected // project if (aJavaProject != null) { IFolder sourcefolder = (IFolder) getProperty(JAVA_SOURCE_FOLDER); if (sourcefolder != null) return aJavaProject.getPackageFragmentRoot(sourcefolder); } } return null; }
From source file:com.liferay.ide.service.core.operation.NewServiceBuilderDataModelProvider.java
License:Open Source License
protected IPackageFragmentRoot getJavaPackageFragmentRoot() { IProject project = getTargetProject(); if (project != null) { IJavaProject aJavaProject = JemProjectUtilities.getJavaProject(project); // Return the source folder for the java project of the selected // project if (aJavaProject != null) { IFolder sourcefolder = (IFolder) getProperty(JAVA_SOURCE_FOLDER); if (sourcefolder != null) { return aJavaProject.getPackageFragmentRoot(sourcefolder); }//www . j a v a 2 s .c o m } } return null; }
From source file:com.motorola.studio.android.generatecode.JDTUtils.java
License:Apache License
/** * Retrieves the list of subclasses of a given {@code superclass} inside an {@code androidProject}. * @throws JavaModelException If there are problems parsing java files. * *///w w w .ja v a 2 s . co m public static List<IType> getAvailableSubclasses(IProject androidProject, String superclass, IProgressMonitor monitor) throws JavaModelException { List<IType> availableActivities = new ArrayList<IType>(); SubMonitor subMonitor = SubMonitor.convert(monitor); subMonitor.beginTask("Resolving available types", 1000); //$NON-NLS-1$ IJavaProject javaProject = JavaCore.create(androidProject); IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(androidProject.findMember("src")); //$NON-NLS-1$ ArrayList<IPackageFragment> fragments = new ArrayList<IPackageFragment>(); for (IJavaElement element : root.getChildren()) { fragments.add((IPackageFragment) element); } subMonitor.worked(100); if (fragments.size() == 0) { subMonitor.worked(900); } for (IPackageFragment fragment : fragments) { ICompilationUnit[] units = fragment.getCompilationUnits(); if (units.length == 0) { subMonitor.worked(900 / fragments.size()); } for (int j = 0; j < units.length; j++) { ICompilationUnit unit = units[j]; IType[] availableTypes = unit.getTypes(); if (availableTypes.length == 0) { subMonitor.worked(900 / fragments.size() / units.length); } for (int k = 0; k < availableTypes.length; k++) { ITypeHierarchy hierarchy = availableTypes[k].newSupertypeHierarchy( subMonitor.newChild(900 / fragments.size() / units.length / availableTypes.length)); if (isSubclass(hierarchy, availableTypes[k], superclass)) { availableActivities.add(availableTypes[k]); } } } } return availableActivities; }
From source file:com.motorola.studio.android.generatecode.JDTUtils.java
License:Apache License
/** * Retrieves the list of fragments of a given {@code androidProject}. * @throws JavaModelException If there are problems parsing java files. * *///from w ww.ja va 2 s . c o m public static List<IType> getAvailableFragmentsSubclasses(IProject androidProject, IProgressMonitor monitor) throws JavaModelException { List<IType> availableFragments = new ArrayList<IType>(); SubMonitor subMonitor = SubMonitor.convert(monitor); subMonitor.beginTask("Resolving available types", 1000); //$NON-NLS-1$ IJavaProject javaProject = JavaCore.create(androidProject); IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(androidProject.findMember("src")); //$NON-NLS-1$ ArrayList<IPackageFragment> fragments = new ArrayList<IPackageFragment>(); for (IJavaElement element : root.getChildren()) { fragments.add((IPackageFragment) element); } subMonitor.worked(100); if (fragments.size() == 0) { subMonitor.worked(900); } for (IPackageFragment fragment : fragments) { ICompilationUnit[] units = fragment.getCompilationUnits(); if (units.length == 0) { subMonitor.worked(900 / fragments.size()); } for (int j = 0; j < units.length; j++) { ICompilationUnit unit = units[j]; IType[] availableTypes = unit.getTypes(); if (availableTypes.length == 0) { subMonitor.worked(900 / fragments.size() / units.length); } for (int k = 0; k < availableTypes.length; k++) { ITypeHierarchy hierarchy = availableTypes[k].newSupertypeHierarchy( subMonitor.newChild(900 / fragments.size() / units.length / availableTypes.length)); if (isFragmentSubclass(hierarchy, availableTypes[k])) { availableFragments.add(availableTypes[k]); } } } } return availableFragments; }
From source file:com.motorola.studio.android.wizards.buildingblocks.NewBuildingBlocksWizardPage.java
License:Apache License
@Override protected IPackageFragmentRoot chooseContainer() { IJavaElement initElement = getPackageFragmentRoot(); ISelectionStatusValidator validator = new ElementTreeValidator(); ViewerFilter filter = new ElementTreeViewFilter(); StandardJavaElementContentProvider provider = new ElementTreeContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setComparator(new JavaElementComparator()); dialog.setValidator(validator);/* ww w .j a va 2 s . c o m*/ dialog.setTitle(CodeUtilsNLS.UI_NewBuildingBlocksWizardPage_WizardTitle); dialog.setMessage(CodeUtilsNLS.UI_NewBuildingBlocksWizardPage_MessageChooseFolder); dialog.setInput(JavaCore.create(fWorkspaceRoot)); dialog.setInitialSelection(initElement); dialog.addFilter(filter); dialog.setHelpAvailable(false); IPackageFragmentRoot rootSelection = null; if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; rootSelection = jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { rootSelection = (IPackageFragmentRoot) element; } } return rootSelection; }
From source file:com.mtcflow.project.util.MTCProjectSupport.java
License:Open Source License
/** * For this marvelous project we need to: - create the default Eclipse * project - add the custom project nature - create the folder structure * /*from w w w .j a va 2 s . c o m*/ * @param projectName * @param location * @param natureId * @return */ public static IProject createProject(String projectName, URI location) { Assert.isNotNull(projectName); Assert.isTrue(projectName.trim().length() > 0); try { // create eclipse project IProject project = createBaseProject(projectName, location); project.setDefaultCharset("UTF-8", null); addNature(project); // create java project IJavaProject javaProject = JavaCore.create(project); javaProject.setOption(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_5); javaProject.setOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_5); javaProject.setOption(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_5); // add bin/ouput folder IFolder binFolder = project.getFolder("bin"); // binFolder.create(false, true, null); javaProject.setOutputLocation(binFolder.getFullPath(), null); // add libs to project class path List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>(); IVMInstall vmInstall = JavaRuntime.getDefaultVMInstall(); // create source folder IFolder sourceFolder = project.getFolder("src"); sourceFolder.create(false, true, null); IPackageFragmentRoot srcRoot = javaProject.getPackageFragmentRoot(sourceFolder); IClasspathEntry[] cEntries = new IClasspathEntry[3]; cEntries[0] = JavaRuntime.getDefaultJREContainerEntry(); // cEntries[2] = JavaCore.new cEntries[1] = JavaCore.newSourceEntry(srcRoot.getPath()); cEntries[2] = JavaCore.newContainerEntry(new Path("org.eclipse.pde.core.requiredPlugins")); javaProject.setRawClasspath(cEntries, null); /* * Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: * LePlugine Bundle-SymbolicName: LePlugine Bundle-Version: * 1.0.0.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.7 */ String[] paths = { "transformations/T2M", //$NON-NLS-1$ "transformations/M2M", //$NON-NLS-1$ "transformations/M2T", //$NON-NLS-1$ "transformations/HOT", //$NON-NLS-1$ "mtcs", //$NON-NLS-1$ "metamodels", //$NON-NLS-1$ "libraries", //$NON-NLS-1$ "scripts", //$NON-NLS-1$ "validations", //$NON-NLS-1$ "tests", //$NON-NLS-1$ "models", "META-INF" }; //$NON-NLS-1$ addToProjectStructure(javaProject.getProject(), paths); createTemplateFileInProjectAt(javaProject.getProject(), "build.properties", "build.properties"); createTemplateFileInProjectAt(javaProject.getProject(), "default.mtc", "/mtcs/default.mtc"); createTemplateFileInProjectAt(javaProject.getProject(), "default_diagram.mtcd", "/mtcs/default.mtcd"); Manifest manifest = new Manifest(); manifest.getMainAttributes().putValue("Manifest-Version", "1.0"); manifest.getMainAttributes().putValue("Bundle-ManifestVersion", "2"); manifest.getMainAttributes().putValue("Bundle-Name", projectName); manifest.getMainAttributes().putValue("Bundle-SymbolicName", projectName); manifest.getMainAttributes().putValue("Bundle-Version", "1.0.0"); manifest.getMainAttributes().putValue("Require-Bundle", "com.mtcflow.model,com.mtcflow.engine,com.mtcflow.engine.core"); ByteArrayOutputStream out = new ByteArrayOutputStream(); manifest.write(out); javaProject.getProject().getFile("/META-INF/MANIFEST.MF") .create(new ByteArrayInputStream(out.toByteArray()), true, null); return javaProject.getProject(); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException("Error creating the project", ex); } }