List of usage examples for org.eclipse.jdt.core IJavaElementDelta F_RESOLVED_CLASSPATH_CHANGED
int F_RESOLVED_CLASSPATH_CHANGED
To view the source code for org.eclipse.jdt.core IJavaElementDelta F_RESOLVED_CLASSPATH_CHANGED.
Click Source Link
From source file:com.blackducksoftware.integration.eclipseplugin.internal.listeners.ProjectDependenciesChangedListener.java
License:Apache License
private boolean isClasspathChanged(final int flags) { return 0 != (flags & (IJavaElementDelta.F_CLASSPATH_CHANGED | IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED)); }
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 ava2 s .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/*w w w . j ava 2s . c o m*/ * @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.core.classpath.CeylonClasspathContainer.java
License:Apache License
void notifyUpdateClasspathEntries() { // Changes to resolved classpath are not announced by JDT Core // and so PackageExplorer does not properly refresh when we update // the classpath container. // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=154071 DeltaProcessingState s = JavaModelManager.getJavaModelManager().deltaState; synchronized (s) { IElementChangedListener[] listeners = s.elementChangedListeners; for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof PackageExplorerContentProvider) { JavaElementDelta delta = new JavaElementDelta(javaProject); delta.changed(IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED); listeners[i].elementChanged(new ElementChangedEvent(delta, ElementChangedEvent.POST_CHANGE)); }/* ww w .ja va 2 s . c om*/ } } //I've disabled this because I don't really like having it, but //it does seem to help with the issue of archives appearing //empty in the package manager /*try { javaProject.getProject().refreshLocal(IResource.DEPTH_ONE, null); } catch (CoreException e) { e.printStackTrace(); }*/ }
From source file:com.redhat.ceylon.eclipse.core.classpath.CeylonProjectModulesContainer.java
License:Apache License
void notifyUpdateClasspathEntries() { // Changes to resolved classpath are not announced by JDT Core // and so PackageExplorer does not properly refresh when we update // the classpath container. // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=154071 DeltaProcessingState s = JavaModelManager.getJavaModelManager().deltaState; synchronized (s) { IElementChangedListener[] listeners = s.elementChangedListeners; for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof PackageExplorerContentProvider) { JavaElementDelta delta = new JavaElementDelta(javaProject); delta.changed(IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED); listeners[i].elementChanged(new ElementChangedEvent(delta, ElementChangedEvent.POST_CHANGE)); }//from w w w . ja v a 2 s . co m } } //I've disabled this because I don't really like having it, but //it does seem to help with the issue of archives appearing //empty in the package manager /*try { javaProject.getProject().refreshLocal(IResource.DEPTH_ONE, null); } catch (CoreException e) { e.printStackTrace(); }*/ }
From source file:jasima_gui.EclipseProjectClassLoader.java
License:Open Source License
protected boolean hasClasspathChanged(IJavaElementDelta delta) { int t = delta.getElement().getElementType(); if (t == IJavaElement.JAVA_PROJECT) { if ((delta.getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { return true; }/*from www. j a v a2s . c om*/ } else if (t == IJavaElement.JAVA_MODEL) { for (IJavaElementDelta d : delta.getAffectedChildren()) { if (hasClasspathChanged(d)) return true; } } return false; }
From source file:net.rim.ejde.internal.core.BasicClasspathElementChangedListener.java
License:Open Source License
public void elementChanged(ElementChangedEvent event) { IJavaElementDelta[] children = event.getDelta().getChangedChildren(); // children = IProjects for (IJavaElementDelta child : children) { IProject project = child.getElement().getJavaProject().getProject(); int size = child.getAffectedChildren().length; // .getChangedElement() = JavaProject if (size == 1) { IJavaElementDelta elementDelta = child.getAffectedChildren()[0]; // if it is only 1, name is ".tmp" // and elementDelta.kind = 4 // (CHANGED) IJavaElement changedElement = elementDelta.getElement(); if (changedElement.getElementName() .equals(ImportUtils.getImportPref(ResourceBuilder.LOCALE_INTERFACES_FOLDER_NAME))) { _changedBuildClasspath.put(project.getName(), Boolean.FALSE); break; }// w w w . j a v a 2s.c o m } if (isClasspathChange(child)) {// adding classpath entries might induce reordering the classpath entries _changedBuildClasspath.put(project.getName(), Boolean.TRUE); // notify the listeners EJDEEventNotifier.getInstance().notifyClassPathChanged(child.getElement().getJavaProject(), hasCPRemoved(child)); // validate the project ValidationManager.getInstance().validateProjects(ProjectUtils.getAllReferencingProjects( new IProject[] { child.getElement().getJavaProject().getProject() }), null); } if ((child.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0 || (child.getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { IJavaElement javaElement = child.getElement(); final IJavaProject javaProject = javaElement.getJavaProject(); classPathChanged(javaProject, child); } checkSourceAttachement(child.getAffectedChildren()); } for (final IJavaElementDelta addedElemDelta : event.getDelta().getAddedChildren()) { final IJavaProject javaProject = addedElemDelta.getElement().getJavaProject(); try { if (javaProject.getProject().hasNature(BlackBerryProjectCoreNature.NATURE_ID)) { if (addedElemDelta.getAffectedChildren().length == 0) { final IJavaElement addedElement = addedElemDelta.getElement(); if (addedElement instanceof IJavaProject) { final IJavaProject addedJavaProj = (IJavaProject) addedElement; if (addedJavaProj.equals(javaProject)) { projectCreated(javaProject); } } } } } catch (final CoreException ce) { _log.error("", ce); } } }
From source file:net.rim.ejde.internal.core.BasicClasspathElementChangedListener.java
License:Open Source License
/** * The flags indicate a classpath chhange and its type * * @param flags//from w ww. j a v a 2s . c o m * the flags to inspect * @return true if the flag flags a classpath change */ static public boolean isClasspathChangeFlag(int flags) { if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) return true; if ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0) return true; if ((flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) return true; if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) return true; return false; }
From source file:org.codehaus.groovy.eclipse.dsl.DSLDElementListener.java
License:Apache License
private boolean isResolvedClasspathChangeNotRawClasspath(IJavaElementDelta delta) { return (delta.getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 && (delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) == 0; }
From source file:org.eclipse.jem.workbench.utility.JavaModelListener.java
License:Open Source License
/** * Dispatch the java element delta. This method should normally not be overridden. One * usage would be to add delta types that are to be processed and dispatched by the * subclasses. For example also dispatch on {@link IJavaElement#IMPORT_CONTAINER}. Subclasses * should call <code>super.processDelta(IJavaElementDelta)</code> if it is not one they * are interested in./*from w w w .j a va 2 s . c om*/ * * @param delta * * @since 1.2.0 */ public void processDelta(IJavaElementDelta delta) { IJavaElement element = delta.getElement(); // if the class path has changed we refresh the resolved container cache int flags = delta.getFlags(); if (((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) && !resolvedContainers.isEmpty()) { resolvedContainers.clear(); } switch (element.getElementType()) { case IJavaElement.JAVA_MODEL: processJavaElementChanged((IJavaModel) element, delta); break; case IJavaElement.JAVA_PROJECT: processJavaElementChanged((IJavaProject) element, delta); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: processJavaElementChanged((IPackageFragmentRoot) element, delta); break; case IJavaElement.PACKAGE_FRAGMENT: processJavaElementChanged((IPackageFragment) element, delta); break; case IJavaElement.COMPILATION_UNIT: processJavaElementChanged((ICompilationUnit) element, delta); processContentChanged(delta); break; case IJavaElement.CLASS_FILE: processJavaElementChanged((IClassFile) element, delta); break; case IJavaElement.TYPE: processJavaElementChanged((IType) element, delta); break; // Note: if we are to update the Method/Field adapters, we should process the // IJavaElement.METHOD and IJavaElement.FIELD } }