annotate flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionGenerator.java @ 672:bc1e4878d7e3

Corrected axes/datasets mappings. flys-artifacts/trunk@2094 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 09 Jun 2011 10:31:22 +0000
parents c8bb38115290
children 45cd58a2a2bb
rev   line source
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.exports;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
420
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
3 import java.awt.Color;
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
4
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.apache.log4j.Logger;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
420
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
7 import org.jfree.chart.JFreeChart;
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
8 import org.jfree.chart.plot.XYPlot;
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
9 import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import org.jfree.data.xy.XYSeries;
420
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
11 import org.jfree.data.xy.XYSeriesCollection;
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.w3c.dom.Document;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.artifacts.Artifact;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import de.intevation.flys.artifacts.WINFOArtifact;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.artifacts.model.WQCKms;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.artifacts.model.WQKms;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 /**
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 * An OutGenerator that generates discharge longitudinal section curves.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24 *
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 */
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 public class DischargeLongitudinalSectionGenerator
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 extends LongitudinalSectionGenerator
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 private static Logger logger =
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 Logger.getLogger(DischargeLongitudinalSectionGenerator.class);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 /** The facet for Ws.*/
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public static final String FACET_W = "discharge_longitudinal_section.w";
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 /** The facet for Qs.*/
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 public static final String FACET_Q = "discharge_longitudinal_section.q";
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
420
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
41 /** The storage for the corrected W series to be drawn in this chart.*/
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
42 protected XYSeriesCollection cw;
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
43
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
44
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
45 public DischargeLongitudinalSectionGenerator() {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
46 super();
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
47
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
48 this.cw = new XYSeriesCollection();
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
49 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
50
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
51
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
52 public void addDatasets(JFreeChart chart) {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
53 super.addDatasets(chart);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
54
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
55 XYPlot plot = (XYPlot) chart.getPlot();
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
56
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
57 plot.setDataset(2, cw);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
58 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
59
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
60
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
61 protected void adjustPlot(XYPlot plot) {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
62 super.adjustPlot(plot);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
63
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
64 // TODO REMOVE THIS CODE, IF WE HAVE INTRODUCED THEMES!
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
65 XYLineAndShapeRenderer rw = (XYLineAndShapeRenderer)
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
66 plot.getRendererForDataset(w);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
67
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
68 XYLineAndShapeRenderer rcw = null;
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
69 try {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
70 rcw = (XYLineAndShapeRenderer) rw.clone();
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
71 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
72 catch (Exception e) {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
73 logger.error(e, e);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
74 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
75
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
76 int cwNum = cw.getSeriesCount();
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
77
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
78 for (int i = 0; i < cwNum; i++) {
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
79 rcw.setSeriesPaint(i, Color.RED);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
80 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
81
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
82 plot.setRenderer(2, rcw);
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
83 }
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
84
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
85
672
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
86 protected void adjustAxes(XYPlot plot) {
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
87 super.adjustAxes(plot);
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
88
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
89 plot.mapDatasetToRangeAxis(2, 1);
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
90 }
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
91
bc1e4878d7e3 Corrected axes/datasets mappings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 450
diff changeset
92
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 @Override
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 public void doOut(Artifact artifact, String facet, Document attr) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 logger.debug("DischargeLongitudinalSectionGenerator.doOut");
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 if (facet != null && facet.equals(FACET_W)) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 doWOut(getDischargeLongitudinalSectionData(artifact));
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 else if (facet != null && facet.equals(FACET_Q)) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 doQOut(getDischargeLongitudinalSectionData(artifact));
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 else {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 logger.warn("Unknown facet name: " + facet);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 return;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 protected WQKms[] getDischargeLongitudinalSectionData(Artifact artifact) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 WINFOArtifact winfoArtifact = (WINFOArtifact) artifact;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 return winfoArtifact.getDischargeLongitudinalSectionData();
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 /**
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 * This method adds new Series for the wqkms objects. If there are instances
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 * of WQCKms in this array, there is a further curve that displays the
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 * corrected W values.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 *
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 * @param wqkms An array of WQKms objects to be displayed.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 */
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 protected void doWOut(WQKms[] wqkms) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 logger.debug("LongitudinalSectionGenerator.doWOut");
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 int idx = 0;
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 for (WQKms tmp: wqkms) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129 if (tmp instanceof WQCKms) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 doCorrectedWOut((WQCKms) tmp);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 doWOut(tmp);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 /**
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139 * Adds a new series for the W curve.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 *
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 * @param wqkms The object that contains the W values.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 */
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 protected void doWOut(WQKms wqkms) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 logger.debug("DischargeLongitudinalSectionGenerator.doWOut");
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
146 XYSeries series = new XYSeries(getSeriesName(wqkms, "W"));
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 double[] target = new double[4];
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 int size = wqkms.size();
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 for (int i = 0; i < size; i++) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 target = wqkms.get(i, target);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 series.add(target[2], target[0]);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 w.addSeries(series);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 /**
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 * Adds a new series for the corrected W curve.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 *
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 * @param wqckms The object that contains the corrected W values.
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 */
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 protected void doCorrectedWOut(WQCKms wqckms) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 logger.debug("DischargeLongitudinalSectionGenerator.doCorrectedWOut");
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
168
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
169 XYSeries series = new XYSeries(getSeriesNameForCorrected(wqckms, "W"));
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
170
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
171 double[] target = new double[4];
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
172 int size = wqckms.size();
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
173
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 for (int i = 0; i < size; i++) {
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 target = wqckms.get(i, target);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 series.add(target[2], target[3]);
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 if (series.getItemCount() > 0) {
420
a0afdda4d4b9 ISSUE-47 Adjusted the line color of W, Q and corrected W curves (temporarilly).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 403
diff changeset
181 cw.addSeries(series);
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 }
450
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
184
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
185
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
186 protected String getSeriesNameForCorrected(WQKms wqkms, String mode) {
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
187 String name = wqkms.getName();
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
188
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
189 name = name.replace(
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
190 "Benutzerdefiniert",
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
191 "Benutzerdefiniert [korrigiert]");
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
192
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
193 String prefix = name != null && name.indexOf(mode) >= 0 ? null : mode;
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
194
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
195 return prefix != null && prefix.length() > 0
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
196 ? prefix + "(" + name +")"
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
197 : name;
c8bb38115290 Enabled the discharge longitudinal section to be exported as WST.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 420
diff changeset
198 }
403
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199 }
1ed48e2ddc1b Added an OutGenerator to create discharge longitudinal section charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org