List of usage examples for org.eclipse.jdt.core IJavaElementDelta F_CHILDREN
int F_CHILDREN
To view the source code for org.eclipse.jdt.core IJavaElementDelta F_CHILDREN.
Click Source Link
From source file:com.codenvy.ide.ext.java.server.internal.core.JavaElementDelta.java
License:Open Source License
protected boolean toDebugString(StringBuffer buffer, int flags) { boolean prev = super.toDebugString(buffer, flags); if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("CHILDREN"); //$NON-NLS-1$ prev = true;/*from w w w .j a va2s.c o m*/ } if ((flags & IJavaElementDelta.F_CONTENT) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("CONTENT"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("MOVED_FROM(" + ((JavaElement) getMovedFromElement()).toStringWithAncestors() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ prev = true; } if ((flags & IJavaElementDelta.F_MOVED_TO) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("MOVED_TO(" + ((JavaElement) getMovedToElement()).toStringWithAncestors() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ prev = true; } if ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("ADDED TO CLASSPATH"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("REMOVED FROM CLASSPATH"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_REORDER) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("REORDERED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("ARCHIVE CONTENT CHANGED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_SOURCEATTACHED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("SOURCE ATTACHED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_SOURCEDETACHED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("SOURCE DETACHED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_FINE_GRAINED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("FINE GRAINED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_PRIMARY_WORKING_COPY) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("PRIMARY WORKING COPY"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("RAW CLASSPATH CHANGED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("RESOLVED CLASSPATH CHANGED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_PRIMARY_RESOURCE) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("PRIMARY RESOURCE"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_OPENED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("OPENED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_CLOSED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("CLOSED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_AST_AFFECTED) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("AST AFFECTED"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_CATEGORIES) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("CATEGORIES"); //$NON-NLS-1$ prev = true; } if ((flags & IJavaElementDelta.F_ANNOTATIONS) != 0) { if (prev) buffer.append(" | "); //$NON-NLS-1$ buffer.append("ANNOTATIONS"); //$NON-NLS-1$ prev = true; } return prev; }
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. java 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.explorer.PackageExplorerContentProvider.java
License:Open Source License
private static boolean isStructuralCUChange(int flags) { // No refresh on working copy creation (F_PRIMARY_WORKING_COPY) return (flags & IJavaElementDelta.F_CHILDREN) != 0 || (flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_FINE_GRAINED)) == IJavaElementDelta.F_CONTENT; }
From source file:com.technophobia.eclipse.project.cache.listener.AbstractJavaProjectEventListener.java
License:Open Source License
private void findNodesOfType(final int type, final IJavaElementDelta delta, final List<IJavaElementDelta> nodes) { if (delta.getKind() == type) { nodes.add(delta);// ww w . j a v a 2s . co m } if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) { for (final IJavaElementDelta child : delta.getAffectedChildren()) { findNodesOfType(type, child, nodes); } } }
From source file:com.technophobia.eclipse.project.cache.listener.ClassFileChangedListener.java
License:Open Source License
private void findChangeNodes(final IJavaElementDelta delta, final Collection<IJavaElementDelta> changeNodes) { if (hasFlag(IJavaElementDelta.CHANGED, delta.getKind())) { final int flags = delta.getFlags(); if (hasFlag(IJavaElementDelta.F_CONTENT, flags)) { changeNodes.add(delta);/*from ww w .j a va2 s . c o m*/ } else if (hasFlag(IJavaElementDelta.F_CHILDREN, flags)) { for (final IJavaElementDelta child : delta.getAffectedChildren()) { findChangeNodes(child, changeNodes); } } } }
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 w ww . j a va 2s . com*/ 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; } }
From source file:de.fu_berlin.inf.jtourbus.view.TourChangeListener.java
License:Open Source License
public void elementChanged(final ElementChangedEvent event) { try {/*from ww w .ja v a 2 s.c o m*/ try { // If we don't have a project, we don't need updating if (fContentProvider.fProject == null) return; IJavaElementDelta delta = event.getDelta(); // As a first step filter out all deltas that don't correspond // to the project we are monitoring if (delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) { // ASSERT - There are no elementChanged events on the java // model itself if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0 || (delta.getKind() != IJavaElementDelta.CHANGED)) { throw new RuntimeException("JavaModel assertion failed - 1"); } IJavaElementDelta[] children = delta.getAffectedChildren(); for (int i = 0; i < children.length; i++) { // ASSERT - The model contains projects if (children[i].getElement().getElementType() != IJavaElement.JAVA_PROJECT) { throw new RuntimeException("JavaModel assertion failed - 2"); } if (JTourBusPlugin.ALL_PROJECTS || fContentProvider.fProject.equals(children[i].getElement())) { visit(null, children[i]); } } } else { // ASSERT - Everything else but the model has a project if (delta.getElement().getJavaProject() == null) { throw new RuntimeException("JavaModel assertion failed - 3"); } if (JTourBusPlugin.ALL_PROJECTS || fContentProvider.fProject.equals(delta.getElement().getJavaProject())) visit(null, delta); } if (!fContentProvider.fViewer.getControl().isDisposed()) { Display display = fContentProvider.fViewer.getControl().getDisplay(); if (!display.isDisposed()) { display.asyncExec(new Runnable() { public void run() { // make sure the tree still exists if (fContentProvider.fViewer != null && fContentProvider.fViewer.getControl().isDisposed()) return; fContentProvider.fViewer.refresh(); if (newBusStop != null) { fContentProvider.fViewer.setSelection(new StructuredSelection(newBusStop)); } newBusStop = null; } }); } } } catch (RuntimeException e) { e.printStackTrace(); throw e; } } finally { notifyView = false; } }
From source file:edu.rice.cs.drjava.plugins.eclipse.repl.EclipseInteractionsModel.java
License:BSD License
/** Walks the tree of deltas, looking for changes to the classpath or compilation units. * @param delta Tree to search// w w w .java 2s .c o m * @param depth Current depth of original tree. Pass 0 on the first call. */ protected void _visitDelta(IJavaElementDelta delta, int depth) { int kind = delta.getKind(); // int flags = delta.getFlags(); IJavaElement element = delta.getElement(); // System.out.println("\nVisiting: " + delta); // System.out.println("depth: " + depth); // System.out.println("kind: " + kind); // System.out.println("flags: " + flags); // System.out.println("Class: " + delta.getClass()); // System.out.println("Element class: " + delta.getElement().getClass()); // if ((flags & IJavaElementDelta.F_CONTENT) != 0) { // System.out.println("Change is in the content."); // } // If the element is a changed compilation unit, we should notify // the user to reset. This happens on every save, so we don't want // to reset automatically. if (_isCompilationUnit(element) && (kind == IJavaElementDelta.CHANGED)) { // Class files have changed _warnUserToReset(); } // Case: has children if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) != 0) { IJavaElementDelta[] children = delta.getAffectedChildren(); //System.out.println("visiting " + children.length + " children..."); for (int i = 0; i < children.length; i++) { _visitDelta(children[i], depth + 1); } } // Case: project opened else if (kind == IJavaElementDelta.ADDED) { if (element instanceof IJavaProject) { try { _addProjectToClasspath((IJavaProject) element); } catch (CoreException e) { throw new UnexpectedException(e); } } } /* // Case: added to classpath else if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0) { System.out.println("looking at add classpath delta..."); if (delta.getElement() instanceof IPackageFragmentRoot) { System.out.println("Element is an IPackageFragmentRoot"); } System.out.println("element: " + delta.getElement()); } // Case: removed from classpath else if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) { System.out.println("looking at remove classpath delta..."); if (delta.getElement() instanceof IPackageFragmentRoot) { System.out.println("Element is an IPackageFragmentRoot"); } System.out.println("element: " + delta.getElement()); } */ // Otherwise, ignore }
From source file:net.rim.ejde.internal.core.BasicClasspathElementChangedListener.java
License:Open Source License
/** * Does the delta indicate a classpath change? * * @param delta/*w w w . java 2 s. c om*/ * the delta to inspect * @return true if classpath has changed */ private boolean isClasspathChange(IJavaElementDelta delta) { int flags = delta.getFlags(); if (isClasspathChangeFlag(flags)) return true; if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { IJavaElementDelta[] children = delta.getAffectedChildren(); for (IJavaElementDelta element : children) { if (isClasspathChangeFlag(element.getFlags())) return true; } } return false; }
From source file:org.eclipse.fx.ide.css.cssext.ui.adapter.ExtensionRegistry.java
License:Open Source License
private void recCheckChangedExtensions(IJavaElementDelta d, List<URI> changedExtensions) { if (IJavaElementDelta.F_CONTENT == (IJavaElementDelta.F_CONTENT & d.getFlags())) { // content change for (IResourceDelta rd : d.getResourceDeltas()) { final IResource res = rd.getResource(); if ("cssext".equals(res.getFileExtension())) { //$NON-NLS-1$ changedExtensions.add(URI.createPlatformResourceURI( res.getProject().getName() + "/" + res.getProjectRelativePath().toString(), true)); //$NON-NLS-1$ }//from w w w .j a va 2 s . c o m } } if (IJavaElementDelta.F_CHILDREN == (IJavaElementDelta.F_CHILDREN & d.getFlags())) { // check children for (IJavaElementDelta child : d.getChangedChildren()) { recCheckChangedExtensions(child, changedExtensions); } } }