public void initializeQui() { TableViewer viewer = new TableViewer(HYSHOPWORKORDER); viewer.getTable().setHeaderVisible(true); viewer.getTable().setLinesVisible(true); viewer.setContentProvider(new ArrayContentProvider()); loadWorkOrder lWO = new loadWorkOrder(); // load data from Oracle table ArrayList workOrders = lWO.mxWorkOrderOf1Asset(carNo); // Into workOrders array TableColumn column = null; column = new TableColumn(viewer.getTable(), SWT.NONE); column.setText("wonum"); column.setWidth(100); TableViewerColumn Col1 = new TableViewerColumn(viewer, column); Col1.setLabelProvider(new ColumnLabelProvider(){ //make sure you dispose these buttons when viewer input changes Map buttons = new HashMap(); String url= ""; String wonum =""; @Override public String getText(Object element) { WorkOrder wo = (WorkOrder)element; url=wo.getUrl(); wonum= wo.getWonum(); return wonum; } @Override public void update(ViewerCell cell) { TableItem item = (TableItem) cell.getItem(); final Hyperlink hyperlink; wonum = getText(cell.getElement()); if(buttons.containsKey(cell.getElement())) { hyperlink=buttons.get(cell.getElement()); } else { hyperlink=new Hyperlink ((org.eclipse.swt.widgets.Composite) (cell.getViewerRow().getControl()),SWT.NONE); hyperlink.setText(wonum ); hyperlink.setHref(url); hyperlink.addHyperlinkListener(new HyperlinkAdapter(){ public void linkActivated(HyperlinkEvent e){ System.out.println(e.getURL()); org.eclipse.swt.program.Program.launch(hyperlink.getHref().toString()); } }); buttons.put(cell.getElement(), hyperlink); } TableEditor editor = new TableEditor(item.getParent()); editor.grabHorizontal = true; editor.grabVertical = true; editor.setEditor(hyperlink , item, cell.getColumnIndex()); editor.layout(); } }); column = new TableColumn(viewer.getTable(), SWT.NONE); column.setText("Status"); column.setWidth(100); TableViewerColumn Col2 = new TableViewerColumn(viewer, column); Col2.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { WorkOrder wo = (WorkOrder)element; return wo.getStatus(); } }); column =new TableColumn(viewer.getTable(), SWT.NONE); column.setText("Status Date"); column.setWidth(150); TableViewerColumn Col3 = new TableViewerColumn(viewer, column); Col3.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { WorkOrder wo = (WorkOrder)element; return wo.getStatusDate(); } }); column = new TableColumn(viewer.getTable(), SWT.NONE); column.setText("Description"); column.setWidth(600); TableViewerColumn Col4 = new TableViewerColumn(viewer, column); Col4.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { WorkOrder wo = (WorkOrder)element; return wo.getDescription(); } }); viewer.setInput(workOrders); }