code: @Override
  	public void createPartControl(Composite parent) {
  		viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL
  				| SWT.V_SCROLL);
  		// test setup columns...
  		TableLayout layout = new TableLayout();
  		layout.addColumnData(new ColumnWeightData(20, true));
  		layout.addColumnData(new ColumnWeightData(30, true));
  		layout.addColumnData(new ColumnWeightData(50, false));
  		viewer.getTable().setLayout(layout);
  		viewer.getTable().setLinesVisible(true);
  		viewer.getTable().setHeaderVisible(true);
  		viewer.getTable().setSortDirection(SWT.NONE);
  		viewer.setSorter(null);
  
  		TableColumn column01 = new TableColumn(viewer.getTable(), SWT.LEFT);
  		column01.setText("No.");
  		column01.setToolTipText("No.");
  
  		TableColumn column = new TableColumn(viewer.getTable(), SWT.LEFT);
  		column.setText("PO Name");
  		column.setToolTipText("PO Name");
  
  		TableColumn column2 = new TableColumn(viewer.getTable(), SWT.LEFT);
  		column2.setText("Type");
  		column2.setToolTipText("Show Type");
  		
  		viewer.setContentProvider(new ViewContentProvider());
  		viewer.setLabelProvider(new ViewLabelProvider());
  
  		makeActions();
  		hookDoubleClickAction();
  
  		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
  
  			public void selectionChanged(SelectionChangedEvent event) {
  
  				Object first = ((IStructuredSelection) event.getSelection())
  						.getFirstElement();
  				if (first instanceof ProofObligation) {
  					try {
  						IViewPart v = getSite().getPage().showView(
  								IPoviewerConstants.PoTableViewId);
  
  						if (v instanceof PoTableView)
  							((PoTableView) v).setDataList(project,
  									(ProofObligation) first);
  					} catch (PartInitException e) {
  
  						e.printStackTrace();
  					}
  				}
  
  			}
  		});
  	}
docs: This is a callback that will allow us to create the viewer and initialize
  it.