]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Variable.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / evaluator / Variable.java
diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Variable.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Variable.java
new file mode 100644 (file)
index 0000000..e19b352
--- /dev/null
@@ -0,0 +1,91 @@
+package org.simantics.document.linking.report.evaluator;\r
+\r
+import java.util.Map;\r
+\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.document.linking.Activator;\r
+import org.simantics.document.linking.ontology.DocumentLink;\r
+import org.simantics.document.linking.utils.SourceLinkUtil;\r
+import org.simantics.objmap.graph.annotations.GraphType;\r
+import org.simantics.objmap.graph.annotations.RelatedGetValue;\r
+import org.simantics.objmap.graph.annotations.RelatedSetValue;\r
+\r
+\r
+@GraphType(DocumentLink.URIs.EvaluatorTree_Variable)\r
+public class Variable extends EvaluatorLeaf implements StringEditableNode{\r
+       \r
+       String variableRef = "#HasName";\r
+       \r
+       public Variable() {\r
+               \r
+       }\r
+       \r
+       public Variable(String variableRef) {\r
+               this.variableRef = variableRef;\r
+       }\r
+       \r
+       public void setVariableRef(String variableRef) {\r
+               this.variableRef = variableRef;\r
+       }\r
+       \r
+       public String getVariableRef() {\r
+               return variableRef;\r
+       }\r
+       \r
+       @Override\r
+       public String getValue(ReadGraph graph, org.simantics.db.layer0.variable.Variable variable, Map<Object, Object> context) throws DatabaseException {\r
+               if (context.containsKey(variableRef))\r
+                       return SourceLinkUtil.getValueString(context.get(variableRef));\r
+               try {\r
+                       org.simantics.db.layer0.variable.Variable propertyVar = PredefinedVariables.getInstance().getVariable(graph, variableRef, null, variable);\r
+                       if (propertyVar.getRepresents(graph) == null)\r
+                               return null;\r
+                       return SourceLinkUtil.getValueString(propertyVar.getValue(graph));\r
+               } catch (Exception e) {\r
+                       return null;\r
+               }\r
+       }\r
+       \r
+       \r
+       \r
+\r
+       @Override\r
+       public String toString() {\r
+               return variableRef;\r
+       }\r
+       \r
+       @RelatedGetValue(DocumentLink.URIs.EvaluatorTree_HasValue)\r
+       @Override\r
+       public String getValue() {\r
+               return variableRef;\r
+       }\r
+       \r
+       \r
+       @Override\r
+       public String setValue(String value) {\r
+               if (value.length() == 0)\r
+                       return "Variable reference cannot be empty";\r
+               variableRef = value;\r
+               return null;\r
+       }\r
+       \r
+       @RelatedSetValue(DocumentLink.URIs.EvaluatorTree_HasValue)\r
+       public void _setValue(String value) {\r
+               variableRef = value;\r
+       }\r
+       \r
+       \r
+       @Override\r
+       public EvaluatorItem copy() {\r
+               return new Variable(variableRef);\r
+       }\r
+       \r
+       @Override\r
+       public ImageDescriptor getImage() {\r
+               return Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/database_go.png");\r
+       }\r
+       \r
+\r
+}\r