annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDerivedCurveGenerator.java @ 3091:179e38aa678d

Some fixing charts are generated now flys-artifacts/trunk@4690 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Christian Lins <christian.lins@intevation.de>
date Mon, 18 Jun 2012 13:29:15 +0000
parents 960307cf2adc
children 2d4d9050b1c6
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
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
29 extends FixChartGenerator
3067
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(
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
72 aaf.getArtifact(), context);
3091
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
73
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
74 if(func != null) {
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
75 double maxQ = func.getMaxQ();
3081
26119b7b3154 Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents: 3076
diff changeset
76
3091
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
77 if(maxQ > 0) {
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
78 XYSeries series = DatasetUtilities.sampleFunction2DToSeries(
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
79 new Function2DAdapter(func.getFunction()),
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
80 0, // start
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
81 maxQ, // end
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
82 500, // number of samples
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
83 aaf.getFacetDescription());
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
84 addAxisSeries(series, 0, visible);
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
85 }
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
86 }
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
87 else {
179e38aa678d Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents: 3088
diff changeset
88 logger.debug("doOut: func == null");
3067
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 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
91
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
92
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
93 @Override
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
94 protected String getDefaultChartTitle() {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
95 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
96 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
97
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
98
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
99 @Override
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
100 protected String getDefaultXAxisLabel() {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
101 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
102 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
103
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
104
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
105 @Override
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
106 protected String getDefaultYAxisLabel(int pos) {
3076
5642a83420f2 FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3068
diff changeset
107 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
3067
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
108 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
109
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
110
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 protected ChartGenerator.YAxisWalker getYAxisWalker() {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
113 return new YAxisWalker() {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
114 @Override
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
115 public int length() {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
116 return YAXIS.values().length;
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
117 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
118
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
119 @Override
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
120 public String getId(int idx) {
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
121 YAXIS[] yaxes = YAXIS.values();
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
122 return yaxes[idx].toString();
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 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
126 }
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
127
d87aadaa4f7e Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff changeset
128 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org