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.ui.ide/src/org/eclipse/ui/views/markers/internal/TableView.java
IField[] fields = getAllFields();
		for (int i = 0; i < fields.length; i++) {
			IField field = fields[i];
			viewer.getViewerColumn(i).setLabelProvider(new MarkerViewLabelProvider(field));
		}	
		
	}
	/**
	 * Create the viewer input for the receiver.
	 * 
	 * @return Object
	 */
	abstract Object createViewerInput();
	/**
	 * Set the comparator to be the new comparator.
	 * 
	 * @param comparator
	 */
	void setComparator(TableComparator comparator) {
		viewer.setComparator(comparator);
		updateForNewComparator(comparator);
	}
	/**
	 * Update the viewer for comparator updates
	 * 
	 * @param comparator
	 */
	void updateForNewComparator(TableComparator comparator) {
		comparator.saveState(getDialogSettings());