List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getPackageFragment
IPackageFragment getPackageFragment(String packageName);
From source file:com.android.ide.eclipse.adt.internal.editors.manifest.ManifestInfo.java
License:Open Source License
/** * Returns the {@link IPackageFragment} for the package registered in the manifest * * @return the {@link IPackageFragment} for the package registered in the manifest *//*from w w w. ja v a 2 s .co m*/ @Nullable public IPackageFragment getPackageFragment() { sync(); try { IJavaProject javaProject = BaseProjectHelper.getJavaProject(mProject); if (javaProject != null) { IPackageFragmentRoot root = ManifestInfo.getSourcePackageRoot(javaProject); if (root != null) { return root.getPackageFragment(mPackage); } } } catch (CoreException e) { AdtPlugin.log(e, null); } return null; }
From source file:com.android.ide.eclipse.adt.internal.editors.manifest.model.UiClassAttributeNode.java
License:Open Source License
private void createNewClass(String packageName, String className) { // create the wizard page for the class creation, and configure it NewClassWizardPage page = new NewClassWizardPage(); // set the parent class page.setSuperClass(mReferenceClass, true /* canBeModified */); // get the source folders as java elements. IPackageFragmentRoot[] roots = getPackageFragmentRoots(getProject(), true /*include_containers*/); IPackageFragmentRoot currentRoot = null; IPackageFragment currentFragment = null; int packageMatchCount = -1; for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { // we have a perfect match! we use it. currentRoot = root;/*from ww w . ja v a 2 s . co m*/ currentFragment = fragment; packageMatchCount = -1; break; } else { // we don't have a match. we look for the fragment with the best match // (ie the closest parent package we can find) try { IJavaElement[] children; children = root.getChildren(); for (IJavaElement child : children) { if (child instanceof IPackageFragment) { fragment = (IPackageFragment) child; if (packageName.startsWith(fragment.getElementName())) { // its a match. get the number of segments String[] segments = fragment.getElementName().split("\\."); //$NON-NLS-1$ if (segments.length > packageMatchCount) { packageMatchCount = segments.length; currentFragment = fragment; currentRoot = root; } } } } } catch (JavaModelException e) { // Couldn't get the children: we just ignore this package root. } } } ArrayList<IPackageFragment> createdFragments = null; if (currentRoot != null) { // if we have a perfect match, we set it and we're done. if (packageMatchCount == -1) { page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(currentFragment, true /* canBeModified */); } else { // we have a partial match. // create the package. We have to start with the first segment so that we // know what to delete in case of a cancel. try { createdFragments = new ArrayList<IPackageFragment>(); int totalCount = packageName.split("\\.").length; //$NON-NLS-1$ int count = 0; int index = -1; // skip the matching packages while (count < packageMatchCount) { index = packageName.indexOf('.', index + 1); count++; } // create the rest of the segments, except for the last one as indexOf will // return -1; while (count < totalCount - 1) { index = packageName.indexOf('.', index + 1); count++; createdFragments.add(currentRoot.createPackageFragment(packageName.substring(0, index), true /* force*/, new NullProgressMonitor())); } // create the last package createdFragments.add(currentRoot.createPackageFragment(packageName, true /* force*/, new NullProgressMonitor())); // set the root and fragment in the Wizard page page.setPackageFragmentRoot(currentRoot, true /* canBeModified*/); page.setPackageFragment(createdFragments.get(createdFragments.size() - 1), true /* canBeModified */); } catch (JavaModelException e) { // if we can't create the packages, there's a problem. we revert to the default // package for (IPackageFragmentRoot root : roots) { // Get the java element for the package. // This method is said to always return a IPackageFragment even if the // underlying folder doesn't exist... IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null && fragment.exists()) { page.setPackageFragmentRoot(root, true /* canBeModified*/); page.setPackageFragment(fragment, true /* canBeModified */); break; } } } } } else if (roots.length > 0) { // if we haven't found a valid fragment, we set the root to the first source folder. page.setPackageFragmentRoot(roots[0], true /* canBeModified*/); } // if we have a starting class name we use it if (className != null) { page.setTypeName(className, true /* canBeModified*/); } // create the action that will open it the wizard. OpenNewClassWizardAction action = new OpenNewClassWizardAction(); action.setConfiguredWizardPage(page); action.run(); IJavaElement element = action.getCreatedElement(); if (element != null) { if (element.getElementType() == IJavaElement.TYPE) { IType type = (IType) element; if (mPostCreationAction != null) { mPostCreationAction.processNewType(type); } handleNewType(type); } } else { // lets delete the packages we created just for this. // we need to start with the leaf and go up if (createdFragments != null) { try { for (int i = createdFragments.size() - 1; i >= 0; i--) { createdFragments.get(i).delete(true /* force*/, new NullProgressMonitor()); } } catch (JavaModelException e) { e.printStackTrace(); } } } }
From source file:com.android.ide.eclipse.adt.internal.editors.manifest.model.UiPackageAttributeNode.java
License:Open Source License
/** * Handles response to the Label hyper link being activated. *//* w w w . j a v a2 s .c o m*/ private void doLabelClick() { // get the current package name String package_name = getTextWidget().getText().trim(); if (package_name.length() == 0) { createNewPackage(); } else { // Try to select the package in the Package Explorer for the current // project and the current editor's site. IProject project = getProject(); if (project == null) { AdtPlugin.log(IStatus.ERROR, "Failed to get project for UiPackageAttribute"); //$NON-NLS-1$ return; } IWorkbenchPartSite site = getUiParent().getEditor().getSite(); if (site == null) { AdtPlugin.log(IStatus.ERROR, "Failed to get editor site for UiPackageAttribute"); //$NON-NLS-1$ return; } for (IPackageFragmentRoot root : getPackageFragmentRoots(project)) { IPackageFragment fragment = root.getPackageFragment(package_name); if (fragment != null && fragment.exists()) { ShowInPackageViewAction action = new ShowInPackageViewAction(site); action.run(fragment); // This action's run() doesn't provide the status (although internally it could) // so we just assume it worked. return; } } } }
From source file:com.arcbees.gwtp.plugin.core.common.GWTPNewTypeWizardPage.java
License:Apache License
protected void ensurePackageExists(IProgressMonitor monitor) throws JavaModelException { IPackageFragmentRoot root = getPackageFragmentRoot(); IPackageFragment pack = getPackageFragment(); if (pack == null) { pack = root.getPackageFragment(""); //$NON-NLS-1$ }// w ww . j a va2s .c om if (!pack.exists()) { String packName = pack.getElementName(); pack = root.createPackageFragment(packName, true, new SubProgressMonitor(monitor, 1)); } }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
public Object getHierarchicalPackageParent(IPackageFragment child) { String name = child.getElementName(); IPackageFragmentRoot parent = (IPackageFragmentRoot) child.getParent(); int index = name.lastIndexOf('.'); if (index != -1) { String realParentName = name.substring(0, index); IPackageFragment element = parent.getPackageFragment(realParentName); if (element.exists()) { try { if (fFoldPackages && isEmpty(element) && findSinglePackageChild(element, parent.getChildren()) != null) { return getHierarchicalPackageParent(element); }/*www . j a v a 2s .co m*/ } catch (JavaModelException e) { // ignore } return element; } /*else { // bug 65240 IResource resource= element.getResource(); if (resource != null) { return resource; } }*/ } // if (parent.getResource() instanceof IProject) { // return parent.getJavaProject(); // } return parent; }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
public List<JarEntry> getChildren(JavaProject project, int rootId, String path) throws JavaModelException { IPackageFragmentRoot root = getPackageFragmentRoot(project, rootId); if (root == null) { return NO_ENTRIES; }/* w w w.j a va 2s.com*/ if (path.startsWith("/")) { // jar file and folders Object[] resources = root.getNonJavaResources(); for (Object resource : resources) { if (resource instanceof JarEntryDirectory) { JarEntryDirectory directory = (JarEntryDirectory) resource; Object[] children = findJarDirectoryChildren(directory, path); if (children != null) { return convertToJarEntry(children, root); } } } } else { // packages and class files IPackageFragment fragment = root.getPackageFragment(path); if (fragment == null) { return NO_ENTRIES; } return convertToJarEntry(getPackageContent(fragment), root); } return NO_ENTRIES; }
From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java
License:Open Source License
public static IPackageFragment getPackageFragment(String name, IFileInfoProvider fileInfoProvider) throws CoreException { IPackageFragmentRoot packageFragmentRoot = getPackageFragmentRoot(fileInfoProvider); IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(name); if (packageFragment.exists() == false) { packageFragment = packageFragmentRoot.createPackageFragment(name, false, null); }/*from w w w. ja v a 2 s . c o m*/ return packageFragment; }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.helpers.RpcServiceLayerCreator.java
License:Open Source License
private void generateSharedFiles(String packageName, IProgressMonitor monitor) throws CoreException, MalformedTreeException, BadLocationException { String sharedPackageName = packageName; if (sharedPackageName.contains("server")) { //$NON-NLS-N$ sharedPackageName = sharedPackageName.replace("server", "shared"); //$NON-NLS-N$ } else {/*from w w w .java 2 s . c o m*/ sharedPackageName += ".shared"; //$NON-NLS-N$ } // get shared source folder IFolder gaeSharedFolder = gaeProject.getFolder(SHARED_FOLDER_NAME); if (!gaeSharedFolder.exists()) { gaeSharedFolder.create(true, true, new SubProgressMonitor(monitor, 2)); CodegenUtils.setupSourceFolders(JavaCore.create(gaeProject), gaeSharedFolder, monitor); } if (androidProject != null) { IFolder androidLinkedFolder = androidProject.getFolder(SHARED_FOLDER_NAME); if (!androidLinkedFolder.exists()) { /* The variable workspaceLoc is required only for Eclipse 3.5. * For Eclipses after 3.5, the project specific path variable WORKSPACE_LOC * can be used instead. */ String workspaceLoc = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString(); // use variables for shared folder path IPath sharedFolderPath = new Path(workspaceLoc + "/" //$NON-NLS-N$ + gaeProject.getName() + "/" + SHARED_FOLDER_NAME); androidLinkedFolder.createLink(sharedFolderPath, IResource.ALLOW_MISSING_LOCAL, new SubProgressMonitor(monitor, 1)); CodegenUtils.setupSourceFolders(JavaCore.create(androidProject), androidLinkedFolder, monitor); } } IPackageFragmentRoot srcFolder = JavaCore.create(gaeProject).getPackageFragmentRoot(gaeSharedFolder); IPackageFragment pack = srcFolder.getPackageFragment(sharedPackageName); if (!pack.exists()) { pack = srcFolder.createPackageFragment(sharedPackageName, true, new SubProgressMonitor(monitor, 2)); } // for all the entities, generate Proxy, Request for (IType anEntity : entityList) { current = anEntity; createCompilationUnit(pack, current.getElementName() + "Proxy", RpcType.PROXY, //$NON-NLS-N$ new SubProgressMonitor(monitor, 1)); } // generate Request String requestFileName = serviceName.replace("Service", "") + "Request"; //$NON-NLS-N$ createCompilationUnit(pack, requestFileName, RpcType.REQUEST, //$NON-NLS-N$ new SubProgressMonitor(monitor, 1)); // generate RequestFactory // check if there is a request factory class in the project String rfactoryFileName = serviceName.replace("Service", "") + "RequestFactory"; //$NON-NLS-N$ List<IType> reqFactoryList = RequestFactoryUtils.findTypes(JavaCore.create(gaeProject), RpcType.REQ_FACTORY); if (reqFactoryList.isEmpty()) { createCompilationUnit(pack, rfactoryFileName, RpcType.REQ_FACTORY, new SubProgressMonitor(monitor, 1)); //$NON-NLS-N$ } else { addReqFactoryBody(reqFactoryList.get(0), new SubProgressMonitor(monitor, 1)); } }
From source file:com.google.gdt.eclipse.core.java.JavaModelSearch.java
License:Open Source License
/** * Returns a list of package fragments for the given package name. * /*w ww . j ava 2 s . c o m*/ * @param javaProject the java project whose classpath will be searched * @param packageName the package name to find corresponding fragments for * @return a possibly empty list of package fragments * @throws JavaModelException */ public static List<IPackageFragment> getPackageFragments(IJavaProject javaProject, String packageName) throws JavaModelException { List<IPackageFragment> packageFragments = new ArrayList<IPackageFragment>(); for (IPackageFragmentRoot packageFragmentRootroot : javaProject.getAllPackageFragmentRoots()) { IPackageFragment packageFragment = packageFragmentRootroot.getPackageFragment(packageName); if (packageFragment.exists()) { packageFragments.add(packageFragment); } } return packageFragments; }
From source file:com.google.gdt.eclipse.designer.uibinder.editor.UiBinderPairResourceProvider.java
License:Open Source License
/** * @return the ui.xml {@link IFile} for given Java one. *///from ww w . j a va2 s .com private IFile getUIFile(IFile javaFile) throws Exception { IProject project = javaFile.getProject(); IJavaProject javaProject = JavaCore.create(project); // prepare form name String javaFormName = StringUtils.removeEnd(javaFile.getName(), ".java"); // prepare package name String packageName; { IFolder folder = (IFolder) javaFile.getParent(); IPackageFragment packageFragmentJava = (IPackageFragment) JavaCore.create(folder); packageName = packageFragmentJava.getElementName(); } // try to find ui.xml file in package with same name for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName); if (packageFragment.exists()) { for (Object object : packageFragment.getNonJavaResources()) { if (object instanceof IFile) { IFile uiFile = (IFile) object; String uiFileName = uiFile.getName(); if (StringUtils.endsWithIgnoreCase(uiFileName, ".ui.xml")) { String uiFormName = StringUtils.removeEndIgnoreCase(uiFileName, ".ui.xml"); if (uiFormName.equals(javaFormName)) { return uiFile; } } } } } } // no ui.xml file return null; }