Bug 167323 [Viewers]Open AbstractTreeViewer for external widget implementors
As reported by Ross Camara AbstractTreeViewer would work for nebula if we would open the API a bit. Boris and I decided that we will do this in 2 steps: 1. open the API 2. moving the Virtual-Support bits from TreeViewer to AbstractTreeViewer when the nebula grid provides virtual support.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
unmapAllElements();
				}
			});
			treeControl.addListener(SWT.SetData, new Listener() {
				public void handleEvent(Event event) {
					if (contentProviderIsLazy) {
						TreeItem item = (TreeItem) event.item;
						TreeItem parentItem = item.getParentItem();
						int index;
						if (parentItem != null) {
							index = parentItem.indexOf(item);
						} else {
							index = getTree().indexOf(item);
						}
						virtualLazyUpdateWidget(
								parentItem == null ? (Widget) getTree()
										: parentItem, index);
					}
				}
			});
		}
	}
	protected AbstractViewerEditor createViewerEditor() {
		return new AbstractViewerEditor(this) {
			protected StructuredSelection createSelection(Object element) {
				if (element instanceof TreePath) {
					return new TreeSelection((TreePath) element, getComparer());
				}
				return new StructuredSelection(element);
			}