comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/states/minfo/DifferenceSelect.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/minfo/DifferenceSelect.java@a3dc382bc1ca
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts.states.minfo;
2
3 import java.util.List;
4
5 import org.w3c.dom.Element;
6
7 import org.dive4elements.artifactdatabase.state.Facet;
8 import org.dive4elements.artifacts.Artifact;
9 import org.dive4elements.artifacts.CallContext;
10 import org.dive4elements.artifacts.common.utils.XMLUtils;
11 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
12 import org.dive4elements.river.artifacts.FLYSArtifact;
13 import org.dive4elements.river.artifacts.access.BedHeightAccess;
14 import org.dive4elements.river.artifacts.states.DefaultState;
15 import org.dive4elements.river.utils.StringUtil;
16
17 /**
18 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
19 */
20 public class DifferenceSelect extends DefaultState {
21
22 /**
23 * The default constructor that initializes an empty State object.
24 */
25 public DifferenceSelect() {
26 }
27 /**
28 * Specify to display nothing (this is kind of a "final" state).
29 */
30 @Override
31 protected String getUIProvider() {
32 return "bedheights_twin_panel";
33 }
34
35 /**
36 * Overridden to do nothing.
37 */
38 @Override
39 public Object computeAdvance(
40 FLYSArtifact artifact,
41 String hash,
42 CallContext context,
43 List<Facet> facets,
44 Object old
45 ) {
46 //Get data and do stuff, do not calculate
47 return "";
48 }
49
50 @Override
51 protected Element[] createItems(
52 XMLUtils.ElementCreator ec,
53 Artifact artifact,
54 String name,
55 CallContext context)
56 {
57 Element[] elements = new Element[1];
58 BedHeightAccess bha = new BedHeightAccess((FLYSArtifact)artifact, context);
59 String time = bha.getYearEpoch();
60 elements[0] = createItem(
61 ec,
62 new String[] {"year-epoch", time});
63
64 return elements;
65 }
66
67 /**
68 * Creates the data element used for the static part of DESCRIBE document.
69 */
70 @Override
71 protected Element createStaticData(
72 FLYSArtifact flys,
73 ElementCreator creator,
74 CallContext cc,
75 String name,
76 String value,
77 String type
78 ) {
79 Element dataElement = creator.create("data");
80 creator.addAttr(dataElement, "name", name, true);
81 creator.addAttr(dataElement, "type", type, true);
82
83 Element itemElement = creator.create("item");
84 creator.addAttr(itemElement, "value", value, true);
85
86 String[] labels = getLabels(cc, value);
87
88 creator.addAttr(
89 itemElement,
90 "label",
91 labels[0],
92 true);
93 dataElement.appendChild(itemElement);
94
95 return dataElement;
96 }
97
98
99 /**
100 * Get name to display for selected watelerlevels (for example "Q=123")
101 * from the CalculationResult.
102 */
103 public static String[] getLabels(CallContext cc, String value) {
104 String[] recommendations = value.split("#");
105 String displayString = "";
106
107 // Walk over all selected recommendations and create label
108 for (int i = 0; i < recommendations.length; i+=2) {
109 String[] minuendParts = StringUtil
110 .unbracket(recommendations[i+0])
111 .split(";");
112 if(minuendParts.length >= 4) {
113 displayString += "(" + minuendParts[3];
114 }
115 else {
116 displayString += "([error]";
117 }
118
119 displayString += " - ";
120
121 String[] subtrahendParts = StringUtil
122 .unbracket(recommendations[i+1])
123 .split(";");
124 if(subtrahendParts.length >= 4) {
125 displayString += subtrahendParts[3] + ") ";
126 }
127 else {
128 displayString += "[error])";
129 }
130 }
131
132 return new String[] { displayString };
133 }
134 }
135 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org