Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/DiagramAttributes.java @ 7061:4f6b3ba542de generator-refactoring
Added domain axis title to diagram attributes.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 20 Sep 2013 12:28:15 +0200 |
parents | 78ded33f5f5b |
children | 4310c612a986 |
rev | line source |
---|---|
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
3 * |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
7 */ |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
8 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
10 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
12 import java.util.List; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
13 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
14 import org.w3c.dom.Element; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
15 import org.w3c.dom.NodeList; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
16 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.river.exports.process.Processor; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
18 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
19 import org.apache.log4j.Logger; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
20 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
21 import org.dive4elements.artifacts.CallContext; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
22 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
23 import org.dive4elements.river.artifacts.resources.Resources; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
24 import org.dive4elements.river.artifacts.D4EArtifact; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
25 |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
26 public class DiagramAttributes |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
27 { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
28 private static Logger log = Logger.getLogger(DiagramAttributes.class); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
29 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
30 public static class AxisAttributes { |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
31 private String name; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
32 private boolean isLeftAlign; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
33 private boolean forceAlign; |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
34 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
35 public AxisAttributes() { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
36 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
37 |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
38 public AxisAttributes( |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
39 String name, |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
40 boolean isLeftAlign, |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
41 boolean forceAlign |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
42 ) { |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
43 this.name = name; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
44 this.isLeftAlign = isLeftAlign; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
45 this.forceAlign = forceAlign; |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
46 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
47 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
48 public String getName() { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
49 return name; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
50 } |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
51 |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
52 public boolean isLeftAlign() { |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
53 return isLeftAlign; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
54 } |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
55 |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
56 public boolean forceAlign() { |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
57 return forceAlign; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
58 } |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
59 } // class AxisAttributes |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
60 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
61 public static class Argument { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
62 private String expression; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
63 private String type; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
64 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
65 public Argument() { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
66 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
67 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
68 public Argument(String expression, String type) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
69 this.expression = expression; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
70 this.type = type; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
71 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
72 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
73 public Object evaluate(D4EArtifact artifact, CallContext context) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
74 if (expression.startsWith("artifact.")) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
75 String value = artifact.getDataAsString( |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
76 expression.substring("artifact.".length())); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
77 return convert(value); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
78 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
79 if (expression.startsWith("context.")) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
80 return context.getContextValue( |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
81 expression.substring("context.".length())); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
82 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
83 return expression; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
84 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
85 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
86 private Object convert(String value) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
87 if (value == null || type == null) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
88 return value; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
89 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
90 if ("double".equals(type)) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
91 return Double.valueOf(value); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
92 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
93 if ("int".equals(type)) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
94 return Integer.valueOf(value); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
95 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
96 // TODO: more types |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
97 return value; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
98 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
99 } // class Argument |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
100 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
101 public static class Title { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
102 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
103 private String key; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
104 private String def; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
105 private List<Argument> arguments; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
106 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
107 public Title() { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
108 arguments = new ArrayList<Argument>(5); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
109 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
110 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
111 public Title(String key) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
112 this(key, key); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
113 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
114 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
115 public Title(String key, String def) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
116 this(); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
117 this.key = key; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
118 this.def = def; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
119 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
120 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
121 public String getKey() { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
122 return key; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
123 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
124 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
125 public void addArgument(Argument argument) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
126 arguments.add(argument); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
127 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
128 |
7060
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
129 public String evaluate(D4EArtifact artifact, CallContext context) { |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
130 if (key == null || key.isEmpty()) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
131 return def; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
132 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
133 Object [] args = new Object[arguments.size()]; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
134 for (int i = 0; i < args.length; ++i) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
135 args[i] = arguments.get(i).evaluate(artifact, context); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
136 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
137 return Resources.getMsg(context.getMeta(), key, def, args); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
138 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
139 } // class Title |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
140 |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
141 private List<AxisAttributes> axesAttrs; |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
142 private List<Processor> processors; |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
143 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
144 private Title title; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
145 private Title subtitle; |
7061
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
146 private Title domainAxisTitle; |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
147 |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
148 public DiagramAttributes() { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
149 axesAttrs = new ArrayList<AxisAttributes>(5); |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
150 processors = new ArrayList<Processor>(5); |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
151 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
152 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
153 public DiagramAttributes(Element config) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
154 this(); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
155 parseAxis(config); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
156 parseProcessors(config); |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
157 parseTitle(config); |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
158 parseSubtitle(config); |
7061
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
159 parseDomainAxisTitle(config); |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
160 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
161 |
7060
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
162 public List<AxisAttributes> getAxesAttributes() { |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
163 return axesAttrs; |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
164 } |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
165 |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
166 private void parseAxis(Element config) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
167 NodeList axisNodes = config.getElementsByTagName("axis"); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
168 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
169 for (int i = 0, N = axisNodes.getLength(); i < N; ++i) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
170 Element axisElement = (Element)axisNodes.item(i); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
171 String name = axisElement.getAttribute("name").trim(); |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
172 String align = axisElement.getAttribute("align").trim(); |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
173 if (name.isEmpty()) { |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
174 continue; |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
175 } |
7049
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
176 boolean isleftAlign = false; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
177 boolean forceAlign = false; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
178 for (String part: align.split("[\\s,]")) { |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
179 part = part.trim(); |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
180 if ("left" .equals(part)) isleftAlign = true; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
181 else if ("right".equals(part)) isleftAlign = false; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
182 else if ("force".equals(part)) forceAlign = true; |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
183 } |
165ea04b1545
Added alignment rules for diagrams.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7048
diff
changeset
|
184 axesAttrs.add(new AxisAttributes(name, isleftAlign, forceAlign)); |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
185 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
186 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
187 |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
188 public List<Processor> getProcessors() { |
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
189 return processors; |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
190 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
191 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
192 public Title getTitle() { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
193 return title; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
194 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
195 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
196 public Title getSubtitle() { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
197 return subtitle; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
198 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
199 |
7061
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
200 public Title getDomainAxisTitle() { |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
201 return domainAxisTitle; |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
202 } |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
203 |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
204 private void parseProcessors(Element config) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
205 NodeList processorNodes = config.getElementsByTagName("processor"); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
206 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
207 for (int i = 0, N = processorNodes.getLength(); i < N; ++i) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
208 Element processorElement = (Element)processorNodes.item(i); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
209 String className = processorElement.getAttribute("class").trim(); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
210 String axisName = processorElement.getAttribute("axis").trim(); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
211 if (className.isEmpty() || axisName.isEmpty()) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
212 continue; |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
213 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
214 |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
215 try { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
216 Processor processor = |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
217 (Processor)Class.forName(className).newInstance(); |
7059
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
218 processor.setAxisName(axisName); |
f9d5020af0af
Remove AxisProcessor "glue" class and extend Processor interface
Andre Heinecke <aheinecke@intevation.de>
parents:
7049
diff
changeset
|
219 processors.add(processor); |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
220 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
221 catch (ClassNotFoundException cnfe) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
222 log.error(cnfe, cnfe); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
223 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
224 catch (InstantiationException ie) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
225 log.error(ie, ie); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
226 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
227 catch (IllegalAccessException ia) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
228 log.error(ia, ia); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
229 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
230 catch (ClassCastException cce) { |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
231 log.error(cce, cce); |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
232 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
233 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
234 } |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
235 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
236 private void parseTitle(Element config) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
237 title = extractTitle(config, "title"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
238 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
239 |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
240 private void parseSubtitle(Element config) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
241 subtitle = extractTitle(config, "subtitle"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
242 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
243 |
7061
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
244 private void parseDomainAxisTitle(Element config) { |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
245 domainAxisTitle = extractTitle(config, "domain-axis"); |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
246 } |
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
247 |
7048
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
248 private static Title extractTitle(Element config, String tagName) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
249 NodeList titleNodes = config.getElementsByTagName(tagName); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
250 if (titleNodes.getLength() < 1) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
251 return null; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
252 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
253 Element titleElement = (Element)titleNodes.item(0); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
254 String key = titleElement.getAttribute("key"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
255 String def = titleElement.getAttribute("default"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
256 Title title = new Title(key, def); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
257 NodeList argumentNodes = titleElement.getElementsByTagName("arg"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
258 for (int i = 0, N = argumentNodes.getLength(); i < N; ++i) { |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
259 Element argumentElement = (Element)argumentNodes.item(i); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
260 String expression = argumentElement.getAttribute("expr"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
261 String type = argumentElement.getAttribute("type"); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
262 title.addArgument(new Argument(expression, type)); |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
263 } |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
264 return title; |
a43137dfdcac
Simple interpolation logic for diagram titles and subtitles.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7042
diff
changeset
|
265 } |
7060
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
266 |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
267 public int getAxisIndex(String axisName) { |
7061
4f6b3ba542de
Added domain axis title to diagram attributes.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7060
diff
changeset
|
268 for (int i = axesAttrs.size()-1; i >= 0; --i) { |
7060
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
269 if (axesAttrs.get(i).getName().equals(axisName)) { |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
270 return i; |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
271 } |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
272 } |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
273 return -1; |
78ded33f5f5b
Some more accessors and typo fix
Andre Heinecke <aheinecke@intevation.de>
parents:
7059
diff
changeset
|
274 } |
7040
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
275 } |
f3cdc620b666
Added first version of diagram attribute parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
276 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |