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
* Return the viewer.
	 * 
	 * @return TreeViewer
	 */
	protected TreeViewer getViewer() {
		return viewer;
	}
	/**
	 * Return the tree for the receiver.
	 * 
	 * @return Tree
	 */
	protected Tree getTree() {
		return getViewer().getTree();
	}
	protected SelectionListener getHeaderListener() {
		return new SelectionAdapter() {
			/**
			 * Handles the case of user selecting the header area.
			 */
			public void widgetSelected(SelectionEvent e) {
				final TreeColumn column = (TreeColumn) e.widget;
				final IField field = (IField) column.getData();
				try {
					IWorkbenchSiteProgressService progressService = getProgressService();
					if (progressService == null)
						BusyIndicator.showWhile(getSite().getShell()
								.getDisplay(), new Runnable() {
							/*
							 * (non-Javadoc)