if (o == null) setInput(null);
	void adjustInputAndSetSelection(Object o) {		if (!(o instanceof IJavaElement)) {			setSelection(StructuredSelection.EMPTY, true);			return;		}				IJavaElement je= (IJavaElement)o;		IJavaElement elementToSelect= getSuitableJavaElement(findElementToSelect(je));		IJavaElement newInput= findInputForJavaElement(je);		IJavaElement oldInput= null;		if (getInput() instanceof IJavaElement)			oldInput= (IJavaElement)getInput();		if (elementToSelect == null && !isValidInput(newInput) && (newInput == null && !isAncestorOf(je, oldInput)))			// Clear input			setInput(null);		else if (mustSetNewInput(elementToSelect, oldInput, newInput)) {			// Adjust input to selection			setInput(newInput);			// Recompute suitable element since it depends on the viewer's input			elementToSelect= getSuitableJavaElement(elementToSelect);		}				if (elementToSelect != null && elementToSelect.exists())			setSelection(new StructuredSelection(elementToSelect), true);		else			setSelection(StructuredSelection.EMPTY, true);	}