Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDerivedCurveGenerator.java @ 3081:26119b7b3154
Fixing output generator hacking
flys-artifacts/trunk@4677 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Sun, 17 Jun 2012 20:45:01 +0000 |
parents | 5642a83420f2 |
children | 960307cf2adc |
rev | line source |
---|---|
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports.fixings; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
2 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
4 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.flys.artifacts.model.FacetTypes; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
6 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
7 import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet; |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
8 import de.intevation.flys.artifacts.model.fixings.FixFunction; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.flys.exports.ChartGenerator; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.flys.exports.XYChartGenerator; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.flys.jfree.Function2DAdapter; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import org.jfree.data.general.DatasetUtilities; |
3068
2fc9d0c65dc9
Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3067
diff
changeset
|
18 |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import org.jfree.data.xy.XYSeries; |
3068
2fc9d0c65dc9
Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3067
diff
changeset
|
20 |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import org.w3c.dom.Document; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 /** |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 * Generator for fixation derived function curve. |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 * |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 */ |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
28 public class FixDerivedCurveGenerator |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 extends XYChartGenerator |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 implements FacetTypes |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 { |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
32 private static Logger logger = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 Logger.getLogger(FixDerivedCurveGenerator.class); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 public static final String I18N_CHART_TITLE = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 "chart.fixings.derived.title"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
38 public static final String I18N_CHART_SUBTITLE = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 "chart.fixings.derived.subtitle"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 public static final String I18N_XAXIS_LABEL = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 "chart.fixings.derived.xaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
44 public static final String I18N_YAXIS_LABEL = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 "chart.fixings.derived.yaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
47 public static final String I18N_CHART_TITLE_DEFAULT = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 "Ableitungskurve"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 public static final String I18N_XAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 "Q [m\u00B3/s]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 public static final String I18N_YAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 "W [NN + m]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 public static enum YAXIS { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 W(0), |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 Q(1); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 public int idx; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 private YAXIS(int c) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 idx = c; |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
62 } |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
68 logger.debug("doOut"); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
70 FixDerivateFacet facet = (FixDerivateFacet)aaf.getFacet(); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
71 FixFunction func = (FixFunction)facet.getData( |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
72 aaf.getArtifact(), context, getCurrentKmFromRequest()); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
73 |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
74 double maxQ = func.getMaxQ(); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
75 maxQ = Math.min(2000.0, Math.abs(maxQ)); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
76 maxQ += maxQ * 0.05; |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
77 |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
78 if(maxQ > 0) { |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
79 XYSeries series = DatasetUtilities.sampleFunction2DToSeries( |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
80 new Function2DAdapter(func.getFunction()), |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
81 0, // start |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
82 maxQ, // end |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
83 500, // number of samples |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
84 aaf.getFacetDescription()); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
85 addAxisSeries(series, 0, visible); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
86 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
87 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
88 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 protected String getDefaultChartTitle() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 protected String getDefaultXAxisLabel() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 protected String getDefaultYAxisLabel(int pos) { |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
104 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
106 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
107 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 protected ChartGenerator.YAxisWalker getYAxisWalker() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 return new YAxisWalker() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 public int length() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 return YAXIS.values().length; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 public String getId(int idx) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 YAXIS[] yaxes = YAXIS.values(); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
119 return yaxes[idx].toString(); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
120 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 }; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
122 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |