]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop/src/org/simantics/interop/utils/TableUtils.java
Added relations checks for graph path comparison
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / utils / TableUtils.java
1 package org.simantics.interop.utils;\r
2 \r
3 import org.eclipse.jface.viewers.TableViewer;\r
4 import org.eclipse.jface.viewers.TableViewerColumn;\r
5 import org.eclipse.jface.viewers.TreeViewer;\r
6 import org.eclipse.jface.viewers.TreeViewerColumn;\r
7 import org.eclipse.swt.SWT;\r
8 import org.eclipse.swt.events.SelectionAdapter;\r
9 import org.eclipse.swt.events.SelectionEvent;\r
10 import org.eclipse.swt.widgets.TableColumn;\r
11 import org.eclipse.swt.widgets.TreeColumn;\r
12 \r
13 public class TableUtils {\r
14         public static TableViewerColumn addColumn(final TableViewer viewer, String text, boolean resize, boolean sort, int width) {\r
15                 final TableViewerColumn twc = new TableViewerColumn(viewer, SWT.NONE);\r
16                 final TableColumn tc = twc.getColumn();\r
17                 tc.setText(text);\r
18                 tc.setResizable(resize);\r
19                 tc.setWidth(width);\r
20                 if (sort) {\r
21                         tc.addSelectionListener(new SelectionAdapter() {\r
22                                 @Override\r
23                                 public void widgetSelected(SelectionEvent e) {\r
24                                         StringColumnComparator comparator = null;\r
25                                         if (viewer.getComparator() instanceof StringColumnComparator) {\r
26                                                 comparator = (StringColumnComparator)viewer.getComparator();\r
27                                         } else {\r
28                                                 comparator = new StringColumnComparator();\r
29                                                 viewer.setComparator(comparator);\r
30                                         }\r
31                                         TableColumn tcs[] = viewer.getTable().getColumns();\r
32                                         int index = -1;\r
33                                         for (int i = 0; i <tcs.length; i++) {\r
34                                                 if (tcs[i].equals(tc)) {\r
35                                                         index = i;\r
36                                                         break;\r
37                                                 }\r
38                                         }\r
39                                         if (index == -1)\r
40                                                 return;\r
41                                         comparator.setColumnt(index);\r
42                                         \r
43                                         int dir = viewer.getTable().getSortDirection();\r
44                                         if (viewer.getTable().getSortColumn() == tc) {\r
45                                                 dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;\r
46                                         } else {\r
47         \r
48                                                 dir = SWT.DOWN;\r
49                                         }\r
50                                         viewer.getTable().setSortDirection(dir);\r
51                                         viewer.getTable().setSortColumn(tc);\r
52                                         viewer.refresh();\r
53                                 }\r
54                         });\r
55                 }\r
56                 return twc;\r
57         }\r
58         \r
59         public static TreeViewerColumn addColumn(final TreeViewer viewer, String text, boolean resize, int width) {\r
60                 final TreeViewerColumn tvc = new TreeViewerColumn(viewer, SWT.NONE);\r
61                 TreeColumn tc = tvc.getColumn();\r
62                 tc.setResizable(resize);\r
63                 tc.setText(text);\r
64                 tc.setWidth(width);\r
65                 return tvc;\r
66         }\r
67 }\r