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
viewer.refresh();
		setSortIndicators();
	}
	/**
	 * Create the main tree control
	 * 
	 * @param parent
	 * @return Tree
	 */
	protected Tree createTree(Composite parent) {
		Tree tree = new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI
				| SWT.FULL_SELECTION);
		tree.setLinesVisible(true);
		return tree;
	}
	/**
	 * Get the pixel data for the columns.
	 * 
	 * @return ColumnPixelData[]
	 */
	public ColumnPixelData[] getSavedColumnData() {
		ColumnPixelData[] defaultData = getDefaultColumnLayouts();
		ColumnPixelData[] result = new ColumnPixelData[defaultData.length];
		for (int i = 0; i < defaultData.length; i++) {
			int width = defaultData[i].width;
			ColumnPixelData defaultPixelData = defaultData[i];
			
			if (defaultPixelData.resizable) {
				if (memento != null) {
					Integer widthInt = memento.getInteger(TAG_COLUMN_WIDTH + i);