List of usage examples for org.eclipse.jdt.core IPackageFragment exists
boolean exists();
From source file:at.bestsolution.javafx.ide.jdt.internal.JavaClassResourceService.java
License:Open Source License
IResource handleElementCreation(IContainer container, String packageName, String className) {
// FIXME This is temporary
if (!container.getProject().isOpen()) {
try {/*w w w . j a v a2 s . co m*/
container.getProject().open(new NullProgressMonitor());
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
IProject pr = container.getProject();
IJavaElement jElement = getInitialJavaElement(container);
IPackageFragmentRoot jRoot = getFragmentRoot(jElement);
try {
IJavaProject jProject = JavaCore.create(pr);
jProject.open(new NullProgressMonitor());
jRoot.open(new NullProgressMonitor());
IPackageFragment fragment = jRoot.getPackageFragment(packageName);
if (!fragment.exists()) {
((IFolder) fragment.getResource()).create(true, true, null);
}
ICompilationUnit u = fragment.getCompilationUnit(className + ".java");
IFile f = (IFile) u.getResource();
ByteArrayInputStream in = new ByteArrayInputStream(
new String("public class " + className + " {\n}").getBytes());
f.create(in, IFile.FORCE | IFile.KEEP_HISTORY, new NullProgressMonitor());
in.close();
// pr.build(IncrementalProjectBuilder.FULL_BUILD, new
// NullProgressMonitor());
return f;
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.err.println(jRoot);
return null;
}
From source file:byke.tests.workspaceutils.JavaProject.java
License:Open Source License
public ICompilationUnit createCompilationUnit(final IPackageFragmentRoot sourceFolder, String packageName, String cuName, String contents) throws JavaModelException, CoreException { IPackageFragment packageFragment = sourceFolder.getPackageFragment(packageName); if (!packageFragment.exists()) { packageFragment = sourceFolder.createPackageFragment(packageName, false, null); }//w w w. ja va2 s .co m return createCompilationUnit(packageFragment, cuName, contents); }
From source file:ccw.ClojureCore.java
License:Open Source License
/** * Tries to open a clojure file in an editor * @return an editor input if the file has been found, or null *//*w w w.j av a2s . c o m*/ private static IEditorInput findEditorInput(IPackageFragmentRoot packageFragmentRoot, IPackageFragment packageFragment, String searchedPackage, String searchedFileName) throws JavaModelException { if (packageFragment.exists() && packageFragment.getElementName().equals(searchedPackage)) { for (Object njr : packageFragment.isDefaultPackage() ? packageFragmentRoot.getNonJavaResources() : packageFragment.getNonJavaResources()) { if (njr instanceof IJarEntryResource) { IJarEntryResource jer = (IJarEntryResource) njr; if (jer.getName().equals(searchedFileName)) { return new JarEntryEditorInput(jer); } } else if (njr instanceof IFile) { IFile file = (IFile) njr; if (file.getName().equals(searchedFileName)) { return new FileEditorInput(file); } } else if (njr instanceof File) { File f = (File) njr; if (f.getName().equals(searchedFileName)) { IFileStore fileStore = EFS.getLocalFileSystem().getStore(f.toURI()); return new FileStoreEditorInput(fileStore); } } } } return null; }
From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.java
License:Open Source License
private void createNewClass(String fqcn) { int pos = fqcn.lastIndexOf('.'); String packageName = pos < 0 ? "" : fqcn.substring(0, pos); //$NON-NLS-1$ String className = pos <= 0 || pos >= fqcn.length() ? "" : fqcn.substring(pos + 1); //$NON-NLS-1$ // create the wizard page for the class creation, and configure it NewClassWizardPage page = new NewClassWizardPage(); // set the parent class page.setSuperClass(SdkConstants.CLASS_VIEW, true /* canBeModified */); // get the source folders as java elements. IPackageFragmentRoot[] roots = getPackageFragmentRoots(mEditorDelegate.getEditor().getProject(), false /*includeContainers*/, true /*skipGenFolder*/); 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 w w w .j a v a 2 s . c o 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) { // 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.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;//w w w . ja v a2 s . c o 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. *//*from w w w .j a v a 2 s .co 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.android.ide.eclipse.adt.internal.refactoring.core.AndroidPackageRenameParticipant.java
License:Open Source License
/** * Returns Android gen package text change * * @param pm the progress monitor// w ww . ja va 2s . c o m * * @return Android gen package text change * @throws CoreException * @throws OperationCanceledException */ public Change getGenPackageChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { if (mIsPackage) { IPackageFragment genJavaPackageFragment = getGenPackageFragment(); if (genJavaPackageFragment != null && genJavaPackageFragment.exists()) { return new RenamePackageChange(genJavaPackageFragment, mNewName, true); } } return null; }
From source file:com.android.ide.eclipse.adt.internal.refactoring.core.FixImportsJob.java
License:Open Source License
@Override public IStatus runInWorkspace(final IProgressMonitor monitor) throws CoreException { if (mJavaPackage == null || mAndroidManifest == null || !mAndroidManifest.exists()) { return Status.CANCEL_STATUS; }/*from ww w . jav a 2s . c o m*/ IProject project = mAndroidManifest.getProject(); IJavaProject javaProject = JavaCore.create(project); if (javaProject == null || !javaProject.isOpen()) { return Status.CANCEL_STATUS; } project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor); IMarker[] markers = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); for (int i = 0; i < markers.length; i++) { IMarker marker = markers[i]; IResource resource = marker.getResource(); try { IJavaElement element = JavaCore.create(resource); if (element != null && (element instanceof ICompilationUnit)) { final ICompilationUnit cu = (ICompilationUnit) element; IPackageFragment packageFragment = (IPackageFragment) cu .getAncestor(IJavaElement.PACKAGE_FRAGMENT); if (packageFragment != null && packageFragment.exists()) { String packageName = packageFragment.getElementName(); if (packageName != null && packageName.startsWith(mJavaPackage)) { CompilationUnit astRoot = SharedASTProvider.getAST(cu, SharedASTProvider.WAIT_ACTIVE_ONLY, null); CodeGenerationSettings settings = JavaPreferencesSettings .getCodeGenerationSettings(cu.getJavaProject()); final boolean hasAmbiguity[] = new boolean[] { false }; IChooseImportQuery query = new IChooseImportQuery() { public TypeNameMatch[] chooseImports(TypeNameMatch[][] openChoices, ISourceRange[] ranges) { hasAmbiguity[0] = true; return new TypeNameMatch[0]; } }; final OrganizeImportsOperation op = new OrganizeImportsOperation(cu, astRoot, settings.importIgnoreLowercase, !cu.isWorkingCopy(), true, query); Display.getDefault().asyncExec(new Runnable() { public void run() { try { IProgressService progressService = PlatformUI.getWorkbench() .getProgressService(); progressService.run(true, true, new WorkbenchRunnableAdapter(op, op.getScheduleRule())); IEditorPart openEditor = EditorUtility.isOpenInEditor(cu); if (openEditor != null) { openEditor.doSave(monitor); } } catch (Throwable e) { RefactoringUtil.log(e); } } }); } } } } catch (Throwable e) { RefactoringUtil.log(e); } } return Status.OK_STATUS; }
From source file:com.android.ide.eclipse.adt.internal.refactorings.core.AndroidPackageRenameParticipant.java
License:Open Source License
/** * Returns Android gen package text change * * @param pm the progress monitor/*from w w w . j a v a 2 s .c o m*/ * * @return Android gen package text change * @throws CoreException if an error happens * @throws OperationCanceledException if the operation is canceled */ public Change getGenPackageChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { if (mRefactoringAppPackage) { IPackageFragment genJavaPackageFragment = getGenPackageFragment(); if (genJavaPackageFragment != null && genJavaPackageFragment.exists()) { return new RenamePackageChange(genJavaPackageFragment, mNewPackage, true); } } return null; }
From source file:com.android.ide.eclipse.adt.internal.refactorings.core.FixImportsJob.java
License:Open Source License
@Override public IStatus runInWorkspace(final IProgressMonitor monitor) throws CoreException { if (mJavaPackage == null || mAndroidManifest == null || !mAndroidManifest.exists()) { return Status.CANCEL_STATUS; }// w ww . j ava 2s .c o m IProject project = mAndroidManifest.getProject(); IJavaProject javaProject = JavaCore.create(project); if (javaProject == null || !javaProject.isOpen()) { return Status.CANCEL_STATUS; } project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor); IMarker[] markers = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); for (int i = 0; i < markers.length; i++) { IMarker marker = markers[i]; IResource resource = marker.getResource(); try { IJavaElement element = JavaCore.create(resource); if (element != null && (element instanceof ICompilationUnit)) { final ICompilationUnit cu = (ICompilationUnit) element; IPackageFragment packageFragment = (IPackageFragment) cu .getAncestor(IJavaElement.PACKAGE_FRAGMENT); if (packageFragment != null && packageFragment.exists()) { String packageName = packageFragment.getElementName(); if (packageName != null && packageName.startsWith(mJavaPackage)) { CompilationUnit astRoot = SharedASTProvider.getAST(cu, SharedASTProvider.WAIT_ACTIVE_ONLY, null); CodeGenerationSettings settings = JavaPreferencesSettings .getCodeGenerationSettings(cu.getJavaProject()); final boolean hasAmbiguity[] = new boolean[] { false }; IChooseImportQuery query = new IChooseImportQuery() { @Override public TypeNameMatch[] chooseImports(TypeNameMatch[][] openChoices, ISourceRange[] ranges) { hasAmbiguity[0] = true; return new TypeNameMatch[0]; } }; final OrganizeImportsOperation op = new OrganizeImportsOperation(cu, astRoot, settings.importIgnoreLowercase, !cu.isWorkingCopy(), true, query); Display.getDefault().asyncExec(new Runnable() { @Override public void run() { try { IProgressService progressService = PlatformUI.getWorkbench() .getProgressService(); progressService.run(true, true, new WorkbenchRunnableAdapter(op, op.getScheduleRule())); IEditorPart openEditor = EditorUtility.isOpenInEditor(cu); if (openEditor != null) { openEditor.doSave(monitor); } } catch (Throwable e) { RefactoringUtil.log(e); } } }); } } } } catch (Throwable e) { RefactoringUtil.log(e); } } return Status.OK_STATUS; }