List of usage examples for org.eclipse.jdt.core IJavaElementDelta getResourceDeltas
public IResourceDelta[] getResourceDeltas();
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
void handleAffectedChildren(IJavaElementDelta delta, IJavaElement element, Collection<Runnable> runnables) throws JavaModelException { int count = 0; IResourceDelta[] resourceDeltas = delta.getResourceDeltas(); if (resourceDeltas != null) { for (int i = 0; i < resourceDeltas.length; i++) { int kind = resourceDeltas[i].getKind(); if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED) { count++;//w w w. j a va 2 s . c o m } } } IJavaElementDelta[] affectedChildren = delta.getAffectedChildren(); for (int i = 0; i < affectedChildren.length; i++) { int kind = affectedChildren[i].getKind(); if (kind == IJavaElementDelta.ADDED || kind == IJavaElementDelta.REMOVED) { count++; } } if (count > 1) { // more than one child changed, refresh from here downwards if (element instanceof IPackageFragment) { // a package fragment might become non empty refresh from the parent IJavaElement parent = (IJavaElement) internalGetParent(element); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (element.equals(fInput)) { postRefresh(element, ORIGINAL, element, runnables); } else { postRefresh(parent, PARENT, element, runnables); } } else if (element instanceof IPackageFragmentRoot) { Object toRefresh = internalGetParent(element); postRefresh(toRefresh, ORIGINAL, toRefresh, runnables); } else { postRefresh(element, ORIGINAL, element, runnables); } return; } if (resourceDeltas != null) { for (int i = 0; i < resourceDeltas.length; i++) { if (processResourceDelta(resourceDeltas[i], element, runnables)) { return; // early return, element got refreshed } } } for (int i = 0; i < affectedChildren.length; i++) { if (processDelta(affectedChildren[i], runnables)) { return; // early return, element got refreshed } } }
From source file:com.technophobia.eclipse.project.cache.listener.ClassFileChangedListener.java
License:Open Source License
private Collection<IResource> affectedClassFiles(final IJavaElementDelta delta) throws CoreException { final Collection<IResource> affectedClassFiles = new ArrayList<IResource>(); final IResourceDeltaVisitor visitor = filesWithExtensionVisitor(affectedClassFiles); for (final IResourceDelta resourceDelta : delta.getResourceDeltas()) { resourceDelta.accept(visitor);/*from www. java 2s. co m*/ } return affectedClassFiles; }
From source file:net.sf.jasperreports.eclipse.classpath.JavaProjectClassLoader.java
License:Open Source License
private boolean ignoreClasspathChanges(ElementChangedEvent event) { if (event.getDelta() == null && event.getDelta().getChangedChildren() == null) return true; for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) { if (delta.getResourceDeltas() == null) return false; for (IResourceDelta rd : delta.getResourceDeltas()) { if (rd.getFullPath() == null) continue; String path = rd.getFullPath().getFileExtension(); if (path != null && !(path.equalsIgnoreCase(FileExtension.JRXML) || path.equalsIgnoreCase(FileExtension.JASPER))) return false; }//from w ww . j a v a 2s.c o m } return true; }
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 2 s. co m*/ } } if (IJavaElementDelta.F_CHILDREN == (IJavaElementDelta.F_CHILDREN & d.getFlags())) { // check children for (IJavaElementDelta child : d.getChangedChildren()) { recCheckChangedExtensions(child, changedExtensions); } } }
From source file:org.eclipse.jem.workbench.utility.JavaModelListener.java
License:Open Source License
/** * Answer whether the change is this is a raw classpath change, or if a file that is in the root of the project was changed that also can mean a * raw classpath change. This must only be called for a delta that is for an {@link IJavaProject}. * <p>//from ww w . ja va 2s . c om * See {@link IJavaElementDelta.#F_CLASSPATH_CHANGED} and {@link #isAlsoClasspathChange(IPath)} for details. * * @param delta * @return * * @since 1.2.0 */ protected boolean isClasspathResourceChange(IJavaElementDelta delta) { if ((delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) return true; IResourceDelta[] resources = delta.getResourceDeltas(); if (resources == null) return false; IPath path = null; for (int i = 0; i < resources.length; i++) { if (resources[i].getKind() == IResourceDelta.CHANGED) { path = resources[i].getProjectRelativePath(); if (isAlsoClasspathChange(path)) return true; } } return false; }
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; }/* w w w. j a va2s.com*/ } } } 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 processJavaProject(final IJavaProject jproject, final int flags, final int kind, final IJavaElementDelta delta) { final IProject project = jproject.getProject(); final List pathsToAdd = new ArrayList(); final List pathsToRemove = new ArrayList(); final List changedJavaPaths = new ArrayList(); // make certain this is a J2EE project if (ModuleCoreNature.isFlexibleProject(project)) { WorkspaceJob job = new WorkspaceJob( RefactorMessages.J2EEElementChangedListener_J2EE_Component_Mapping_Update_) { @Override/*from www . j a va 2s. c o m*/ public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {// Did the classpath change? if ((flags & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) { final boolean cpChanged = (flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0; getJavaSrcMappings(delta.getAffectedChildren(), cpChanged, jproject, pathsToAdd, pathsToRemove, changedJavaPaths); } // Did a non-Java folder change name? final IResourceDelta[] deltas = delta.getResourceDeltas(); if (deltas != null && deltas.length > 0) { getNonJavaFolderMappings(deltas, project, pathsToAdd, pathsToRemove, changedJavaPaths); } for (int i = 0; i < pathsToAdd.size(); i++) { Object[] toAdd = (Object[]) pathsToAdd.get(i); final IVirtualFolder destFolder = (IVirtualFolder) toAdd[1]; final IPath pathToAdd = (IPath) toAdd[0]; destFolder.createLink(pathToAdd, 0, monitor); } for (int i = 0; i < pathsToRemove.size(); i++) { Object[] toRemove = (Object[]) pathsToRemove.get(i); final IVirtualFolder destFolder = (IVirtualFolder) toRemove[1]; final IPath pathToRemove = (IPath) toRemove[0]; destFolder.removeLink(pathToRemove, 0, monitor); } return Status.OK_STATUS; } @Override public boolean belongsTo(final Object family) { return PROJECT_COMPONENT_UPDATE_JOB_FAMILY.equals(family); } }; job.setRule(ResourcesPlugin.getWorkspace().getRoot()); job.setSystem(true); job.schedule(); } }
From source file:org.eclipse.jst.j2ee.refactor.listeners.J2EEElementChangedListener.java
License:Open Source License
private void processResourceDeltas(final int flags, final int kind, final IJavaElementDelta delta) { final List pathsToAdd = new ArrayList(); final List pathsToRemove = new ArrayList(); final IResourceDelta[] deltas = delta.getResourceDeltas(); if (deltas != null && deltas.length > 0) { try {/*ww w . ja v a 2 s .c o m*/ getNonJavaFolderMappings(deltas, null, pathsToAdd, pathsToRemove, Collections.EMPTY_LIST); } catch (CoreException ce) { J2EEPlugin.logError(ce); return; } } updateMappingsInJob(pathsToAdd, pathsToRemove); }
From source file:org.eclipse.mylyn.internal.java.ui.search.JavaActiveSearchResultUpdater.java
License:Open Source License
private void collectRemoved(Set potentiallyRemovedSet, Set removedElements, IJavaElementDelta delta) { if (delta.getKind() == IJavaElementDelta.REMOVED) { removedElements.add(delta.getElement()); } else if (delta.getKind() == IJavaElementDelta.CHANGED) { int flags = delta.getFlags(); if ((flags & REMOVED_FLAGS) != 0) { potentiallyRemovedSet.add(delta.getElement()); } else {//from www . java 2s . c o m IJavaElementDelta[] childDeltas = delta.getAffectedChildren(); for (IJavaElementDelta childDelta : childDeltas) { collectRemoved(potentiallyRemovedSet, removedElements, childDelta); } } } IResourceDelta[] resourceDeltas = delta.getResourceDeltas(); if (resourceDeltas != null) { for (IResourceDelta resourceDelta : resourceDeltas) { collectRemovals(removedElements, resourceDelta); } } }
From source file:org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.java
License:Open Source License
/** * Processes the java element deltas of interest * /*w ww . j av a2 s . c o m*/ * @param deltas */ void processJavaElementDeltas(IJavaElementDelta[] deltas, IJavaProject project) { for (int i = 0; i < deltas.length; i++) { IJavaElementDelta delta = deltas[i]; switch (delta.getElement().getElementType()) { case IJavaElement.JAVA_PROJECT: { IJavaProject proj = (IJavaProject) delta.getElement(); int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing CHANGED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_OPENED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing OPEN project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); } else if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 || (flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CLASSPATH CHANGE project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); dmanager.projectClasspathChanged(proj); try { BuildState.setLastBuiltState(proj.getProject(), null); } catch (CoreException e) { } dmanager.flushElementCache(delta.getElement()); } else if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CHILDREN delta of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), proj); } else if ((flags & IJavaElementDelta.F_CONTENT) != 0) { if (proj != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing child CONTENT of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } IResourceDelta[] resourcedeltas = delta.getResourceDeltas(); if (resourcedeltas != null) { IResourceDelta rdelta = null; for (int j = 0; j < resourcedeltas.length; j++) { rdelta = resourcedeltas[j].findMember(new Path(Util.MANIFEST_NAME)); if (rdelta != null && rdelta.getKind() == IResourceDelta.CHANGED && (rdelta.getFlags() & IResourceDelta.CONTENT) > 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing manifest delta"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); break; } } } } else { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> ignoring child CONTENT project context is null"); //$NON-NLS-1$ } } } break; } case IJavaElementDelta.ADDED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing ADDED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing PROJECT RENAME from: [" //$NON-NLS-1$ + delta.getMovedFromElement().getJavaProject().getElementName() + "] to: [" //$NON-NLS-1$ + proj.getElementName() + "]"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); } break; } default: break; } break; } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) delta.getElement(); int flags = delta.getFlags(); if ((flags & (IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED | IJavaElementDelta.F_ADDED_TO_CLASSPATH | IJavaElementDelta.F_REMOVED_FROM_CLASSPATH)) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CLASSPATH CHANGED for package fragment root: [" //$NON-NLS-1$ + root.getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectClasspathChanged(project); } if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "processed CHILDREN for package fragment root: [" + root.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.PACKAGE_FRAGMENT: { IPackageFragment fragment = (IPackageFragment) delta.getElement(); if (delta.getKind() == IJavaElementDelta.REMOVED) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed REMOVED delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } ((ApiBaseline) bmanager.getWorkspaceBaseline()).clearPackage(fragment.getElementName()); } int flags = delta.getFlags(); if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CHILDREN delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.COMPILATION_UNIT: { int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_FINE_GRAINED | IJavaElementDelta.F_PRIMARY_RESOURCE)) != 0) { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out .println("processed CONTENT / FINE_GRAINED / PRIMARY_RESOURCE delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } } break; } case IJavaElementDelta.ADDED: case IJavaElementDelta.REMOVED: { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { if (delta.getKind() == IJavaElementDelta.ADDED) { System.out.println( "processed ADDED delta for: [" + delta.getElement().getElementName() + "]"); //$NON-NLS-1$//$NON-NLS-2$ } else { System.out.println("processed REMOVED delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } break; } default: break; } break; } default: break; } } }