]> gerrit.simantics Code Review - simantics/interop.git/blob - TableUtils.java
f373bc2f3cafb34715f9dc08a8d123e75f5ef49a
[simantics/interop.git] / 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.swt.SWT;\r
6 import org.eclipse.swt.events.SelectionAdapter;\r
7 import org.eclipse.swt.events.SelectionEvent;\r
8 import org.eclipse.swt.widgets.TableColumn;\r
9 \r
10 public class TableUtils {\r
11         public static TableViewerColumn addColumn(final TableViewer viewer, String text, boolean resize, boolean sort, int width) {\r
12                 final TableViewerColumn twc = new TableViewerColumn(viewer, SWT.NONE);\r
13                 final TableColumn tc = twc.getColumn();\r
14                 //final TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE);\r
15                 tc.setText(text);\r
16                 tc.setResizable(resize);\r
17                 tc.setWidth(width);\r
18                 if (sort) {\r
19                         tc.addSelectionListener(new SelectionAdapter() {\r
20                                 @Override\r
21                                 public void widgetSelected(SelectionEvent e) {\r
22                                         StringColumnComparator comparator = (StringColumnComparator)viewer.getComparator();\r
23                                         //TableColumn tc = twc.getColumn();\r
24                                         TableColumn tcs[] = viewer.getTable().getColumns();\r
25                                         int index = -1;\r
26                                         for (int i = 0; i <tcs.length; i++) {\r
27                                                 if (tcs[i].equals(tc)) {\r
28                                                         index = i;\r
29                                                         break;\r
30                                                 }\r
31                                         }\r
32                                         if (index == -1)\r
33                                                 return;\r
34                                         comparator.setColumnt(index);\r
35                                         \r
36                                         int dir = viewer.getTable().getSortDirection();\r
37                                         if (viewer.getTable().getSortColumn() == tc) {\r
38                                                 dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;\r
39                                         } else {\r
40         \r
41                                                 dir = SWT.DOWN;\r
42                                         }\r
43                                         viewer.getTable().setSortDirection(dir);\r
44                                         viewer.getTable().setSortColumn(tc);\r
45                                         viewer.refresh();\r
46                                 }\r
47                         });\r
48                 }\r
49                 return twc;\r
50         }\r
51 }\r