Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WaterlevelState.java @ 1664:71d5abde92f2
Bugfix: #176 and #349 Create proper titles for W and Q waterlevel facets.
flys-artifacts/trunk@2869 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 30 Sep 2011 08:02:21 +0000 |
parents | fbe18ad4caff |
children | 0ebce697adcc |
comparison
equal
deleted
inserted
replaced
1663:4fbd43061315 | 1664:71d5abde92f2 |
---|---|
1 package de.intevation.flys.artifacts.states; | 1 package de.intevation.flys.artifacts.states; |
2 | 2 |
3 import java.text.NumberFormat; | |
3 import java.util.List; | 4 import java.util.List; |
4 | 5 |
5 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
6 | 7 |
7 import de.intevation.artifacts.CallContext; | 8 import de.intevation.artifacts.CallContext; |
8 | 9 |
9 import de.intevation.artifactdatabase.state.Facet; | 10 import de.intevation.artifactdatabase.state.Facet; |
10 | 11 |
11 import de.intevation.flys.artifacts.FLYSArtifact; | 12 import de.intevation.flys.artifacts.FLYSArtifact; |
12 import de.intevation.flys.artifacts.WINFOArtifact; | 13 import de.intevation.flys.artifacts.WINFOArtifact; |
14 import de.intevation.flys.artifacts.model.DataFacet; | |
15 import de.intevation.flys.artifacts.model.CrossSectionFacet; | |
16 import de.intevation.flys.artifacts.model.CrossSectionWaterLineFacet; | |
17 import de.intevation.flys.artifacts.model.CalculationResult; | |
13 import de.intevation.flys.artifacts.model.FacetTypes; | 18 import de.intevation.flys.artifacts.model.FacetTypes; |
14 import de.intevation.flys.artifacts.model.ReportFacet; | 19 import de.intevation.flys.artifacts.model.ReportFacet; |
15 import de.intevation.flys.artifacts.model.WaterlevelFacet; | 20 import de.intevation.flys.artifacts.model.WaterlevelFacet; |
16 import de.intevation.flys.artifacts.model.WQKms; | 21 import de.intevation.flys.artifacts.model.WQKms; |
17 | 22 import de.intevation.flys.utils.Formatter; |
18 import de.intevation.flys.artifacts.model.DataFacet; | |
19 import de.intevation.flys.artifacts.model.CrossSectionFacet; | |
20 import de.intevation.flys.artifacts.model.CrossSectionWaterLineFacet; | |
21 import de.intevation.flys.artifacts.model.CalculationResult; | |
22 | 23 |
23 | 24 |
24 public class WaterlevelState | 25 public class WaterlevelState |
25 extends DefaultState | 26 extends DefaultState |
26 implements FacetTypes | 27 implements FacetTypes |
35 } | 36 } |
36 | 37 |
37 | 38 |
38 protected Object compute( | 39 protected Object compute( |
39 WINFOArtifact winfo, | 40 WINFOArtifact winfo, |
41 CallContext cc, | |
40 String hash, | 42 String hash, |
41 List<Facet> facets, | 43 List<Facet> facets, |
42 Object old | 44 Object old |
43 ) { | 45 ) { |
44 String id = getID(); | 46 String id = getID(); |
52 } | 54 } |
53 | 55 |
54 WQKms [] wqkms = (WQKms [])res.getData(); | 56 WQKms [] wqkms = (WQKms [])res.getData(); |
55 | 57 |
56 for (int i = 0; i < wqkms.length; i++) { | 58 for (int i = 0; i < wqkms.length; i++) { |
57 String nameW = null; | 59 String name = wqkms[i].getName(); |
58 String nameQ = null; | 60 boolean isQ = winfo.isQ(); |
59 | 61 |
60 if (winfo.isQ()) { | 62 String nameW = createWTitle(cc, name, isQ); |
61 nameQ = wqkms[i].getName(); | 63 String nameQ = createQTitle(cc, name, isQ); |
62 nameW = "W(" + nameQ + ")"; | |
63 } | |
64 else { | |
65 nameW = wqkms[i].getName(); | |
66 nameQ = "Q(" + nameQ + ")"; | |
67 } | |
68 | 64 |
69 logger.debug("Create facet: " + nameW); | 65 logger.debug("Create facet: " + nameW); |
70 logger.debug("Create facet: " + nameQ); | 66 logger.debug("Create facet: " + nameQ); |
71 | 67 |
72 Facet w = new WaterlevelFacet( | 68 Facet w = new WaterlevelFacet( |
98 facets.add(new CrossSectionWaterLineFacet("Q=" + winfo.getDataAsString("wq_single"))); | 94 facets.add(new CrossSectionWaterLineFacet("Q=" + winfo.getDataAsString("wq_single"))); |
99 return res; | 95 return res; |
100 } | 96 } |
101 | 97 |
102 | 98 |
99 public static String createWTitle(CallContext cc, String name, boolean isQ) { | |
100 String[] parts = name.split("="); | |
101 | |
102 NumberFormat nf = Formatter.getWaterlevelW(cc); | |
103 | |
104 double v; | |
105 | |
106 try { | |
107 v = Double.valueOf(parts[1]); | |
108 } | |
109 catch (NumberFormatException nfe) { | |
110 logger.warn("Cannot parse Double of: '" + parts[1] + "'"); | |
111 return name; | |
112 } | |
113 | |
114 String prefix = null; | |
115 | |
116 if (isQ) { | |
117 prefix = "Q="; | |
118 } | |
119 | |
120 return prefix == null | |
121 ? "W(" + nf.format(v) + ")" | |
122 : "W(" + prefix + nf.format(v) + ")"; | |
123 } | |
124 | |
125 | |
126 public static String createQTitle(CallContext cc, String name, boolean isQ) { | |
127 String[] parts = name.split("="); | |
128 | |
129 NumberFormat nf = Formatter.getWaterlevelQ(cc); | |
130 | |
131 double v; | |
132 | |
133 try { | |
134 v = Double.valueOf(parts[1]); | |
135 } | |
136 catch (NumberFormatException nfe) { | |
137 logger.warn("Cannot parse Double of: '" + parts[1] + "'"); | |
138 return name; | |
139 } | |
140 | |
141 String prefix = null; | |
142 | |
143 if (!isQ) { | |
144 prefix = "W="; | |
145 } | |
146 | |
147 return prefix == null | |
148 ? "Q(" + nf.format(v) + ")" | |
149 : "Q(" + prefix + nf.format(v) + ")"; | |
150 } | |
151 | |
152 | |
103 /** | 153 /** |
104 * @param context Ignored. | 154 * @param context Ignored. |
105 */ | 155 */ |
106 @Override | 156 @Override |
107 public Object computeFeed( | 157 public Object computeFeed( |
109 String hash, | 159 String hash, |
110 CallContext context, | 160 CallContext context, |
111 List<Facet> facets, | 161 List<Facet> facets, |
112 Object old | 162 Object old |
113 ) { | 163 ) { |
114 return compute((WINFOArtifact) artifact, hash, facets, old); | 164 return compute((WINFOArtifact) artifact, context, hash, facets, old); |
115 | 165 |
116 } | 166 } |
117 | 167 |
118 | 168 |
119 /** | 169 /** |
125 String hash, | 175 String hash, |
126 CallContext context, | 176 CallContext context, |
127 List<Facet> facets, | 177 List<Facet> facets, |
128 Object old | 178 Object old |
129 ) { | 179 ) { |
130 return compute((WINFOArtifact) artifact, hash, facets, old); | 180 return compute((WINFOArtifact) artifact, context, hash, facets, old); |
131 } | 181 } |
132 } | 182 } |
133 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 183 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |