]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/EvaluatorRoot.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / evaluator / EvaluatorRoot.java
diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/EvaluatorRoot.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/EvaluatorRoot.java
new file mode 100644 (file)
index 0000000..7538edf
--- /dev/null
@@ -0,0 +1,88 @@
+package org.simantics.document.linking.report.evaluator;\r
+\r
+import java.util.Collections;\r
+import java.util.List;\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.db.layer0.variable.Variable;\r
+import org.simantics.document.linking.ontology.DocumentLink;\r
+import org.simantics.document.linking.report.DocumentLine;\r
+import org.simantics.objmap.graph.annotations.OrderedSetType;\r
+\r
+\r
+@OrderedSetType(DocumentLink.URIs.EvaluatorTree_Root)\r
+public class EvaluatorRoot extends EvaluatorNode{\r
+       \r
+       boolean supportMultiline = true;\r
+       boolean supportStyles = false;\r
+       \r
+       public boolean isSupportMultiline() {\r
+               return supportMultiline;\r
+       }\r
+       \r
+       public void setSupportMultiline(boolean multilineSupport) {\r
+               this.supportMultiline = multilineSupport;\r
+       }\r
+       \r
+       public void setSupportStyles(boolean allowStyles) {\r
+               this.supportStyles = allowStyles;\r
+       }\r
+       \r
+       public boolean isSupportStyles() {\r
+               return supportStyles;\r
+       }\r
+       \r
+       @Override\r
+       public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException {\r
+               if (children.size() > 0 )\r
+                       return children.get(0).getValue(graph, variable, context);\r
+               return null;\r
+       }\r
+       \r
+       @Override\r
+       public List<DocumentLine> getLines(ReadGraph graph,     Variable variable, Map<Object, Object> context) throws DatabaseException {\r
+               if (children.size() > 0 )\r
+                       return children.get(0).getLines(graph, variable, context);\r
+               return null;\r
+       }\r
+       \r
+       @Override\r
+       public List<Class<? extends EvaluatorItem>> getPossibleChildren(boolean add) {\r
+               if (add && children.size() > 0)\r
+                       return Collections.emptyList();\r
+               List<Class<? extends EvaluatorItem>> classes = super.getPossibleChildren(add);\r
+               if (supportMultiline) {\r
+                       if (!(children.size() == 1 && children.get(0) instanceof Lines))\r
+                               classes.add(Lines.class);\r
+               }\r
+               return classes;\r
+       }\r
+       \r
+       @Override\r
+       public String toString() {\r
+               return "root";\r
+       }\r
+       \r
+       @Override\r
+       public EvaluatorRoot getRoot() {\r
+               return this;\r
+       }\r
+       \r
+       @Override\r
+       public EvaluatorItem copy() {\r
+               EvaluatorRoot root = new EvaluatorRoot();\r
+               root.supportMultiline = supportMultiline;\r
+               root.supportStyles = supportStyles;\r
+               copyChildren(root);\r
+               return root;\r
+       }\r
+       \r
+       @Override\r
+       public ImageDescriptor getImage() {\r
+               return null;\r
+       }\r
+\r
+}\r