]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.document.linking.report.evaluator;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 import java.util.Map;\r
6 \r
7 import org.eclipse.jface.resource.ImageDescriptor;\r
8 import org.simantics.db.ReadGraph;\r
9 import org.simantics.db.exception.DatabaseException;\r
10 import org.simantics.db.layer0.variable.Variable;\r
11 import org.simantics.document.linking.Activator;\r
12 import org.simantics.document.linking.ontology.DocumentLink;\r
13 import org.simantics.document.linking.report.DocumentLine;\r
14 import org.simantics.objmap.graph.annotations.OrderedSetType;\r
15 \r
16 /**\r
17  * Combines child node contents to separate lines.\r
18  * \r
19  * If all children return null, the return value is null.\r
20  * \r
21  * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
22  *\r
23  */\r
24 @OrderedSetType(DocumentLink.URIs.EvaluatorTree_Lines)\r
25 public class Lines extends EvaluatorNode {\r
26 \r
27         \r
28         @Override\r
29         public String getValue(ReadGraph graph, Variable variable, Map<Object, Object> context) throws DatabaseException {\r
30                 String s = "";\r
31                 for (int i = 0 ; i < children.size(); i++) {\r
32                         String s2 = children.get(i).getValue(graph, variable, context);\r
33                         if (s2 != null) {\r
34                                 s+= s2;\r
35                                 if (i < children.size()-1)\r
36                                         s+=System.getProperty("line.separator");\r
37                         }\r
38                 }\r
39                 if (s.length() == 0)\r
40                         return null;\r
41                 return s;\r
42         }\r
43         \r
44 \r
45         @Override\r
46         public String toString() {\r
47                 return "Lines" ;\r
48         }\r
49         \r
50         \r
51         \r
52         @Override\r
53         public List<DocumentLine> getLines(ReadGraph graph,     Variable variable, Map<Object, Object> context) throws DatabaseException {\r
54                 List<DocumentLine> result = new ArrayList<DocumentLine>();\r
55                 for (int i = 0 ; i < children.size(); i++) {\r
56                         result.addAll(children.get(i).getLines(graph, variable, context));\r
57                 }\r
58                 return result;\r
59         }\r
60         \r
61         @Override\r
62         public EvaluatorItem copy() {\r
63                 Lines lines = new Lines();\r
64                 copyChildren(lines);\r
65                 return lines;\r
66         }\r
67         \r
68         @Override\r
69         public ImageDescriptor getImage() {\r
70                 return Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/text_linespacing.png");\r
71         }\r
72 \r
73 }\r