package org.simantics.interop.utils; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.TreeColumn; public class TableUtils { public static TableViewerColumn addColumn(final TableViewer viewer, String text, boolean resize, boolean sort, int width) { final TableViewerColumn twc = new TableViewerColumn(viewer, SWT.NONE); final TableColumn tc = twc.getColumn(); tc.setText(text); tc.setResizable(resize); tc.setWidth(width); if (sort) { tc.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { StringColumnComparator comparator = null; if (viewer.getComparator() instanceof StringColumnComparator) { comparator = (StringColumnComparator)viewer.getComparator(); } else { comparator = new StringColumnComparator(); viewer.setComparator(comparator); } TableColumn tcs[] = viewer.getTable().getColumns(); int index = -1; for (int i = 0; i