Bug 93400 LTK UI should provide official API for structural content in the preview page
org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/PreviewWizardPage.java
private ChangeElement getFirstNonCompositeChange(ITreeContentProvider provider, ChangeElement input) {
		ChangeElement focus= input;
		Change change= input.getChange();
		while (change != null && change instanceof CompositeChange) {
			ChangeElement[] children= (ChangeElement[])provider.getElements(focus);
			if (children == null || children.length == 0)
				return null;
			focus= children[0];
			change= focus.getChange();
		}
		return focus;
	}
	
	private void setTreeViewerInput() {
		if (fTreeViewer == null)
			return;
		ChangeElement input= null;
		if (fTreeViewerInputChange != null) {
			input= new DefaultChangeElement(null, fTreeViewerInputChange);
		}
		fTreeViewer.setInput(input);
	}
	
	private ICheckStateListener createCheckStateListener() {
		return new ICheckStateListener() {
			public void checkStateChanged(CheckStateChangedEvent event){
				ChangeElement element= (ChangeElement)event.getElement();
				if (isChild(fCurrentSelection, element) || isChild(element, fCurrentSelection)) {
					showPreview(fCurrentSelection);
				}