]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Lines.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / evaluator / Lines.java
diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Lines.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/evaluator/Lines.java
new file mode 100644 (file)
index 0000000..023a202
--- /dev/null
@@ -0,0 +1,73 @@
+package org.simantics.document.linking.report.evaluator;\r
+\r
+import java.util.ArrayList;\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.Activator;\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
+ * Combines child node contents to separate lines.\r
+ * \r
+ * If all children return null, the return value is null.\r
+ * \r
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
+ *\r
+ */\r
+@OrderedSetType(DocumentLink.URIs.EvaluatorTree_Lines)\r
+public class Lines extends EvaluatorNode {\r
+\r
+       \r
+       @Override\r
+       public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException {\r
+               String s = "";\r
+               for (int i = 0 ; i < children.size(); i++) {\r
+                       String s2 = children.get(i).getValue(graph, variable, context);\r
+                       if (s2 != null) {\r
+                               s+= s2;\r
+                               if (i < children.size()-1)\r
+                                       s+=System.getProperty("line.separator");\r
+                       }\r
+               }\r
+               if (s.length() == 0)\r
+                       return null;\r
+               return s;\r
+       }\r
+       \r
+\r
+       @Override\r
+       public String toString() {\r
+               return "Lines" ;\r
+       }\r
+       \r
+       \r
+       \r
+       @Override\r
+       public List<DocumentLine> getLines(ReadGraph graph,     Variable variable, Map<Object, Object> context) throws DatabaseException {\r
+               List<DocumentLine> result = new ArrayList<DocumentLine>();\r
+               for (int i = 0 ; i < children.size(); i++) {\r
+                       result.addAll(children.get(i).getLines(graph, variable, context));\r
+               }\r
+               return result;\r
+       }\r
+       \r
+       @Override\r
+       public EvaluatorItem copy() {\r
+               Lines lines = new Lines();\r
+               copyChildren(lines);\r
+               return lines;\r
+       }\r
+       \r
+       @Override\r
+       public ImageDescriptor getImage() {\r
+               return Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/text_linespacing.png");\r
+       }\r
+\r
+}\r