Bug 163317 [Viewers] Take over SWT programming pattern to JFace Viewers
To open ColumnViewer for reusablility we should not make it final making the constructor protected forces people to subclass it and not directly creating instances from it.
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
	 */
	public ViewerColumn getViewerColumn(final int columnIndex) {
		ViewerColumn viewer;
		Widget columnOwner = getColumnViewerOwner(columnIndex);
		if (columnOwner == null) {
			return null;
		}
		viewer = (ViewerColumn) columnOwner
				.getData(ViewerColumn.COLUMN_VIEWER_KEY);
		if (viewer == null) {
			viewer = createViewerColumn(columnOwner, CellLabelProvider
					.createViewerLabelProvider(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 editor API.