List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java
License:Open Source License
private static IPackageFragmentRoot createNewSourceFolder(String name, IFileInfoProvider fFileInfoProvider) throws CoreException { IProject project = fFileInfoProvider.getProject(); IJavaProject javaProject = JavaCore.create(project); IFolder srcFolder = project.getFolder(name); int i = 0;// w w w. j a v a2 s. c o m while (srcFolder.exists()) { String newName = name + i++; srcFolder = project.getFolder(newName); } srcFolder.create(false, true, null); IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(srcFolder); IClasspathEntry[] entries = javaProject.getRawClasspath(); IClasspathEntry[] updated = new IClasspathEntry[entries.length + 1]; System.arraycopy(entries, 0, updated, 0, entries.length); updated[entries.length] = JavaCore.newSourceEntry(root.getPath()); javaProject.setRawClasspath(updated, null); return root; }
From source file:com.google.gdt.eclipse.appengine.rpc.util.JavaUtils.java
License:Open Source License
/** * Creates a package fragment root from a path. The path should be * pre-validated using {@link #validateContainer(String)}, */// w w w . ja v a 2 s . c o m public static IPackageFragmentRoot createContainer(String containerPath) { IPath path = new Path(containerPath); IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); IResource res = workspaceRoot.findMember(path); if (res != null) { int resType = res.getType(); if (resType == IResource.PROJECT || resType == IResource.FOLDER) { IProject proj = res.getProject(); IJavaProject jproject = JavaCore.create(proj); return jproject.getPackageFragmentRoot(res); } } return null; }
From source file:com.google.gdt.eclipse.appengine.rpc.util.JavaUtils.java
License:Open Source License
public static IStatus validateContainer(String packageRootText) { StatusInfo status = new StatusInfo(); String str = packageRootText; if (str.length() == 0) { status.setError("Source folder name is empty."); //$NON-NLS-1$ return status; }/* w w w .j a v a2 s . c om*/ IPath path = new Path(str); IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); 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(Messages.format(NewWizardMessages.NewContainerWizardPage_error_ProjectClosed, BasicElementLabels.getPathLabel(proj.getFullPath(), false))); return status; } IJavaProject jproject = JavaCore.create(proj); IPackageFragmentRoot root = jproject.getPackageFragmentRoot(res); if (res.exists()) { if (isVirtual(res)) { status.setError("Source folder cannot be a virtual folder."); //$NON-NLS-1$ return status; } try { if (!proj.hasNature(JavaCore.NATURE_ID)) { if (resType == IResource.PROJECT) { status.setError(NewWizardMessages.NewContainerWizardPage_warning_NotAJavaProject); } else { status.setWarning( NewWizardMessages.NewContainerWizardPage_warning_NotInAJavaProject); } return status; } if (root.isArchive()) { status.setError(Messages.format( NewWizardMessages.NewContainerWizardPage_error_ContainerIsBinary, BasicElementLabels.getPathLabel(path, false))); return status; } if (root.getKind() == IPackageFragmentRoot.K_BINARY) { status.setWarning(Messages.format( NewWizardMessages.NewContainerWizardPage_warning_inside_classfolder, BasicElementLabels.getPathLabel(path, false))); } else if (!jproject.isOnClasspath(root)) { status.setWarning( Messages.format(NewWizardMessages.NewContainerWizardPage_warning_NotOnClassPath, BasicElementLabels.getPathLabel(path, false))); } } catch (JavaModelException e) { status.setWarning(NewWizardMessages.NewContainerWizardPage_warning_NotOnClassPath); } catch (CoreException e) { status.setWarning(NewWizardMessages.NewContainerWizardPage_warning_NotAJavaProject); } } return status; } else { status.setError(Messages.format(NewWizardMessages.NewContainerWizardPage_error_NotAFolder, BasicElementLabels.getPathLabel(path, false))); return status; } } else { status.setError(Messages.format(NewWizardMessages.NewContainerWizardPage_error_ContainerDoesNotExist, BasicElementLabels.getPathLabel(path, false))); return status; } }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.RPCWizardUISupport.java
License:Open Source License
public IPackageFragmentRoot chooseContainer(IType type) { Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override//from w ww. ja v a 2s. co m public boolean isSelectedValid(Object element) { try { if (element instanceof IJavaProject) { 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) { AppEngineRPCPlugin.log(e); } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { @Override public boolean select(Viewer viewer, Object parent, Object element) { // only show appengine projects if (element instanceof IJavaProject) { IJavaProject jp = (IJavaProject) element; return isAppEngineProject(jp.getProject()); } // only show source folders if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { AppEngineRPCPlugin.log(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.setComparator(new JavaElementComparator()); dialog.setTitle("Source Folder Selection"); //$NON-NLS-1$ dialog.setMessage("&Choose a source folder:"); //$NON-NLS-1$ dialog.addFilter(filter); dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())); if (type != null) { dialog.setInitialSelection(JavaUtils.getPackageFragmentRoot(type)); } dialog.setHelpAvailable(false); if (dialog.open() == Window.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.google.gdt.eclipse.core.java.ClasspathResourceUtilities.java
License:Open Source License
private static IPackageFragmentRoot getPackageFragmentRootForResource(IResource resource, IJavaProject javaProject) throws JavaModelException { while (resource != null) { IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(resource); /*// w ww. jav a2s . co m * Not using JavaModelSearch.isValidElement since checking for exclusions * from the buildpath is the caller's responsibility. */ if (root != null && root.exists()) { return root; } resource = resource.getParent(); } return null; }
From source file:com.google.gwt.eclipse.core.speedtracer.ViewSourceServlet.java
License:Open Source License
private IPackageFragmentRoot getPackageFragmentRoot(String jarPathString, String preferredProjectName) throws IOException { try {//w w w. j a v a 2 s . c o m IFile jarIFile = getFile(jarPathString); // The JAR is in the workspace return JavaCore.createJarPackageFragmentRootFrom(jarIFile); } catch (IOException e) { // JAR must not be in the workspace (or is not a file), continue.. } File jarFile = new File(jarPathString); // Iterate projects to find the external JAR IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); List<IProject> projects = new ArrayList<IProject>(Arrays.asList(root.getProjects())); IProject preferredProject = preferredProjectName != null ? root.getProject(preferredProjectName) : null; if (preferredProject != null && preferredProject.exists()) { // Search the preferred project first projects.remove(preferredProject); projects.add(0, preferredProject); } for (IProject project : projects) { IJavaProject javaProject = JavaCore.create(project); if (!javaProject.exists()) { continue; } try { IClasspathEntry[] classpathEntries = javaProject.getResolvedClasspath(true); for (IClasspathEntry classpathEntry : classpathEntries) { IPath path = classpathEntry.getPath(); if (jarFile.equals(path.toFile())) { return javaProject.getPackageFragmentRoot(path.toOSString()); } } } catch (JavaModelException e) { GWTPluginLog.logWarning(e, "Could not check " + project.getName() + " for JAR file"); continue; } } return null; }
From source file:com.ibm.xsp.extlib.designer.relational.utils.ProjectUtils.java
License:Open Source License
public static void writeJavaFile(final IProject project, final String folder, final String packageName, final String name, final String content) throws Exception { try {//from w w w. j a va 2 s .c om IJavaProject javaProject = JavaCore.create(project); IFolder sourceFolder = project.getFolder(folder); IPackageFragment pack = javaProject.getPackageFragmentRoot(sourceFolder) .createPackageFragment(packageName, true, null); pack.createCompilationUnit(name, content, true, null); } catch (Exception e) { String msg = StringUtil.format("Could not create the Java file \"{0}\"", name); // $NLX-ProjectUtils.CouldnotcreatetheJavafile0-1$ throw new Exception(msg, e); } }
From source file:com.ifedorenko.m2e.sourcelookup.internal.JavaProjectSources.java
License:Open Source License
static ISourceContainer getProjectSourceContainer(IJavaProject javaProject) { List<ISourceContainer> containers = new ArrayList<ISourceContainer>(); boolean hasSources = false; try {/* ww w . j av a2s . c o m*/ for (IClasspathEntry cpe : javaProject.getRawClasspath()) { switch (cpe.getEntryKind()) { case IClasspathEntry.CPE_SOURCE: hasSources = true; break; case IClasspathEntry.CPE_LIBRARY: IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); IResource lib = workspaceRoot.findMember(cpe.getPath()); IPackageFragmentRoot fragmentRoot; if (lib != null) { fragmentRoot = javaProject.getPackageFragmentRoot(lib); } else { fragmentRoot = javaProject.getPackageFragmentRoot(cpe.getPath().toOSString()); } containers.add(new PackageFragmentRootSourceContainer(fragmentRoot)); break; } } } catch (JavaModelException e) { // ignore... maybe log } if (hasSources) { containers.add(0, new JavaProjectSourceContainer(javaProject)); } if (containers.isEmpty()) { return null; } if (containers.size() == 1) { return containers.get(0); } return new CompositeSourceContainer(containers); }
From source file:com.iw.plugins.spindle.ui.wizards.fields.ContainerDialogField.java
License:Mozilla Public License
public void init(IJavaElement elem, IRunnableContext context) { super.init(context); setButtonLabel(UIPlugin.getString(fName + ".button")); IPackageFragmentRoot initRoot = null; if (elem != null) { initRoot = CoreUtils.getPackageFragmentRoot(elem); if (initRoot == null) { IJavaProject jproject = elem.getJavaProject(); try { initRoot = null;/* w w w . j ava2 s .c om*/ 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) { UIPlugin.log(e); } if (initRoot == null) { initRoot = jproject.getPackageFragmentRoot(""); } } setPackageFragmentRoot(initRoot, true); } }
From source file:com.iw.plugins.spindle.ui.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 TypeSelectionValidator(acceptedClasses, false) { public boolean isSelectedValid(Object element) { try { boolean accepted = false; if (fThisProjectOnly) { accepted = element instanceof IJavaProject && thisProject.equals((IJavaProject) element); } else { accepted = element instanceof IJavaProject; }//from w ww. ja v a 2 s . c om 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) { UIPlugin.log(e); // just log, no ui in validation } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypeFilter(acceptedClasses) { public boolean select(Viewer viewer, Object parent, Object element) { if (fThisProjectOnly && thisProject == null) return false; if (element instanceof IJavaProject) { return thisProject.equals((IJavaProject) element); } if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { UIPlugin.log(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(UIPlugin.getString(fName + ".ChooseSourceContainerDialog.title")); dialog.setMessage(UIPlugin.getString(fName + ".ChooseSourceContainerDialog.description")); dialog.addFilter(filter); dialog.setInput(JavaCore.create(fWorkspaceRoot)); dialog.setInitialSelection(initElement); if (dialog.open() == Window.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; }