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