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
return getCellModifier().getValue(element,
							(String) getColumnProperties()[columnIndex]);
				}
				/*
				 * (non-Javadoc)
				 * 
				 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object,
				 *      java.lang.Object)
				 */
				public void setValue(Object element, Object value) {
					getCellModifier().modify(findItem(element),
							(String) getColumnProperties()[columnIndex], value);
				}
			});
		}
	}
	/**
	 * Creates a viewer column for the given column widget, based on the given label provider.
	 * 
	 * @param columnOwner the column widget
	 * @param labelProvider the label provider to use for the column
	 * @return ViewerColumn the viewer column
	 */
	protected ViewerColumn createViewerColumn(Widget columnOwner,
			CellLabelProvider labelProvider) {
		return new ViewerColumn(columnOwner, labelProvider);
	}
	/**
	 * Activate the support for custom tooltips.
	 */