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/ColumnViewer.java
}
	/**
	 * Returns the viewer row associated with the given row widget.
	 * 
	 * @param item the row widget
	 * @return ViewerRow the associated viewer row
	 */
	protected ViewerRow getViewerRowFromItem(Widget item) {
		return (ViewerRow) item.getData(ViewerRow.ROWPART_KEY);
	}
	/**
	 * Returns the column widget at the given column index.
	 * 
	 * @param columnIndex the column index
	 * @return Widget the column widget
	 */
	protected abstract Widget getColumnViewerOwner(int columnIndex);
	/**
	 * Returns the viewer column for the given column index.
	 * 
	 * @param columnIndex
	 *            the column index
	 * @return the viewer column at the given index, or <code>null</code> if
	 *         there is none for the given index
	 */
	 ViewerColumn getViewerColumn(final int columnIndex) {
		ViewerColumn viewer;
		Widget columnOwner = getColumnViewerOwner(columnIndex);
		if (columnOwner == null) {
			return null;