Bug 213166 [Viewers] Problems with OwnerDrawLabelProvider.setUpOwnerDraw
3.4 M4 To set up the owner draw callbacks for a viewer OwnerDrawLabelProvider.setUpOwnerDraw is offered. The problem of this is: a. there's no way to uninstall the callbacks. In our views we want to allow to enable and disable owner draw in the preferences b. from an API client perspective, it would be nicer if the label provider could install itself when installed. A good solution would be to add more life cycle to a label provider. CellLabelProvider.initialize(ColumnViewer, int column) There's already ILableProvider.dispose when a label provider is removed from a viewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java
*/
	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 || columnOwner.isDisposed() ) {
			return null;
		}
		viewer = (ViewerColumn) columnOwner
				.getData(ViewerColumn.COLUMN_VIEWER_KEY);
		if (viewer == null) {
			viewer = createViewerColumn(columnOwner, CellLabelProvider
					.createViewerLabelProvider(this, getLabelProvider()));
			setupEditingSupport(columnIndex, viewer);
		}
		if (viewer.getEditingSupport() == null && getCellModifier() != null) {
			setupEditingSupport(columnIndex, viewer);
		}
		return viewer;
	}
	/**
	 * Sets up editing support for the given column based on the "old" cell