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
ITreePathContentProvider tpcp = (ITreePathContentProvider) cp;
				if (path == null) {
					
					Widget w = findItem(parent);
					if (w instanceof Item) {
						Item item = (Item) w;
						path = getTreePathFromItem(item);
					}
					if (path == null) {
						path = new TreePath(new Object[] { parent });
					}
				}
				Object[] result = tpcp.getChildren(path);
				if (result != null) {
					return result;
				}
			} else if (cp instanceof ITreeContentProvider) {
				ITreeContentProvider tcp = (ITreeContentProvider) cp;
				Object[] result = tcp.getChildren(parent);
				if (result != null) {
					return result;
				}
			}
		}
		return new Object[0];
	}
	/**
	 * Returns all selected items for the given SWT control.
	 * 
	 * @param control