]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/ge/VariableModifierRule.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / ge / VariableModifierRule.java
1 package org.simantics.document.linking.ge;\r
2 \r
3 import org.simantics.browsing.ui.content.Labeler.Modifier;\r
4 import org.simantics.browsing.ui.graph.impl.L0StringModifier;\r
5 import org.simantics.browsing.ui.model.modifiers.ModifierRule;\r
6 import org.simantics.db.ReadGraph;\r
7 import org.simantics.db.Resource;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.layer0.variable.Variable;\r
10 import org.simantics.document.linking.ontology.DocumentLink;\r
11 \r
12 public class VariableModifierRule implements ModifierRule{\r
13         \r
14         @Override\r
15         public boolean isCompatible(Class<?> contentType) {\r
16                 return true;\r
17         }\r
18         \r
19         @Override\r
20         public Modifier getModifier(ReadGraph graph, Object content,\r
21                         String columnKey) throws DatabaseException {\r
22                 \r
23                 if(!(content instanceof Variable)) {\r
24                         return null;\r
25                 }\r
26                 \r
27                 Variable variable = (Variable)content;\r
28                 Resource source = variable.getPossibleRepresents(graph);\r
29                 if (source == null)\r
30                         return null;\r
31                 \r
32                 DocumentLink sl = DocumentLink.getInstance(graph);\r
33                 if (!graph.isInstanceOf(source, sl.Source))\r
34                         return null;\r
35                 if (columnKey.equals(Constants.COMMENT)) {\r
36                         Resource commentRes = graph.getSingleObject(source, sl.hasSourceComment);\r
37                         return new L0StringModifier(graph.getSession(),commentRes);\r
38                 }\r
39                 return null;\r
40         }\r
41 \r
42 }\r