List of usage examples for org.eclipse.jdt.core IJavaElementDelta getChangedChildren
public IJavaElementDelta[] getChangedChildren();
From source file:com.google.gdt.eclipse.managedapis.impl.ManagedApiChangeListener.java
License:Open Source License
/** * Implements the standard elementChanged method defined by the * IElementChangedListener, this method identifies events of importance to a * specific ManagedApiProject and calls the appropriate abstract method on a * match./* w ww . j a v a 2 s. c o m*/ */ public void elementChanged(ElementChangedEvent event) { if (managedApiProject == null) { throw new IllegalStateException("managedApiProject must be set prior to registering the listener"); } for (IJavaElementDelta delta : event.getDelta().getRemovedChildren()) { int flags = delta.getFlags(); if (flags == 0) { IJavaElement element = delta.getElement(); IJavaProject javaProject = (IJavaProject) element.getAdapter(IJavaProject.class); if (javaProject != null) { IProject project = javaProject.getProject(); if (project.equals(managedApiProject.getJavaProject().getProject())) { managedApiProjectRemoved(); } } } } for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) { int flags = delta.getFlags(); if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { IJavaElement element = delta.getElement(); if (element.getElementType() == IJavaElement.JAVA_PROJECT && element.equals(managedApiProject.getJavaProject())) { Set<ManagedApi> managedApiRemovalSet = new HashSet<ManagedApi>( delta.getChangedChildren().length); List<String> managedApiFolderNames = new ArrayList(); for (IJavaElementDelta childDelta : delta.getChangedChildren()) { if ((childDelta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) { IJavaElement childElement = childDelta.getElement(); if (childElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && managedApiProject.isPackageFragmentRootInManagedApi( (IPackageFragmentRoot) childElement)) { String managedApiFolderName = managedApiProject .getPathRelativeToManagedApiRoot((IPackageFragmentRoot) childElement); if (!managedApiFolderNames.contains(managedApiFolderName)) { managedApiFolderNames.add(managedApiFolderName); managedApiRemovalSet .add(managedApiProject.createManagedApi(managedApiFolderName)); } } } } if (managedApiRemovalSet.size() > 0) { managedApiRemoved( managedApiRemovalSet.toArray(new ManagedApiImpl[managedApiRemovalSet.size()])); } } } else if ((flags & IJavaElementDelta.F_CLOSED) != 0) { IJavaElement element = delta.getElement(); if (element.getElementType() == IJavaElement.JAVA_PROJECT && element.equals(managedApiProject.getJavaProject())) { managedApiProjectClosed(); } } } }
From source file:edu.buffalo.cse.green.JavaModelListener.java
License:Open Source License
/** * Iterates over all subbranches of the <code>IJavaElementDelta</code> and * determines what elements have changed that are present in the * <code>DiagramEditor</code>. * //from w w w. j a v a 2s. c o m * @param parentDelta - The delta to look through. * @param type - The class to match. * @return A mapping of moved elements. */ private List<IJavaElementDelta> findChangedElements(IJavaElementDelta parentDelta, Class type) { IJavaElementDelta delta; List<IJavaElementDelta> changes = new ArrayList<IJavaElementDelta>(); // adds deltas representing the removed elements of // the specified type to the list of changes for (int i = 0; i < parentDelta.getChangedChildren().length; i++) { delta = parentDelta.getChangedChildren()[i]; if (type.isInstance(delta.getElement())) { if (delta.getChangedChildren().length == 0) { changes.add(delta); } } } // traverse all changed branches // this code shouldn't need altering for (int i = 0; i < parentDelta.getChangedChildren().length; i++) { delta = parentDelta.getChangedChildren()[i]; changes.addAll(findChangedElements(delta, type)); } return changes; }
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 v a 2s. com*/ } } if (IJavaElementDelta.F_CHILDREN == (IJavaElementDelta.F_CHILDREN & d.getFlags())) { // check children for (IJavaElementDelta child : d.getChangedChildren()) { recCheckChangedExtensions(child, changedExtensions); } } }
From source file:org.eclipse.jst.j2ee.internal.JARDependencyPropertiesPage.java
License:Open Source License
private boolean classpathChanged(final IJavaElementDelta delta) { final int kind = delta.getKind(); if (kind == IJavaElementDelta.CHANGED) { final int flags = delta.getFlags(); final IJavaElement element = delta.getElement(); if (element instanceof IJavaModel) { if ((flags & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) { final IJavaElementDelta[] children = delta.getChangedChildren(); for (int i = 0; i < children.length; i++) { // check all of the IJavaProject children if (classpathChanged(children[i])) { return true; }//from w w w . ja va2 s.co m } } } else if (element instanceof IJavaProject) { // check if we either have a direct indication of a classpath change or a delta on the // .classpath file (changes to classpath entry attributes only give us this...) final IJavaProject jproject = (IJavaProject) element; final IProject eventProject = jproject.getProject(); if (eventProject.equals(project)) { if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { return true; } final IResourceDelta[] deltas = delta.getResourceDeltas(); if (deltas != null) { for (int i = 0; i < deltas.length; i++) { if (deltas[i].getProjectRelativePath().toString().equals(".classpath")) { //$NON-NLS-1$ return true; } } } } } } return false; }
From source file:org.eclipse.jst.j2ee.refactor.listeners.J2EEElementChangedListener.java
License:Open Source License
private void processJavaElementDelta(final IJavaElementDelta delta) { final int kind = delta.getKind(); if (kind == IJavaElementDelta.CHANGED) { final int flags = delta.getFlags(); final IJavaElement element = delta.getElement(); if (element instanceof IJavaModel) { if ((flags & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) { final IJavaElementDelta[] children = delta.getChangedChildren(); for (int i = 0; i < children.length; i++) { // handle all of the IJavaProject children processJavaElementDelta(children[i]); }/*from ww w. ja v a 2 s .co m*/ } else { // not a Java project (i.e. could be an EAR project) processResourceDeltas(flags, kind, delta); } } else if (element instanceof IJavaProject) { processJavaProject((IJavaProject) element, flags, kind, delta); } } }
From source file:org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager.java
License:Open Source License
/** * Update classpath for appropriate loader. * @see org.eclipse.jdt.core.IElementChangedListener#elementChanged(org.eclipse.jdt.core.ElementChangedEvent) *///from w w w .j a v a2s .c o m public void elementChanged(ElementChangedEvent event) { // handle classpath changes IJavaElementDelta delta = event.getDelta(); if (delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) { IJavaElementDelta[] changed = delta.getChangedChildren(); for (int i = 0; i < changed.length; i++) { if ((changed[i].getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0 || (changed[i].getFlags() & IJavaElementDelta.F_REORDER) != 0 || (changed[i].getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 || (changed[i].getFlags() & IJavaElementDelta.F_PRIMARY_RESOURCE) != 0) { IJavaElement proj = changed[i].getElement(); handleClasspathChange(changed, i, proj); } } } else if (delta.getElement().getElementType() == IJavaElement.COMPILATION_UNIT) { IJavaElementDelta[] changed = delta.getChangedChildren(); for (int i = 0; i < changed.length; i++) { if ((changed[i].getFlags() & IJavaElementDelta.F_SUPER_TYPES) != 0) { IJavaElement element = changed[i].getElement(); handleSuperTypeChange(element); } } } }