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/AbstractTreeViewer.java
*            needs to be determines
	 * @param element
	 *            the element
	 * @return whether the given element is expandable
	 */
	private boolean isExpandable(Item item, TreePath parentPath, Object element) {
		if (isTreePathContentProvider()) {
			TreePath path;
			if (parentPath != null) {
				path = parentPath.createChildPath(element);
			} else {
				path = getTreePathFromItem(item);
			}
			ITreePathContentProvider cp = (ITreePathContentProvider) getContentProvider();
			return cp != null && cp.hasChildren(path);
		}
		return isExpandable(element);
	}
	
	protected void labelProviderChanged() {
		
		Control tree = getControl();
		tree.setRedraw(false);
		
		internalRefresh(tree, getRoot(), false, true);
		tree.setRedraw(true);
	}
	/**
	 * Creates a new item.
	 *