List of usage examples for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT
int PACKAGE_FRAGMENT_ROOT
To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.
Click Source Link
From source file:com.motorola.studio.android.model.BuildingBlockModel.java
License:Apache License
/** * Extract source folder from selection. * @param selection//w w w. ja va2s.com * @return * @throws CoreException */ private static IPackageFragmentRoot extractPackageFragmentRoot(IStructuredSelection selection) throws CoreException { IPackageFragmentRoot pack = null; Object selectionElement = selection.getFirstElement(); if (selectionElement instanceof IPackageFragmentRoot) { pack = (IPackageFragmentRoot) selectionElement; } else if (selectionElement instanceof IJavaElement) { pack = (IPackageFragmentRoot) ((IJavaElement) selectionElement) .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (pack == null) { IJavaProject element = ((IJavaElement) selectionElement).getJavaProject(); for (IPackageFragmentRoot root : element.getPackageFragmentRoots()) { if (root.getResource() != null) { boolean isSrc = (root.getElementType() & IPackageFragmentRoot.K_SOURCE) == IPackageFragmentRoot.K_SOURCE; boolean isGen = root.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER) && (root.getParent() instanceof IJavaProject); if (isSrc && !isGen) { pack = root; break; } } } } } else if (selectionElement instanceof IResource) { IJavaProject element = JavaCore.create(((IResource) selectionElement).getProject()); if (element.isOpen()) { for (IPackageFragmentRoot root : element.getPackageFragmentRoots()) { if (root.getResource() != null) { boolean isSrc = (root.getElementType() & IPackageFragmentRoot.K_SOURCE) == IPackageFragmentRoot.K_SOURCE; boolean isGen = root.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER) && (root.getParent() instanceof IJavaProject); if (isSrc && !isGen) { pack = root; break; } } } } } else { IJavaProject[] allProjects = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()) .getJavaProjects(); if ((allProjects != null) && (allProjects.length > 0)) { for (IJavaProject project : allProjects) { if (project.getResource().getProject().hasNature(IAndroidConstants.ANDROID_NATURE)) { IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); if ((roots != null) && (roots.length > 0)) { boolean found = false; for (IPackageFragmentRoot root : roots) { boolean isSrc = (root.getElementType() & IPackageFragmentRoot.K_SOURCE) == IPackageFragmentRoot.K_SOURCE; boolean isGen = root.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER) && (root.getParent() instanceof IJavaProject); if (isSrc && !isGen) { found = true; pack = root; break; } } if (found) { break; } } } } } } if (pack != null) { if (!pack.getJavaProject().getProject().hasNature(IAndroidConstants.ANDROID_NATURE)) { pack = extractPackageFragmentRoot(new TreeSelection()); } } return pack; }
From source file:com.nitorcreations.robotframework.eclipseide.editors.ResourceManager.java
License:Apache License
@Override public Map<IFile, IPath> getJavaFiles(String fullyQualifiedName) { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); Map<IFile, IPath> files = new LinkedHashMap<IFile, IPath>(); for (IProject project : root.getProjects()) { try {//from ww w. j a va2 s. c om IJavaProject javaProject = JavaCore.create(project); IType type = javaProject.findType(fullyQualifiedName); if (type != null) { IFile file = root.getFile(type.getPath()); if (file.exists()) { IJavaElement ancestor = type.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); IPath path = ancestor != null ? ancestor.getPath() : type.getPath(); files.put(file, path); } } } catch (JavaModelException e) { // non-Java or unopened projects are simple skipped } } return files; }
From source file:com.redhat.ceylon.eclipse.code.explorer.JavaElementImageProvider.java
License:Open Source License
/** * Returns an image descriptor for a java element. This is the base image, no overlays. * @param element the element//from ww w. j av a 2s. c om * @param renderFlags the image flags * @return returns the image descriptor */ public ImageDescriptor getBaseImageDescriptor(IJavaElement element, int renderFlags) { try { switch (element.getElementType()) { case IJavaElement.INITIALIZER: return JavaPluginImages.DESC_MISC_PRIVATE; // 23479 case IJavaElement.METHOD: { IMethod method = (IMethod) element; IType declType = method.getDeclaringType(); int flags = method.getFlags(); if (declType.isEnum() && isDefaultFlag(flags) && method.isConstructor()) return JavaPluginImages.DESC_MISC_PRIVATE; return getMethodImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), flags); } case IJavaElement.FIELD: { IMember member = (IMember) element; IType declType = member.getDeclaringType(); return getFieldImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), member.getFlags()); } case IJavaElement.LOCAL_VARIABLE: return JavaPluginImages.DESC_OBJS_LOCAL_VARIABLE; case IJavaElement.PACKAGE_DECLARATION: return JavaPluginImages.DESC_OBJS_PACKDECL; case IJavaElement.IMPORT_DECLARATION: return JavaPluginImages.DESC_OBJS_IMPDECL; case IJavaElement.IMPORT_CONTAINER: return JavaPluginImages.DESC_OBJS_IMPCONT; case IJavaElement.TYPE: { IType type = (IType) element; IType declType = type.getDeclaringType(); boolean isInner = declType != null; boolean isInInterfaceOrAnnotation = isInner && JavaModelUtil.isInterfaceOrAnnotation(declType); return getTypeImageDescriptor(isInner, isInInterfaceOrAnnotation, type.getFlags(), useLightIcons(renderFlags)); } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) element; IPath attach = root.getSourceAttachmentPath(); if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (root.isArchive()) { if (root.isExternal()) { if (attach == null) { return JavaPluginImages.DESC_OBJS_EXTJAR; } else { return JavaPluginImages.DESC_OBJS_EXTJAR_WSRC; } } else { if (attach == null) { return JavaPluginImages.DESC_OBJS_JAR; } else { return JavaPluginImages.DESC_OBJS_JAR_WSRC; } } } else { if (attach == null) { return JavaPluginImages.DESC_OBJS_CLASSFOLDER; } else { return JavaPluginImages.DESC_OBJS_CLASSFOLDER_WSRC; } } } else { return JavaPluginImages.DESC_OBJS_PACKFRAG_ROOT; } } case IJavaElement.PACKAGE_FRAGMENT: return getPackageFragmentIcon(element); case IJavaElement.COMPILATION_UNIT: return JavaPluginImages.DESC_OBJS_CUNIT; case IJavaElement.CLASS_FILE: /* this is too expensive for large packages try { IClassFile cfile= (IClassFile)element; if (cfile.isClass()) return JavaPluginImages.IMG_OBJS_CFILECLASS; return JavaPluginImages.IMG_OBJS_CFILEINT; } catch(JavaModelException e) { // fall through; }*/ return JavaPluginImages.DESC_OBJS_CFILE; case IJavaElement.JAVA_PROJECT: IJavaProject jp = (IJavaProject) element; if (jp.getProject().isOpen()) { IProject project = jp.getProject(); IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class); if (adapter != null) { ImageDescriptor result = adapter.getImageDescriptor(project); if (result != null) return result; } return DESC_OBJ_PROJECT; } return DESC_OBJ_PROJECT_CLOSED; case IJavaElement.JAVA_MODEL: return JavaPluginImages.DESC_OBJS_JAVA_MODEL; case IJavaElement.TYPE_PARAMETER: return JavaPluginImages.DESC_OBJS_TYPEVARIABLE; case IJavaElement.ANNOTATION: return JavaPluginImages.DESC_OBJS_ANNOTATION; default: // ignore. Must be a new, yet unknown Java element // give an advanced IWorkbenchAdapter the chance IWorkbenchAdapter wbAdapter = (IWorkbenchAdapter) element.getAdapter(IWorkbenchAdapter.class); if (wbAdapter != null && !(wbAdapter instanceof JavaWorkbenchAdapter)) { // avoid recursion ImageDescriptor imageDescriptor = wbAdapter.getImageDescriptor(element); if (imageDescriptor != null) { return imageDescriptor; } } return JavaPluginImages.DESC_OBJS_GHOST; } } catch (JavaModelException e) { if (e.isDoesNotExist()) return JavaPluginImages.DESC_OBJS_UNKNOWN; JavaPlugin.log(e); return JavaPluginImages.DESC_OBJS_GHOST; } }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
/** * Processes a delta recursively. When more than two children are affected the * tree is fully refreshed starting at this node. * * @param delta the delta to process/*from ww w . j a va 2 s . com*/ * @param runnables the resulting view changes as runnables (type {@link Runnable}) * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need * to be processed * @throws JavaModelException thrown when the access to an element failed */ private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables) throws JavaModelException { int kind = delta.getKind(); int flags = delta.getFlags(); IJavaElement element = delta.getElement(); int elementType = element.getElementType(); if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) { IJavaProject proj = element.getJavaProject(); if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check! return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT) { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) if (!fIsFlatLayout) { Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (!(parent instanceof IPackageFragmentRoot)) { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } if (!fIsFlatLayout) { if (kind == IJavaElementDelta.REMOVED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { postRemove(element, runnables); return false; } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } else if (kind == IJavaElementDelta.ADDED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { if (fFoldPackages) { postRefresh(parent, PARENT, element, runnables); return true; } else { postAdd(parent, element, runnables); return false; } } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; } } if (elementType == IJavaElement.COMPILATION_UNIT) { ICompilationUnit cu = (ICompilationUnit) element; if (!JavaModelUtil.isPrimary(cu)) { return false; } if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) { return false; } if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) { return false; // test moved ahead } if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests return false; } } if (elementType == IJavaElement.JAVA_PROJECT) { // handle open and closing of a project if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if the class path has changed we refresh the entire project if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if added it could be that the corresponding IProject is already shown. Remove it first. // bug 184296 if (kind == IJavaElementDelta.ADDED) { postRemove(element.getResource(), runnables); postAdd(element.getParent(), element, runnables); return false; } } if (kind == IJavaElementDelta.REMOVED) { Object parent = internalGetParent(element); if (element instanceof IPackageFragment) { // refresh package fragment root to allow filtering empty (parent) packages: bug 72923 if (fViewer.testFindItem(parent) != null) postRefresh(parent, PARENT, element, runnables); return true; } else if (element instanceof IPackageFragmentRoot) { // libs and class folders can show up twice (in library container and as resource at original location) IResource resource = element.getResource(); if (resource != null && !resource.exists()) postRemove(resource, runnables); } postRemove(element, runnables); if (parent instanceof IPackageFragment) postUpdateIcon((IPackageFragment) parent, runnables); // we are filtering out empty subpackages, so we // a package becomes empty we remove it from the viewer. if (isPackageFragmentEmpty(element.getParent())) { if (fViewer.testFindItem(parent) != null) postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } return false; } if (kind == IJavaElementDelta.ADDED) { Object parent = internalGetParent(element); // we are filtering out empty subpackages, so we // have to handle additions to them specially. if (parent instanceof IPackageFragment) { Object grandparent = internalGetParent(parent); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (parent.equals(fInput)) { postRefresh(parent, PARENT, element, runnables); } else { // refresh from grandparent if parent isn't visible yet if (fViewer.testFindItem(parent) == null) postRefresh(grandparent, GRANT_PARENT, element, runnables); else { postRefresh(parent, PARENT, element, runnables); } } return true; } else { if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) { // libs and class folders can show up twice (in library container or under project, and as resource at original location) IResource resource = element.getResource(); if (resource != null) { Object resourceParent = super.internalGetParent(resource); if (resourceParent != null) { IJavaProject proj = element.getJavaProject(); if (fShowLibrariesNode || !resourceParent.equals(proj)) { postAdd(resourceParent, resource, runnables); } } } } postAdd(parent, element, runnables); } } if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) { if (kind == IJavaElementDelta.CHANGED) { // isStructuralCUChange already performed above postRefresh(element, ORIGINAL, element, runnables); } return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) { // the contents of an external JAR has changed if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } // the source attachment of a JAR has changed if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0) postUpdateIcon(element, runnables); if (isClassPathChange(delta)) { // throw the towel and do a full refresh of the affected java project. postRefresh(element.getJavaProject(), PROJECT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; }
From source file:com.redhat.ceylon.eclipse.code.navigator.NonEssentialElementsFilter.java
License:Open Source License
/** * Tells whether the given package has unfiltered resources. * * @param viewer the viewer/* w w w.ja v a 2 s .c o m*/ * @param pkg the package * @return <code>true</code> if the package has unfiltered resources * @throws JavaModelException if this element does not exist or if an exception occurs while * accessing its corresponding resource */ protected boolean hasUnfilteredResources(Viewer viewer, IPackageFragment pkg) throws JavaModelException { Object[] resources = null; if (pkg.isDefaultPackage()) { IPackageFragmentRoot root = (IPackageFragmentRoot) pkg.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); resources = root.getNonJavaResources(); } else { resources = pkg.getNonJavaResources(); } int length = resources.length; if (length == 0) return false; if (!(viewer instanceof StructuredViewer)) return true; ViewerFilter[] filters = ((StructuredViewer) viewer).getFilters(); resourceLoop: for (int i = 0; i < length; i++) { for (int j = 0; j < filters.length; j++) { if (!filters[j].select(viewer, pkg, resources[i])) continue resourceLoop; } return true; } return false; }
From source file:com.siteview.mde.internal.ui.search.ClassSearchParticipant.java
License:Open Source License
public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor) throws CoreException { if (querySpecification.getLimitTo() != S_LIMIT_REF && querySpecification.getLimitTo() != S_LIMIT_ALL) return;/*w w w. j a va2 s .co m*/ String search; if (querySpecification instanceof ElementQuerySpecification) { IJavaElement element = ((ElementQuerySpecification) querySpecification).getElement(); if (element instanceof IType) search = ((IType) element).getFullyQualifiedName('.'); else search = element.getElementName(); int type = element.getElementType(); if (type == IJavaElement.TYPE) fSearchFor = S_FOR_TYPES; else if (type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT) fSearchFor = S_FOR_PACKAGES; } else { fSearchFor = ((PatternQuerySpecification) querySpecification).getSearchFor(); search = ((PatternQuerySpecification) querySpecification).getPattern(); } if (fSearchFor != S_FOR_TYPES && fSearchFor != S_FOR_PACKAGES) return; fSearchPattern = PatternConstructor.createPattern(search, true); fSearchRequestor = requestor; IPath[] enclosingPaths = querySpecification.getScope().enclosingProjectsAndJars(); IMonitorModelBase[] pluginModels = MonitorRegistry.getWorkspaceModels(); monitor.beginTask(MDEUIMessages.ClassSearchParticipant_taskMessage, pluginModels.length); for (int i = 0; i < pluginModels.length; i++) { IProject project = pluginModels[i].getUnderlyingResource().getProject(); if (!monitor.isCanceled() && encloses(enclosingPaths, project.getFullPath())) searchProject(project, monitor); } }
From source file:com.windowtester.eclipse.ui.convert.WTAPIUsage.java
License:Open Source License
/** * Recursively iterate over the specified java element and their children to convert * each compilation to use the new WindowTester API. * /* w w w. ja v a 2 s . c o m*/ * @param elem the java element (not <code>null</code>) * @param monitor the progress monitor (not <code>null</code>) */ private void scanElement(IJavaElement elem, IProgressMonitor monitor) throws JavaModelException { projects.add(elem.getJavaProject()); switch (elem.getElementType()) { case IJavaElement.JAVA_PROJECT: scanProject((IJavaProject) elem, monitor); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: scanPackageRoot((IPackageFragmentRoot) elem, monitor); break; case IJavaElement.PACKAGE_FRAGMENT: scanPackage((IPackageFragment) elem, monitor); break; case IJavaElement.COMPILATION_UNIT: scanCompilationUnit((ICompilationUnit) elem); break; default: break; } }
From source file:com.windowtester.eclipse.ui.convert.WTConvertAPIRefactoring.java
License:Open Source License
/** * Recursively iterate over the specified java element and their children to convert * each compilation to use the new WindowTester API. * //from w w w.j av a 2 s . c o m * @param elem the java element (not <code>null</code>) * @param monitor the progress monitor (not <code>null</code>) */ private void convertElement(IJavaElement elem, IProgressMonitor monitor) throws JavaModelException { switch (elem.getElementType()) { case IJavaElement.JAVA_PROJECT: convertProject((IJavaProject) elem, monitor); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: convertPackageRoot((IPackageFragmentRoot) elem, monitor); break; case IJavaElement.PACKAGE_FRAGMENT: convertPackage((IPackageFragment) elem, monitor); break; case IJavaElement.COMPILATION_UNIT: convertCompilationUnit((ICompilationUnit) elem, monitor); break; default: break; } }
From source file:com.worldline.awltech.i18ntools.wizard.core.ui.RefactoringWizardConfiguration.java
License:Open Source License
/** * Returns the first source folder available in the list. The last one * should be a default value that can be returned if none is found. If last * one is null, the first source folder found in the project will be * returned./*from w ww .j a va2s . c o m*/ * * @param sourceFolders * @return */ private String getSourceFolder(final String... sourceFolders) { // We look for all the source folders specified, except the last one. for (int i = 0; i < sourceFolders.length - 1; i++) { final IFolder folder = this.project.getFolder(new Path(sourceFolders[i])); if (folder.exists()) { final IJavaElement javaElement = JavaCore.create(folder); try { if (javaElement != null && javaElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && ((IPackageFragmentRoot) javaElement).getKind() == IPackageFragmentRoot.K_SOURCE) { return sourceFolders[i]; } } catch (final JavaModelException e) { Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, RefactoringWizardMessages.ERROR_SEEK_SOURCEFOLDER.value(), e)); } } } if (sourceFolders.length > 0 && sourceFolders[sourceFolders.length - 1] == null) { final IJavaProject javaProject = JavaCore.create(this.project); try { final IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots(); for (final IPackageFragmentRoot packageFragmentRoot : allPackageFragmentRoots) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { return packageFragmentRoot.getPath().makeRelativeTo(this.project.getFullPath()).toString(); } } } catch (final JavaModelException e) { Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, RefactoringWizardMessages.ERROR_SEEK_SOURCEFOLDER.value(), e)); } } return null; }
From source file:de.fu_berlin.inf.jtourbus.view.TourChangeListener.java
License:Open Source License
void visitInternal(IProgressMonitor pm, IJavaElementDelta delta) { IJavaElement elem = delta.getElement(); IJavaElementDelta[] children = delta.getAffectedChildren(); if (pm != null) pm.beginTask("", children.length + 2); if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) != 0) { if (delta.getKind() != IJavaElementDelta.CHANGED) { throw new RuntimeException("ASSERT: CHILDREN should always be CHANGE"); }//from ww w . j a v a 2 s. c o m for (int i = 0; i < children.length; i++) { visit(pm, children[i]); } return; } switch (delta.getKind()) { case IJavaElementDelta.ADDED: { if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("ASSERT: ADDED has no children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Adding Java Model not possible"); case IJavaElement.JAVA_PROJECT: throw new RuntimeException("ASSERT: Adding Java Project not possible"); case IJavaElement.PACKAGE_FRAGMENT_ROOT: // The user added a source folder for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.PACKAGE_FRAGMENT: // The user inserted a packaged for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); } return; } default: ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.REMOVED: if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("REMOVED has children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Java Model not possible"); case IJavaElement.JAVA_PROJECT: fContentProvider.fTourPlan.removeAll(); return; case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: fContentProvider.fTourPlan.removeAll(); for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getJavaProject().getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { fContentProvider.fTourPlan.removeCU(cu); } return; } default: { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.CHANGED: // F_CONTENT && F_FINE_GRAINED if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0 && (delta.getFlags() & IJavaElementDelta.F_FINE_GRAINED) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); } // Closing without saving will trigger this event. We thus re-read // the file. if ((delta.getFlags() & IJavaElementDelta.F_PRIMARY_WORKING_COPY) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement(); /* FIXME */ redoCU(cu, pm); } break; } }