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
* @param column
			 *            the column being updated
			 * @param field
			 * @param monitor
			 */
			private void resortTable(final TreeColumn column,
					final IField field, IProgressMonitor monitor) {
				TableComparator sorter = getTableSorter();
				monitor.beginTask(MarkerMessages.sortDialog_title, 100);
				monitor.worked(10);
				if (field.equals(sorter.getTopField()))
					sorter.reverseTopPriority();
				else
					sorter.setTopPriority(field);
				monitor.worked(15);
				PlatformUI.getWorkbench().getDisplay().asyncExec(
						new Runnable() {
							/*
							 * (non-Javadoc)
							 * 
							 * @see java.lang.Runnable#run()
							 */
							public void run() {
								viewer.refresh();
								updateDirectionIndicator(column);
							}
						});
				monitor.done();
			}
		};