List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:org.eclipse.e4.internal.tools.wizards.classes.AbstractNewClassPage.java
License:Open Source License
private IPackageFragmentRoot choosePackageRoot() { IJavaElement initElement = clazz.getFragmentRoot(); Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override//from w ww . j a va 2 s . c o 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) { JavaPlugin.log(e.getStatus()); // just log, no UI in validation } 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) { if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { JavaPlugin.log(e.getStatus()); // just log, no UI in validation 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(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_title); dialog.setMessage(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_description); dialog.addFilter(filter); dialog.setInput(JavaCore.create(fWorkspaceRoot)); dialog.setInitialSelection(initElement); 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:org.eclipse.e4.xwt.tools.ui.designer.dialogs.AccessorConfigurationDialog.java
License:Open Source License
/** * Uses the standard container selection dialog to choose the new value for the container field. *///from ww w. ja v a 2 s .c o m private IPackageFragmentRoot chooseSourceContainer(IPackageFragmentRoot root) { Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { 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) { JavaPlugin.log(e.getStatus()); // 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 IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { JavaPlugin.log(e.getStatus()); // just log, no ui in validation 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"); dialog.setMessage("Choose a source folder:"); dialog.addFilter(filter); dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())); 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 root; }
From source file:org.eclipse.edt.ide.ui.wizards.EGLProjectUtility.java
License:Open Source License
private static IClasspathEntry[] createNewClasspathEntries(IJavaProject javaProject, String folderName, String binFolderName, String encoding, IClasspathEntry[] oldEntries) throws InvocationTargetException { // Get or create the necessary folders as well as the file. IFolder baseFolder = createFolderIfNecessary(javaProject.getProject(), folderName, encoding); IFolder binFolder = createFolderIfNecessary(javaProject.getProject(), binFolderName, encoding); try {//ww w .j a v a2 s . c om IPackageFragmentRoot sourceRoot = javaProject.getPackageFragmentRoot(baseFolder); IPackageFragmentRoot binRoot = javaProject.getPackageFragmentRoot(binFolder); IClasspathEntry newEntry = JavaCore.newSourceEntry(sourceRoot.getPath(), new IPath[] {}, binRoot.getPath()); if (!EGLProjectUtility.classpathEntryExists(javaProject, newEntry)) { //oldEntries = javaProject.getRawClasspath(); IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1]; newEntries[0] = newEntry; System.arraycopy(oldEntries, 0, newEntries, 1, oldEntries.length); return newEntries; } } catch (JavaModelException ex) { throw new InvocationTargetException(ex, ex.getMessage()); } // Return the old ones if a new entry wasn't created return oldEntries; }
From source file:org.eclipse.egit.ui.test.team.actions.ShowBlameActionHandlerTest.java
License:Open Source License
private IJavaProject createJavaProject(final Repository repository, final String projectName) throws Exception { final IJavaProject[] jProjectHolder = new IJavaProject[] { null }; IWorkspaceRunnable runnable = new IWorkspaceRunnable() { @Override/*from w w w .j av a 2 s . com*/ public void run(IProgressMonitor monitor) throws CoreException { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IProject project = root.getProject(projectName); if (project.exists()) { project.delete(true, null); TestUtil.waitForJobs(100, 5000); } IProjectDescription desc = ResourcesPlugin.getWorkspace().newProjectDescription(projectName); desc.setLocation(new Path(new File(repository.getWorkTree(), projectName).getPath())); project.create(desc, null); project.open(null); TestUtil.waitForJobs(50, 5000); // Create a "bin" folder IFolder bin = project.getFolder(BIN_FOLDER_NAME); if (!bin.exists()) { bin.create(IResource.FORCE | IResource.DERIVED, true, null); } IPath outputLocation = bin.getFullPath(); // Create a "src" folder IFolder src = project.getFolder(SRC_FOLDER_NAME); if (!src.exists()) { src.create(IResource.FORCE, true, null); } addNatureToProject(project, JavaCore.NATURE_ID); // Set up the IJavaProject IJavaProject jProject = JavaCore.create(project); IPackageFragmentRoot srcContainer = jProject.getPackageFragmentRoot(src); IClasspathEntry srcEntry = JavaCore.newSourceEntry(srcContainer.getPath()); // Create a JRE classpath entry using the default JRE IClasspathEntry jreEntry = JavaRuntime.getDefaultJREContainerEntry(); jProject.setRawClasspath(new IClasspathEntry[] { srcEntry, jreEntry }, outputLocation, true, null); // Create a package with a single test class IPackageFragment javaPackage = srcContainer.createPackageFragment(PACKAGE_NAME, true, null); javaPackage.createCompilationUnit(JAVA_FILE_NAME, "package " + PACKAGE_NAME + ";\nclass " + JAVA_CLASS_NAME + " {\n\n}", true, null); jProjectHolder[0] = jProject; } }; ResourcesPlugin.getWorkspace().run(runnable, null); return jProjectHolder[0]; }
From source file:org.eclipse.emf.mwe.internal.ui.debug.sourcelookup.SourceLookupUtil.java
License:Open Source License
private static IPackageFragmentRoot getPackageFragmentRoot(final IRuntimeClasspathEntry entry) { IResource resource = entry.getResource(); if (resource != null) { // our own project jars... IProject project = resource.getProject(); IJavaProject jp = JavaCore.create(project); if (project.isOpen() && jp.exists()) { IPackageFragmentRoot root = jp.getPackageFragmentRoot(resource); return root; }// w ww . ja v a2 s . co m } if (model == null) { model = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()); } // ... or external jars, that are registered in one of the open projects at runtime IPath reqPath = (resource == null ? new Path(entry.getLocation()) : entry.getPath()); try { for (IJavaProject jp : model.getJavaProjects()) { if (jp.getProject().isOpen()) { for (IPackageFragmentRoot root : jp.getPackageFragmentRoots()) { if (root.isExternal() && root.getPath().equals(reqPath)) { return root; } } } } } catch (JavaModelException e) { Activator.logError(e); // should not occur } return null; }
From source file:org.eclipse.examples.slideshow.jdt.URLHandlingTests.java
License:Open Source License
@BeforeClass public static void setup() throws Exception { // TODO This doesn't work. Need to figure out what's missing. IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); IProject project = root.getProject("JavaProject"); project.create(null);//from w w w . j a v a 2s . c o m project.open(null); IProjectDescription description = project.getDescription(); description.setNatureIds(new String[] { JavaCore.NATURE_ID }); project.setDescription(description, null); IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot sourceFolder = javaProject.getPackageFragmentRoot(project); sourceFolder.open(null); IPackageFragment pack = sourceFolder.createPackageFragment("org.eclipse.test", false, null); pack.open(null); String contents = "package org.eclipse.test;\npublic class Junk {\npublic static void main(String[] args) {}}"; pack.createCompilationUnit("Junk.java", contents, false, null); project.build(IncrementalProjectBuilder.FULL_BUILD, null); // root.accept(new IResourceVisitor() { // // public boolean visit(IResource resource) throws CoreException { // System.out.println(resource); // return true; // } // // }); }
From source file:org.eclipse.gmf.tests.gen.CompilationTest.java
License:Open Source License
public void testPreexistingImportConflicts() throws Exception { DiaGenSource gmfGenSource = createLibraryGen(false); gmfGenSource.getGenDiagram().getEditorGen().setSameFileForDiagramAndModel(false); String pluginId = gmfGenSource.getGenDiagram().getEditorGen().getPlugin().getID(); IProject diagramProject = ResourcesPlugin.getWorkspace().getRoot().getProject(pluginId); if (!diagramProject.isAccessible()) { //Initialize the plugin the same way it would be initialized if present. Generator.createEMFProject(diagramProject.getFolder("src").getFullPath(), null, //$NON-NLS-1$ Collections.<IProject>emptyList(), new NullProgressMonitor(), Generator.EMF_PLUGIN_PROJECT_STYLE); }//from w ww. j a v a2s.com IJavaProject javaProject = JavaCore.create(diagramProject); assertTrue(javaProject.exists()); IPackageFragment pf = javaProject.getPackageFragmentRoot(diagramProject.getFolder("src")) //$NON-NLS-1$ .createPackageFragment(gmfGenSource.getGenDiagram().getNotationViewFactoriesPackageName(), false, new NullProgressMonitor()); ICompilationUnit cu = pf .getCompilationUnit(gmfGenSource.getGenDiagram().getNotationViewFactoryClassName() + ".java"); //$NON-NLS-1$ String contents = MessageFormat.format( "package {0};\nimport {2};\n /**\n * @generated\n */\npublic class {1} '{ }'", //$NON-NLS-1$ gmfGenSource.getGenDiagram().getNotationViewFactoriesPackageName(), gmfGenSource.getGenDiagram().getNotationViewFactoryClassName(), "javax.swing.text.View"); if (cu.exists()) { IBuffer buffer = cu.getBuffer(); buffer.setContents(contents); buffer.save(new NullProgressMonitor(), true); } else { pf.createCompilationUnit(cu.getElementName(), contents, false, new NullProgressMonitor()); } generateAndCompile(gmfGenSource); }
From source file:org.eclipse.imp.wizards.IMPWizardPage.java
License:Open Source License
protected WizardDialog getDialogWithClassName(String componentID, String interfaceQualName, String superClassName, Text text, WizardDialog dialog, NewClassWizardPage page) { try {//from ww w.java 2 s. c o m String intfName = interfaceQualName.substring(interfaceQualName.lastIndexOf('.') + 1); IJavaProject javaProject = JavaCore.create(getProjectOfRecord()); if (javaProject == null) { ErrorHandler.reportError("Java project is null", true); return null; } // RMF 7/5/2005 - If the project doesn't yet have the necessary // plug-in // dependency for this reference to be satisfiable, an error ensues. if (interfaceQualName != null && interfaceQualName.length() > 0) { if (javaProject.findType(interfaceQualName) == null) { ErrorHandler.reportError("Base interface '" + interfaceQualName + "' does not exist in project's build path; be sure to add the appropriate plugin to the dependencies.", true); return null; // TODO: Do we want to continue from this point, or should // we just throw an exception? } } if (superClassName != null && superClassName.length() > 0) { if (javaProject.findType(superClassName) == null) { ErrorHandler.reportError("Base class '" + superClassName + "' does not exist in project's build path; be sure to add the appropriate plugin to the dependencies.", true); return null; // TODO: Do we want to continue from this point, or should // we just throw an exception? } } String givenPackageName = ""; String givenClassName = ""; if (text != null && text.getText().length() > 0) { givenPackageName = text.getText().substring(0, text.getText().lastIndexOf('.')); givenClassName = text.getText().substring(text.getText().lastIndexOf('.') + 1); } page.setSuperClass(superClassName, true); ArrayList<String> interfaces = new ArrayList<String>(); if (interfaceQualName != null && interfaceQualName.length() > 0) { interfaces.add(interfaceQualName); page.setSuperInterfaces(interfaces, true); } String langName = fLanguageText.getText(); String langClassName = upperCaseFirst(langName); String langPackageName = lowerCaseFirst(langName); // Compute name of package for new service class String servicePackageName = givenPackageName; if (servicePackageName == null || servicePackageName.length() == 0) { servicePackageName = "org.eclipse.imp." + ((langPackageName == null || langPackageName.length() == 0) ? "" : langPackageName) + componentID.substring(componentID.lastIndexOf('.') + 1); } // Compute unqualified name of new service class String serviceClassName = givenClassName; if (serviceClassName == null || serviceClassName.length() == 0) { serviceClassName = ((langClassName == null || langClassName.length() == 0) ? "" : langClassName); if (intfName.charAt(0) == 'I' && Character.isUpperCase(intfName.charAt(1))) serviceClassName = serviceClassName + intfName.substring(1); else serviceClassName = serviceClassName + intfName; } WizardUtilities.createSubFolders(servicePackageName.replace('.', '\\'), getProjectOfRecord(), new NullProgressMonitor()); // SMS 2 Mar 2008: Setting of srcFolder could be more sophisticated // TODO: set srcFolder with a properly computed value IFolder srcFolder = getProjectOfRecord().getFolder("src/"); IPackageFragmentRoot pkgFragRoot = javaProject.getPackageFragmentRoot(srcFolder); IPackageFragment pkgFrag = pkgFragRoot.getPackageFragment(servicePackageName); page.setPackageFragmentRoot(pkgFragRoot, true); page.setPackageFragment(pkgFrag, true); page.setTypeName(serviceClassName, true); // SWTUtil.setDialogSize(dialog, 400, 500); // if (dialog.open() == WizardDialog.OK) { // String name= page.getTypeName(); // String pkg= page.getPackageText(); // if (pkg.length() > 0) // name= pkg + '.' + name; // text.setText(name); // fPackageName= pkg; // } return dialog; } catch (Exception e) { ErrorHandler.reportError("Could not create class implementing " + interfaceQualName, true, e); } // return null; return dialog; }
From source file:org.eclipse.jdt.internal.core.JavaModelManager.java
License:Open Source License
/** * Creates and returns a class file element for the given <code>.class</code> file, * its project being the given project. Returns <code>null</code> if unable * to recognize the class file./* w ww. j ava 2 s. c om*/ */ public static IClassFile createClassFileFrom(IFile file, IJavaProject project) { if (file == null) { return null; } if (project == null) { project = JavaCore.create(file.getProject()); } IPackageFragment pkg = (IPackageFragment) determineIfOnClasspath(file, project); if (pkg == null) { // fix for 1FVS7WE // not on classpath - make the root its folder, and a default package PackageFragmentRoot root = (PackageFragmentRoot) project.getPackageFragmentRoot(file.getParent()); pkg = root.getPackageFragment(CharOperation.NO_STRINGS); } return pkg.getClassFile(file.getName()); }
From source file:org.eclipse.jdt.internal.core.JavaModelManager.java
License:Open Source License
/** * Creates and returns a compilation unit element for the given <code>.java</code> * file, its project being the given project. Returns <code>null</code> if unable * to recognize the compilation unit./* w w w.j av a 2s . co m*/ */ public static ICompilationUnit createCompilationUnitFrom(IFile file, IJavaProject project) { if (file == null) return null; if (project == null) { project = JavaCore.create(file.getProject()); } IPackageFragment pkg = (IPackageFragment) determineIfOnClasspath(file, project); if (pkg == null) { // not on classpath - make the root its folder, and a default package PackageFragmentRoot root = (PackageFragmentRoot) project.getPackageFragmentRoot(file.getParent()); pkg = root.getPackageFragment(CharOperation.NO_STRINGS); if (VERBOSE) { System.out.println("WARNING : creating unit element outside classpath (" + Thread.currentThread() //$NON-NLS-1$ + "): " + file.getFullPath()); //$NON-NLS-1$ } } return pkg.getCompilationUnit(file.getName()); }