package com.lexisnexis.ui.sourceoutliers; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; import com.lexisnexis.ui.constants.Constants; import com.lexisnexis.ui.dataprofiling.DataProfileTable; public class SourceOutliersTable { private TableViewer tv; private SourceOutliersRecordList dataList; public SourceOutliersTable(String fileName) { dataList = new SourceOutliersRecordList(fileName); } public void run() { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); configureShell(shell); //createContents(shell); Composite comp = new Composite(shell, SWT.BORDER); comp.setLayout(new GridLayout()); comp.setLayoutData(new GridData(GridData.FILL_BOTH)); Label lbl = new Label(comp, SWT.CENTER | SWT.TOP); GridData ldata = new GridData(SWT.CENTER, SWT.TOP, true, false); lbl.setLayoutData(ldata); lbl.setText("Preview data returned from SALt"); CTabFolder folder = new CTabFolder(comp, SWT.CLOSE); folder.setSimple(false); folder.setBorderVisible(true); folder.setLayoutData(new GridData(GridData.FILL_BOTH)); this.createContents(folder); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } protected void configureShell(Shell shell) { shell.setSize(950, 400); } /** * Add the columns to the table * @param table * @param parent */ public void addColumns(Table table, Shell parent){ for(int i = 0; i < Constants.ARRAY_SOURCE_OUTLIERS_COL_HEADERS.length; i++){ TableColumn item = new TableColumn(table, SWT.LEFT); item.setText(Constants.ARRAY_SOURCE_OUTLIERS_COL_HEADERS[i]); if(Constants.ARRAY_SOURCE_OUTLIERS_COL_HEADERS[i].equals(Constants.KEY_SOURCE_OUTLIERS_FIELD_VALUE)) { item.setWidth(400); } else { item.setWidth(150); } } } public void createContents(CTabFolder folder) { GridLayout layout = new GridLayout(); layout.numColumns = 1; GridData data = new GridData(); data.horizontalAlignment = GridData.FILL_HORIZONTAL; data.verticalAlignment = GridData.FILL_VERTICAL; folder.setSimple(false); CTabItem item = new CTabItem(folder, SWT.CLOSE); item.setText(Constants.SOURCE_OUTLIERS_TITLE); Composite comp = new Composite(folder, SWT.NONE); comp.setLayout(new FillLayout()); tv = new TableViewer(comp); tv.setContentProvider(new SourceOutliersContentProvider()); tv.setLabelProvider(new SourceOutliersLabelProvider()); final Table table = tv.getTable(); addColumns(table, comp.getShell()); //Add Column Headers and Link Listener to table tv.setInput(dataList); comp.getShell().setText(Constants.SOURCE_OUTLIERS_TITLE); table.setHeaderVisible(true); table.setLinesVisible(true); item.setControl(comp); } public class SourceOutliersContentProvider implements IStructuredContentProvider{ @Override public void dispose() { // TODO Auto-generated method stub } @Override public void inputChanged(Viewer arg0, Object arg1, Object arg2) { // TODO Auto-generated method stub } @Override public Object[] getElements(Object arg0) { return ((SourceOutliersRecordList)arg0).getSourceOutliersRecordsList().toArray(); } } public class SourceOutliersLabelProvider implements ITableLabelProvider{ @Override public void addListener(ILabelProviderListener arg0) { // TODO Auto-generated method stub } @Override public void dispose() { //Nothing to dispose } @Override public boolean isLabelProperty(Object arg0, String arg1) { // TODO Auto-generated method stub return false; } @Override public void removeListener(ILabelProviderListener arg0) { // TODO Auto-generated method stub } @Override public Image getColumnImage(Object arg0, int arg1) { return null; } @Override public String getColumnText(Object arg0, int arg1) { SourceOutliersRow objSourceOutliersRow = (SourceOutliersRow)arg0; String text = ""; switch(arg1) { case 0: text = String.valueOf(objSourceOutliersRow.getFieldName()); break; case 1: text = String.valueOf(objSourceOutliersRow.getFieldValue()); break; case 2: text = String.valueOf(objSourceOutliersRow.getSource()); break; case 3: text = String.valueOf(objSourceOutliersRow.getCount()); break; } return text; } } public static void main(String[] args) { String fileName = "C:\\spoon demos\\new\\salt\\out_hygine\\SrcOutliers.csv"; new SourceOutliersTable(fileName).run(); } }