Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixLongitudinalSectionGenerator.java @ 4890:bf38ea4cb0f7
Added bodies to macros. Use the bodies of <dc:call-macro><body></dc:call-macro> as <dc:macro-body/> in tthe macro. Example:
<dc:macro name="greet"><hello><dc:macro-body/></hello></dc:macro>
<dc:call-macro name="greet"><planet>Earth</planet></dc:call-macro>
Result:
<hello><panet>Earth</planet></hello>
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 28 Jan 2013 18:55:55 +0100 |
parents | 05a54b4d579d |
children |
rev | line source |
---|---|
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports.fixings; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 import java.awt.BasicStroke; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 import java.awt.Color; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 import org.apache.log4j.Logger; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 import org.jfree.chart.plot.Marker; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 import org.jfree.chart.plot.ValueMarker; |
3286
f062b5a90e26
Add showpointlabel style attribute
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
9 import org.jfree.data.xy.XYSeries; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
10 import org.w3c.dom.Document; |
3612
f3fc8d49d741
Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3610
diff
changeset
|
11 |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
12 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
13 import de.intevation.flys.artifacts.model.FacetTypes; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
14 import de.intevation.flys.artifacts.model.fixings.AnalysisPeriod; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
15 import de.intevation.flys.artifacts.model.fixings.QWD; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
16 import de.intevation.flys.exports.ChartGenerator; |
4446
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
17 import de.intevation.flys.exports.process.KMIndexProcessor; |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
18 import de.intevation.flys.exports.process.Processor; |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
19 import de.intevation.flys.jfree.FLYSAnnotation; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
20 import de.intevation.flys.jfree.StyledAreaSeriesCollection; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
21 import de.intevation.flys.jfree.StyledXYSeries; |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
22 import de.intevation.flys.utils.KMIndex; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 public class FixLongitudinalSectionGenerator |
4446
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
25 extends FixChartGenerator |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 implements FacetTypes |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 private static Logger logger = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
29 Logger.getLogger(FixLongitudinalSectionGenerator.class); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 public static final String I18N_CHART_TITLE = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
32 "chart.fixings.longitudinalsection.title"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 public static final String I18N_CHART_SUBTITLE = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
35 "chart.fixings.longitudinalsection.subtitle"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 public static final String I18N_XAXIS_LABEL = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
38 "chart.fixings.longitudinalsection.xaxis.label"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 public static final String I18N_CHART_TITLE_DEFAULT = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
41 "Fixierungsanalyse"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 public static final String I18N_XAXIS_LABEL_DEFAULT = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
44 "[km]"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 |
4446
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
46 public static final String I18N_DW_YAXIS_LABEL_DEFAULT = |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
47 "delta W [cm]"; |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
48 |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
49 public static final String I18N_DW_YAXIS_LABEL = |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
50 "chart.fixings.longitudinalsection.yaxis.label"; |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 public static enum YAXIS { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 dW(0); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 public int idx; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 private YAXIS(int c) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 idx = c; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 String name = aaf.getFacetName(); |
3579
accb64be866c
Add annotations to fixA longitudinal Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3406
diff
changeset
|
63 logger.debug("FixLongitudinalSectionGenerator: doOut: " + name); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 |
4446
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
65 Processor processor = new KMIndexProcessor(); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 if (name.contains(FIX_SECTOR_AVERAGE_LS_DEVIATION)) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
67 doSectorAverageDeviationOut(aaf, doc, visible); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
68 } |
4446
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
69 else if (processor.canHandle(name)) { |
05a54b4d579d
Remove AbstractFixGenerator and use new KMIndexProcessor instead
Björn Ricks <bjoern.ricks@intevation.de>
parents:
4377
diff
changeset
|
70 processor.doOut(this, aaf, doc, visible, YAXIS.dW.idx); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
71 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 else if (name.equals(FIX_DEVIATION_LS)) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 doReferenceDeviationOut(aaf, doc, visible); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 } |
3579
accb64be866c
Add annotations to fixA longitudinal Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3406
diff
changeset
|
75 else if (name.equals(LONGITUDINAL_ANNOTATION)) { |
accb64be866c
Add annotations to fixA longitudinal Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3406
diff
changeset
|
76 doAnnotations( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
77 (FLYSAnnotation) aaf.getData(context), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
78 aaf, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
79 doc, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
80 visible); |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
81 } |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
82 else if (FacetTypes.IS.MANUALPOINTS(name)) { |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
83 doPoints (aaf.getData(context), |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
84 aaf, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
85 doc, visible, YAXIS.dW.idx); |
3579
accb64be866c
Add annotations to fixA longitudinal Sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3406
diff
changeset
|
86 } |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 else { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 logger.warn("Unknown facet name " + name); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
90 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
91 |
3286
f062b5a90e26
Add showpointlabel style attribute
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
92 @SuppressWarnings("unchecked") |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
93 protected void doSectorAverageDeviationOut( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
94 ArtifactAndFacet aaf, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
95 Document doc, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
96 boolean visible) |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
97 { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
98 logger.debug("doSectorAverageOut" + aaf.getFacet().getIndex()); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
99 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
100 int index = aaf.getFacet().getIndex(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
101 int sectorNdx = index & 3; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
102 |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3579
diff
changeset
|
103 KMIndex<AnalysisPeriod> kms = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
104 (KMIndex<AnalysisPeriod>)aaf.getData(context); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
105 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
106 if(kms == null) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
107 return; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
108 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
109 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
110 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
111 XYSeries upper = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
112 new StyledXYSeries(aaf.getFacetDescription(), false, doc); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
113 XYSeries lower = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
114 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
115 |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3579
diff
changeset
|
116 for (KMIndex.Entry<AnalysisPeriod> entry: kms) { |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
117 double km = entry.getKm(); |
3610
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3579
diff
changeset
|
118 AnalysisPeriod ap = entry.getValue(); |
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3579
diff
changeset
|
119 QWD qwd = ap.getQSectorAverages()[sectorNdx]; |
66f539df4e8b
Issue 716.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3579
diff
changeset
|
120 double dev = ap.getQSectorStdDev(sectorNdx); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
121 logger.debug("std-dev: " + dev); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
122 if (qwd == null) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
123 continue; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
124 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
125 double deltaW = qwd.getDeltaW(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
126 double up = deltaW + dev; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
127 double lo = deltaW - dev; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
128 upper.add(km, up); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
129 lower.add(km, lo); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
130 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
131 area.addSeries(upper); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
132 area.addSeries(lower); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
133 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
134 addAreaSeries(area, 0, visible); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
135 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
136 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
137 |
3286
f062b5a90e26
Add showpointlabel style attribute
Christian Lins <christian.lins@intevation.de>
parents:
3215
diff
changeset
|
138 @SuppressWarnings("unchecked") |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
139 protected void doReferenceDeviationOut( |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
140 ArtifactAndFacet aaf, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
141 Document doc, |
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
142 boolean visible) |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
143 { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
144 logger.debug("doReferenceOut"); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
145 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
146 KMIndex<double[]> kms = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
147 (KMIndex<double[]>)aaf.getData(context); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
148 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
149 if(kms == null) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
150 return; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
151 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
152 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
153 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(doc); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
154 XYSeries upper = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
155 new StyledXYSeries(aaf.getFacetDescription(), false, doc); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
156 XYSeries lower = |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
157 new StyledXYSeries(aaf.getFacetDescription() + " ", false, doc); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
158 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
159 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
160 for (KMIndex.Entry<double[]> entry: kms) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
161 double km = entry.getKm(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
162 double[] devArray = entry.getValue(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
163 if (devArray == null) { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
164 continue; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
165 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
166 double dev = devArray[0]; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
167 double up = dev; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
168 double lo = -dev; |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3171
diff
changeset
|
169 upper.add(km, up, false); |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3171
diff
changeset
|
170 lower.add(km, lo, false); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
171 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
172 area.addSeries(upper); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 area.addSeries(lower); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 Marker marker = new ValueMarker(0); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 marker.setStroke(new BasicStroke(2)); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 marker.setPaint(Color.BLACK); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 addValueMarker(marker); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 addAreaSeries(area, 0, visible); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
182 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
183 protected String getDefaultChartTitle() { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
184 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
185 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
186 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
187 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
188 protected String getDefaultXAxisLabel() { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
189 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
190 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
191 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
192 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
193 protected String getDefaultYAxisLabel(int pos) { |
4377
512a3af69e18
Extract common generator method from FixLongitudinalSectionGenerator
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3906
diff
changeset
|
194 return msg(I18N_DW_YAXIS_LABEL, I18N_DW_YAXIS_LABEL_DEFAULT); |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
195 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
196 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
197 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
198 protected ChartGenerator.YAxisWalker getYAxisWalker() { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
199 return new YAxisWalker() { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
200 @Override |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
201 public int length() { |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
202 return YAXIS.values().length; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
203 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
204 |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
205 @Override |
3770
6a08f4dc790b
Manual Points for fixing charts (not working yet)
Christian Lins <christian.lins@intevation.de>
parents:
3612
diff
changeset
|
206 public String getId(int idx) { |
3169
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
207 YAXIS[] yaxes = YAXIS.values(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
208 return yaxes[idx].toString(); |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
209 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
210 }; |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
211 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
212 } |
b6da650b0718
FixA: Added longitudinal section chart.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
213 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |