Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDerivedCurveGenerator.java @ 3295:4fc442f1b4f6
Refactored FLYSArtifactCollection.
flys-artifacts/trunk@4976 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 13 Jul 2012 09:33:16 +0000 |
parents | 750e98fc8b76 |
children | 3732e1bab0aa |
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 |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
12 import de.intevation.flys.jfree.JFreeUtil; |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
13 import de.intevation.flys.jfree.StyledXYSeries; |
3067
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.w3c.dom.Document; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 /** |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 * Generator for fixation derived function curve. |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 * |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 */ |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
24 public class FixDerivedCurveGenerator |
3088
960307cf2adc
Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3081
diff
changeset
|
25 extends FixChartGenerator |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 implements FacetTypes |
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 private static Logger logger = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 Logger.getLogger(FixDerivedCurveGenerator.class); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 public static final String I18N_CHART_TITLE = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 "chart.fixings.derived.title"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
34 public static final String I18N_CHART_SUBTITLE = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 "chart.fixings.derived.subtitle"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 public static final String I18N_XAXIS_LABEL = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 "chart.fixings.derived.xaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
40 public static final String I18N_YAXIS_LABEL = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 "chart.fixings.derived.yaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
43 public static final String I18N_CHART_TITLE_DEFAULT = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 "Ableitungskurve"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 public static final String I18N_XAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 "Q [m\u00B3/s]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 public static final String I18N_YAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 "W [NN + m]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 public static enum YAXIS { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 W(0), |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 Q(1); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 public int idx; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 private YAXIS(int c) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 idx = c; |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
58 } |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 logger.debug("doOut"); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
66 FixDerivateFacet facet = (FixDerivateFacet)aaf.getFacet(); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
67 FixFunction func = (FixFunction)facet.getData( |
3088
960307cf2adc
Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3081
diff
changeset
|
68 aaf.getArtifact(), context); |
3091
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
69 |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
70 if (func == null) { |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
71 logger.warn("doOut: Facet does not contain FixFunction"); |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
72 return; |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
73 } |
3110
88d49a0a55f0
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3108
diff
changeset
|
74 |
3215
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
75 double maxQ = func.getMaxQ(); |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
76 |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
77 if (maxQ > 0) { |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
78 StyledXYSeries series = JFreeUtil.sampleFunction2D( |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
79 func.getFunction(), |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
80 doc, |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
81 aaf.getFacetDescription(), |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
82 500, // number of samples |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
83 0.0 , // start |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
84 maxQ); // end |
750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3110
diff
changeset
|
85 addAxisSeries(series, 0, visible); |
3067
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 : |