--- /dev/null
+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