if (isClassPathChange(delta)) { Object input= fViewer.getInput(); if (input != null) { if (fInputIsProject && input.equals(element.getJavaProject())) { postRefresh(input); return; } else if (!fInputIsProject && input.equals(element)) { if (element.exists()) postRefresh(input); else postRemove(element); return; } } }
	protected void processDelta(IJavaElementDelta delta) throws JavaModelException {		int kind = delta.getKind();		final IJavaElement element = delta.getElement();		if (element instanceof IPackageFragment) {			final IPackageFragment frag = (IPackageFragment) element;			//if fragment was in LogicalPackage refresh,			//otherwise just remove			if (kind == IJavaElementDelta.REMOVED) {				removeElement(frag);				return;			} else if (kind == IJavaElementDelta.ADDED) {				Object parent= getParent(frag);				addElement(frag, parent);				return;			} else if (kind == IJavaElementDelta.CHANGED) {				//just refresh				LogicalPackage logicalPkg= findLogicalPackage(frag);				//in case changed object is filtered out				if (logicalPkg != null)					postRefresh(findElementToRefresh(logicalPkg));				else					postRefresh(findElementToRefresh(frag));				return;			}		}				processAffectedChildren(delta);	}