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/ChangeElementTreeViewer.java
private static class GroupCategoryFilter extends ViewerFilter {
		private List fGroupCategories;
		public void setGroupCategory(List groupCategories) {
			fGroupCategories= groupCategories;
		}
		public boolean select(Viewer viewer, Object parentElement, Object element) {
			if (fGroupCategories == null)
				return true;
			return ((ChangeElement)element).hasOneGroupCategory(fGroupCategories);
		}
	}
	
	
	private List fDeferredTreeItemUpdates;
	
	public ChangeElementTreeViewer(Composite parentComposite) {
		super(parentComposite, SWT.NONE);
		addFilter(new GroupCategoryFilter());
		addCheckStateListener(new ICheckStateListener() {
			public void checkStateChanged(CheckStateChangedEvent event){
				ChangeElement element= (ChangeElement)event.getElement();
				boolean checked= event.getChecked();
				
				element.setEnabled(checked);
				setSubtreeChecked(element, checked);
				setSubtreeGrayed(element, false);
				ChangeElement parent= element.getParent();