} else if (element instanceof IWorkingCopy) {
} else if (element instanceof IWorkingCopy && ((IWorkingCopy)element).isWorkingCopy()) {
	protected void processDelta(IJavaElementDelta delta) throws JavaModelException {		int kind= delta.getKind();		int flags= delta.getFlags();		IJavaElement element= delta.getElement();		if (!getProvideWorkingCopy() && element instanceof IWorkingCopy && ((IWorkingCopy)element).isWorkingCopy()) {			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) {			Object parent= internalGetParent(element);			if (fBrowsingPart.isValidElement(element)) {				if (element instanceof IClassFile) {					postRemove(((IClassFile)element).getType());				} else if (element instanceof ICompilationUnit && !((ICompilationUnit)element).isWorkingCopy()) {					if (!getProvideWorkingCopy())						postRefresh(null);				} else if (element instanceof ICompilationUnit && ((ICompilationUnit)element).isWorkingCopy()) {					if (getProvideWorkingCopy())						postRefresh(null);				} else if (parent instanceof ICompilationUnit && getProvideWorkingCopy() && !((ICompilationUnit)parent).isWorkingCopy()) {					if (element instanceof IWorkingCopy) {						// working copy removed from system - refresh						postRefresh(null);					}				} else if (element instanceof IWorkingCopy && parent != null && parent.equals(fInput))				// closed editor - removing working copy					postRefresh(null);				else					postRemove(element);			}							if (fBrowsingPart.isAncestorOf(element, fInput)) {				if (element instanceof IWorkingCopy) {					postAdjustInputAndSetSelection(((IWorkingCopy)element).getOriginal((IJavaElement)fInput));				} else					postAdjustInputAndSetSelection(null);			} 									return;		}		if (kind == IJavaElementDelta.ADDED && delta.getMovedFromElement() != null && element instanceof ICompilationUnit)			return;				if (kind == IJavaElementDelta.ADDED) {			if (fBrowsingPart.isValidElement(element)) {				Object parent= internalGetParent(element);								if (element instanceof IClassFile) {					postAdd(parent, ((IClassFile)element).getType());				} else if (element instanceof ICompilationUnit && !((ICompilationUnit)element).isWorkingCopy()) {					if (!getProvideWorkingCopy())						postAdd(parent, ((ICompilationUnit)element).getAllTypes());				} else if (parent instanceof ICompilationUnit && getProvideWorkingCopy() && !((ICompilationUnit)parent).isWorkingCopy()) {					//	do nothing				} else if (element instanceof IWorkingCopy) {					// new working copy comes to live					postRefresh(null);				} else					postAdd(parent, element);			} else	if (fInput == null) {				IJavaElement newInput= fBrowsingPart.findInputForJavaElement(element);				if (newInput != null)					postAdjustInputAndSetSelection(element);			} else if (element instanceof IType && fBrowsingPart.isValidInput(element)) {				IJavaElement cu1= element.getAncestor(IJavaElement.COMPILATION_UNIT);				IJavaElement cu2= ((IJavaElement)fInput).getAncestor(IJavaElement.COMPILATION_UNIT);				if  (cu1 != null && cu2 != null && cu1.equals(cu2))					postAdjustInputAndSetSelection(element);			}			return;		}		if (kind == IJavaElementDelta.CHANGED) {			if (fBrowsingPart.isValidElement(element)) {				postRefresh(element);			}		}		if (isClassPathChange(delta))			 // throw the towel and do a full refresh			postRefresh(null);				IJavaElementDelta[] affectedChildren= delta.getAffectedChildren();		if (affectedChildren.length > 1) {			// a package fragment might become non empty refresh from the parent			if (element instanceof IPackageFragment) {				IJavaElement parent= (IJavaElement)internalGetParent(element);				// avoid posting a refresh to an unvisible parent				if (element.equals(fInput)) {					postRefresh(element);				} else {					postRefresh(parent);				}			}			// more than one child changed, refresh from here downwards			if (element instanceof IPackageFragmentRoot && fBrowsingPart.isValidElement(element)) {				postRefresh(skipProjectPackageFragmentRoot((IPackageFragmentRoot)element));				return;			}		}		for (int i= 0; i < affectedChildren.length; i++) {			processDelta(affectedChildren[i]);		}	}