]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/GEColumnAccessor.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.browsing.ui.nattable / src / org / simantics / browsing / ui / nattable / GEColumnAccessor.java
1 package org.simantics.browsing.ui.nattable;\r
2 \r
3 import org.eclipse.nebula.widgets.nattable.data.IColumnPropertyAccessor;\r
4 import org.simantics.browsing.ui.Column;\r
5 import org.simantics.browsing.ui.content.Labeler.Modifier;\r
6 \r
7 \r
8 public class GEColumnAccessor implements IColumnPropertyAccessor<TreeNode> {\r
9         NatTableGraphExplorer ge;\r
10         \r
11         public GEColumnAccessor(NatTableGraphExplorer ge) {\r
12                 this.ge = ge;\r
13         }\r
14         \r
15         @Override\r
16         public int getColumnCount() {\r
17                 return ge.getColumns().length;\r
18         }\r
19         \r
20         @Override\r
21         public Object getDataValue(TreeNode rowObject, int columnIndex) {\r
22                 \r
23                 if (columnIndex > 0)\r
24                         return rowObject.getValueString(columnIndex);\r
25                 else {\r
26                         String val = "";\r
27                         for (int i = 0 ; i <rowObject.getDepth(); i++)\r
28                                 val += "   ";\r
29                         return val + rowObject.getValueString(columnIndex);\r
30                 }\r
31                 \r
32                 \r
33         }\r
34         \r
35         \r
36         @Override\r
37         public void setDataValue(TreeNode rowObject, int columnIndex, Object newValue) {\r
38                 Modifier modifier = ge.getModifier(rowObject, columnIndex);\r
39                 if (modifier == null)\r
40                         throw new IllegalArgumentException("Items is not modifiable");\r
41                 modifier.modify(newValue.toString());\r
42         }\r
43         \r
44         \r
45         @Override\r
46         public String getColumnProperty(int columnIndex) {\r
47                 return ge.getColumns()[columnIndex].getKey();\r
48         }\r
49         \r
50         @Override\r
51         public int getColumnIndex(String propertyName) {\r
52                 Column columns[] = ge.getColumns();\r
53                 for (int i = 0; i < columns.length; i++) {\r
54                         if (columns[i].getKey().equals(propertyName))\r
55                                 return i;\r
56                 }\r
57                 return -1;\r
58         }\r
59         \r
60 }