--- /dev/null
+package org.simantics.document.linking.ge;\r
+\r
+import org.simantics.browsing.ui.content.Labeler.Modifier;\r
+import org.simantics.browsing.ui.graph.impl.L0StringModifier;\r
+import org.simantics.browsing.ui.model.modifiers.ModifierRule;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.document.linking.ontology.DocumentLink;\r
+\r
+public class VariableModifierRule implements ModifierRule{\r
+ \r
+ @Override\r
+ public boolean isCompatible(Class<?> contentType) {\r
+ return true;\r
+ }\r
+ \r
+ @Override\r
+ public Modifier getModifier(ReadGraph graph, Object content,\r
+ String columnKey) throws DatabaseException {\r
+ \r
+ if(!(content instanceof Variable)) {\r
+ return null;\r
+ }\r
+ \r
+ Variable variable = (Variable)content;\r
+ Resource source = variable.getPossibleRepresents(graph);\r
+ if (source == null)\r
+ return null;\r
+ \r
+ DocumentLink sl = DocumentLink.getInstance(graph);\r
+ if (!graph.isInstanceOf(source, sl.Source))\r
+ return null;\r
+ if (columnKey.equals(Constants.COMMENT)) {\r
+ Resource commentRes = graph.getSingleObject(source, sl.hasSourceComment);\r
+ return new L0StringModifier(graph.getSession(),commentRes);\r
+ }\r
+ return null;\r
+ }\r
+\r
+}\r