comparison flys-artifacts/src/main/java/de/intevation/flys/exports/FlowVelocityGenerator.java @ 5549:38acd82feeac

Added bed quality facets to flow velocity datacage. * Added facets in artifact config. * Added datacage config for bedquality facets. * Added ouput methods for bedquality facets to generator.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 04 Apr 2013 10:55:46 +0200
parents a3dc382bc1ca
children
comparison
equal deleted inserted replaced
5544:12f4d088f088 5549:38acd82feeac
14 import de.intevation.flys.artifacts.FLYSArtifact; 14 import de.intevation.flys.artifacts.FLYSArtifact;
15 15
16 import de.intevation.flys.artifacts.access.FlowVelocityAccess; 16 import de.intevation.flys.artifacts.access.FlowVelocityAccess;
17 import de.intevation.flys.artifacts.model.FacetTypes; 17 import de.intevation.flys.artifacts.model.FacetTypes;
18 import de.intevation.flys.artifacts.model.FlowVelocityData; 18 import de.intevation.flys.artifacts.model.FlowVelocityData;
19 import de.intevation.flys.artifacts.model.minfo.BedDiameterResult;
20 import de.intevation.flys.artifacts.model.minfo.BedloadDiameterResult;
19 import de.intevation.flys.model.FlowVelocityMeasurementValue; 21 import de.intevation.flys.model.FlowVelocityMeasurementValue;
20 22
21 import de.intevation.flys.jfree.Bounds; 23 import de.intevation.flys.jfree.Bounds;
22 import de.intevation.flys.jfree.DoubleBounds; 24 import de.intevation.flys.jfree.DoubleBounds;
23 import de.intevation.flys.jfree.FLYSAnnotation; 25 import de.intevation.flys.jfree.FLYSAnnotation;
36 implements FacetTypes 38 implements FacetTypes
37 { 39 {
38 public enum YAXIS { 40 public enum YAXIS {
39 V(0), 41 V(0),
40 T(1), 42 T(1),
41 Q(2); 43 Q(2),
44 D(3);
42 /* TODO Q and Density will come as 4th and 3rd axis. */ 45 /* TODO Q and Density will come as 4th and 3rd axis. */
43 protected int idx; 46 protected int idx;
44 private YAXIS(int c) { 47 private YAXIS(int c) {
45 idx = c; 48 idx = c;
46 } 49 }
83 public static final String I18N_2YAXIS_LABEL = 86 public static final String I18N_2YAXIS_LABEL =
84 "chart.flow_velocity.section.yaxis.second.label"; 87 "chart.flow_velocity.section.yaxis.second.label";
85 88
86 public static final String I18N_3YAXIS_LABEL = 89 public static final String I18N_3YAXIS_LABEL =
87 "chart.flow_velocity.section.yaxis.third.label"; 90 "chart.flow_velocity.section.yaxis.third.label";
91 public static final String I18N_4YAXIS_LABEL = "chart.bedquality.yaxis.label.diameter";
88 92
89 public static final String I18N_CHART_TITLE_DEFAULT = "Geschwindigkeit- und Schubspannung"; 93 public static final String I18N_CHART_TITLE_DEFAULT = "Geschwindigkeit- und Schubspannung";
90 public static final String I18N_XAXIS_LABEL_DEFAULT = "km"; 94 public static final String I18N_XAXIS_LABEL_DEFAULT = "km";
91 public static final String I18N_YAXIS_LABEL_DEFAULT = "Geschwindigkeit v [m/s]"; 95 public static final String I18N_YAXIS_LABEL_DEFAULT = "Geschwindigkeit v [m/s]";
92 public static final String I18N_2YAXIS_LABEL_DEFAULT = "Schubspannung Tau [N]"; 96 public static final String I18N_2YAXIS_LABEL_DEFAULT = "Schubspannung Tau [N]";
93 public static final String I18N_3YAXIS_LABEL_DEFAULT = "Q [m³/s]"; 97 public static final String I18N_3YAXIS_LABEL_DEFAULT = "Q [m³/s]";
94 98 public static final String I18N_4YAXIS_LABEL_DEFAULT = "Durchmesser [mm]";
95 99
96 @Override 100 @Override
97 protected YAxisWalker getYAxisWalker() { 101 protected YAxisWalker getYAxisWalker() {
98 return new YAxisWalker() { 102 return new YAxisWalker() {
99 @Override 103 @Override
150 label = getTAxisLabel(); 154 label = getTAxisLabel();
151 } 155 }
152 else if (index == YAXIS.Q.idx) { 156 else if (index == YAXIS.Q.idx) {
153 label = getQAxisLabel(); 157 label = getQAxisLabel();
154 } 158 }
159 else if (index == YAXIS.D.idx) {
160 label = getDAxisLabel();
161 }
155 162
156 return label; 163 return label;
157 } 164 }
158 165
159 166
177 */ 184 */
178 protected String getTAxisLabel() { 185 protected String getTAxisLabel() {
179 return msg(I18N_2YAXIS_LABEL, I18N_2YAXIS_LABEL_DEFAULT); 186 return msg(I18N_2YAXIS_LABEL, I18N_2YAXIS_LABEL_DEFAULT);
180 } 187 }
181 188
189 /**
190 * Get internationalized label for the y axis.
191 */
192 protected String getDAxisLabel() {
193 return msg(I18N_4YAXIS_LABEL, I18N_4YAXIS_LABEL_DEFAULT);
194 }
182 195
183 /** 196 /**
184 * Produce output. 197 * Produce output.
185 * @param artifactAndFacet current facet. 198 * @param artifactAndFacet current facet.
186 * @param attr theme for facet 199 * @param attr theme for facet
316 artifactAndFacet.getData(context), 329 artifactAndFacet.getData(context),
317 artifactAndFacet, 330 artifactAndFacet,
318 attr, 331 attr,
319 visible); 332 visible);
320 } 333 }
334 else if (name.equals(BED_QUALITY_BED_DIAMETER_SUBLAYER)) {
335 doBedQualitySubLayerOut(
336 (BedDiameterResult)artifactAndFacet.getData(context),
337 artifactAndFacet,
338 attr,
339 visible);
340 }
341 else if (name.equals(BED_QUALITY_BED_DIAMETER_TOPLAYER)) {
342 doBedQualityTopLayerOut(
343 (BedDiameterResult)artifactAndFacet.getData(context),
344 artifactAndFacet,
345 attr,
346 visible);
347 }
348 else if (name.equals(BED_QUALITY_BEDLOAD_DIAMETER)) {
349 doBedQualityLoadDiameter(
350 (BedloadDiameterResult)artifactAndFacet.getData(context),
351 artifactAndFacet,
352 attr,
353 visible);
354 }
321 else { 355 else {
322 logger.warn("Unknown facet name: " + name); 356 logger.warn("Unknown facet name: " + name);
323 return; 357 return;
324 } 358 }
359 }
360
361
362 private void doBedQualityLoadDiameter(
363 BedloadDiameterResult data,
364 ArtifactAndFacet aandf,
365 Document attr,
366 boolean visible) {
367 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), attr);
368 StyledSeriesBuilder.addPoints(series, data.getDiameterData(), true);
369
370 addAxisSeries(series, YAXIS.D.idx, visible);
371 }
372
373
374 private void doBedQualityTopLayerOut(
375 BedDiameterResult data,
376 ArtifactAndFacet aandf,
377 Document attr,
378 boolean visible) {
379 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), attr);
380 StyledSeriesBuilder.addPoints(series, data.getDiameterSubData(), true);
381 addAxisSeries(series, YAXIS.D.idx, visible);
382 }
383
384
385 private void doBedQualitySubLayerOut(
386 BedDiameterResult data,
387 ArtifactAndFacet aandf,
388 Document attr,
389 boolean visible
390 ) {
391 logger.debug("Do beddiametersubout");
392 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), attr);
393 StyledSeriesBuilder.addPoints(series, data.getDiameterSubData(), true);
394 addAxisSeries(series, YAXIS.D.idx, visible);
325 } 395 }
326 396
327 397
328 /** 398 /**
329 * Process the output for W facets in a longitudinal section curve. 399 * Process the output for W facets in a longitudinal section curve.

http://dive4elements.wald.intevation.org