if (processResourceDeltas(delta.getResourceDeltas(), element)) return;
	public void processDelta(IJavaElementDelta delta) throws JavaModelException {		int kind= delta.getKind();		int flags= delta.getFlags();		IJavaElement element= delta.getElement();				if(element.getElementType()!= IJavaElement.JAVA_MODEL && element.getElementType()!= IJavaElement.JAVA_PROJECT){			IJavaProject proj= element.getJavaProject();			if (proj == null || !proj.getProject().isOpen())				return;			}				if (!fIsFlatLayout && element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {			fPackageFragmentProvider.processDelta(delta);			IJavaElementDelta[] affectedChildren= delta.getAffectedChildren();						processAffectedChildren(affectedChildren);			return;		}					if (!getProvideWorkingCopy() && isWorkingCopy(element))			return; 		if (element != null && element.getElementType() == IJavaElement.COMPILATION_UNIT && !isOnClassPath((ICompilationUnit)element))			return;			 		// handle open and closing of a solution or project		if (((flags & IJavaElementDelta.F_CLOSED) != 0) || ((flags & IJavaElementDelta.F_OPENED) != 0)) {						postRefresh(element);			return;		}		if (kind == IJavaElementDelta.REMOVED) {			// when a working copy is removed all we have to do			// is to refresh the compilation unit			if (isWorkingCopy(element)) {				refreshWorkingCopy((IWorkingCopy)element);				return;			}			Object parent= internalGetParent(element);						postRemove(element);			if (parent instanceof IPackageFragment) 				postUpdateIcon((IPackageFragment)parent);			// 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));			}  			return;		}		if (kind == IJavaElementDelta.ADDED) { 			// when a working copy is added all we have to do			// is to refresh the compilation unit			if (isWorkingCopy(element)) {				refreshWorkingCopy((IWorkingCopy)element);				return;			}			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 unvisible parent				if (parent.equals(fInput)) {					postRefresh(parent);				} else {					// refresh from grandparent if parent isn't visible yet					if (fViewer.testFindItem(parent) == null)						postRefresh(grandparent);					else {						postRefresh(parent);					}					}				return;							} else {  				postAdd(parent, element);			}		}		if (element instanceof ICompilationUnit) {			if (getProvideWorkingCopy()) {				IJavaElement original= ((IWorkingCopy)element).getOriginalElement();				if (original != null)					element= original;			}			if (kind == IJavaElementDelta.CHANGED) {				postRefresh(element);				updateSelection(delta);				return;			}		}		// we don't show the contents of a compilation or IClassFile, so don't go any deeper		if ((element instanceof ICompilationUnit) || (element instanceof IClassFile))			return;					// the contents of an external JAR has changed		if (element instanceof IPackageFragmentRoot && ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0)) {			postRefresh(element);			return;		}		// the source attachment of a JAR has changed		if (element instanceof IPackageFragmentRoot && (((flags & IJavaElementDelta.F_SOURCEATTACHED) != 0 || ((flags & IJavaElementDelta.F_SOURCEDETACHED)) != 0)))			postUpdateIcon(element);					if (isClassPathChange(delta)) {			 // throw the towel and do a full refresh of the affected java project. 			postRefresh(element.getJavaProject());			return;		}				if (processResourceDeltas(delta.getResourceDeltas(), element))			return;		handleAffectedChildren(delta, element);	}