comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDerivedCurveGenerator.java @ 3067:d87aadaa4f7e

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

http://dive4elements.wald.intevation.org