comparison flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDifferenceYearGenerator.java @ 3898:95d699c769fb

Bedheight difference calculation has chart outpus now. flys-artifacts/trunk@5562 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 21 Sep 2012 14:29:32 +0000
parents
children da48e33f4241
comparison
equal deleted inserted replaced
3897:bce2dd4310a6 3898:95d699c769fb
1 package de.intevation.flys.exports.minfo;
2
3 import org.apache.log4j.Logger;
4 import org.jfree.data.xy.XYSeries;
5 import org.w3c.dom.Document;
6
7 import de.intevation.artifactdatabase.state.ArtifactAndFacet;
8 import de.intevation.artifactdatabase.state.Facet;
9 import de.intevation.flys.artifacts.model.FacetTypes;
10 import de.intevation.flys.artifacts.model.minfo.BedDiffYearResult;
11 import de.intevation.flys.exports.StyledSeriesBuilder;
12 import de.intevation.flys.exports.XYChartGenerator;
13 import de.intevation.flys.jfree.FLYSAnnotation;
14 import de.intevation.flys.jfree.StyledXYSeries;
15
16
17 public class BedDifferenceYearGenerator
18 extends XYChartGenerator
19 implements FacetTypes
20 {
21 public enum YAXIS {
22 D(0), M(1), H(2);
23
24 protected int idx;
25
26 private YAXIS(int c) {
27 idx = c;
28 }
29 }
30
31 /** The logger that is used in this generator. */
32 private static Logger logger = Logger.getLogger(BedDifferenceYearGenerator.class);
33
34 public static final String I18N_CHART_TITLE = "chart.beddifference.year.title";
35 public static final String I18N_XAXIS_LABEL = "chart.beddifference.xaxis.label";
36 public static final String I18N_YAXIS_LABEL = "chart.beddifference.yaxis.label.diff";
37 public static final String I18N_SECOND_YAXIS_LABEL = "chart.beddifference.yaxis.label.morph";
38 public static final String I18N_THIRD_YAXIS_LABEL = "chart.beddifference.yaxis.label.heights";
39
40 public static final String I18N_CHART_TITLE_DEFAULT = "Sohlenhöhen Differenz";
41 public static final String I18N_XAXIS_LABEL_DEFAULT = "Fluss-Km";
42 public static final String I18N_YAXIS_LABEL_DEFAULT = "delta S [m]";
43 public static final String I18N_SECOND_YAXIS_LABEL_DEFAULT = "Morph. Breite [m]";
44 public static final String I18N_THIRD_YAXIS_LABEL_DEFAULT = "Höhe [m]";
45
46 @Override
47 protected YAxisWalker getYAxisWalker() {
48 return new YAxisWalker() {
49
50 @Override
51 public int length() {
52 return YAXIS.values().length;
53 }
54
55 @Override
56 public String getId(int idx) {
57 YAXIS[] yaxes = YAXIS.values();
58 return yaxes[idx].toString();
59 }
60 };
61 }
62
63 @Override
64 public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) {
65 String name = bundle.getFacetName();
66
67 logger.debug("doOut: " + name);
68
69 if (name == null) {
70 logger.error("No facet name for doOut(). No output generated!");
71 return;
72 }
73
74 Facet facet = bundle.getFacet();
75
76 if (facet == null) {
77 return;
78 }
79
80 if (name.equals(BED_DIFFERENCE_YEAR)) {
81 doBedDifferenceYearOut(
82 (BedDiffYearResult) bundle.getData(context),
83 bundle, attr, visible);
84 }
85 else if (name.equals(BED_DIFFERENCE_MORPH_WIDTH)) {
86 doBedDifferenceMorphWidthOut(
87 (BedDiffYearResult) bundle.getData(context),
88 bundle, attr, visible);
89 }
90 else if (name.equals(BED_DIFFERENCE_YEAR_HEIGHT1)) {
91 doBedDifferenceHeightsOut(
92 (BedDiffYearResult)bundle.getData(context),
93 bundle, attr, visible, 0);
94 }
95 else if (name.equals(BED_DIFFERENCE_YEAR_HEIGHT2)) {
96 doBedDifferenceHeightsOut(
97 (BedDiffYearResult)bundle.getData(context),
98 bundle, attr, visible, 1);
99 }
100 else if (name.equals(LONGITUDINAL_ANNOTATION)) {
101 doAnnotations(
102 (FLYSAnnotation) bundle.getData(context),
103 bundle,
104 attr,
105 visible);
106 }
107 }
108
109 private void doBedDifferenceHeightsOut(
110 BedDiffYearResult data,
111 ArtifactAndFacet bundle,
112 Document attr,
113 boolean visible,
114 int idx) {
115 logger.debug("doBedDifferenceYearOut()");
116
117 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), attr);
118 if (idx == 0) {
119 StyledSeriesBuilder.addPoints(series, data.getHeights1Data(), true);
120 }
121 else {
122 StyledSeriesBuilder.addPoints(series, data.getHeights2Data(), true);
123 }
124
125 addAxisSeries(series, YAXIS.H.idx, visible);
126 }
127
128 @Override
129 protected String getDefaultChartTitle() {
130 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
131 }
132
133 @Override
134 protected String getDefaultXAxisLabel() {
135 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
136 }
137
138 @Override
139 protected String getDefaultYAxisLabel(int pos) {
140 String label = "default";
141 if (pos == YAXIS.D.idx) {
142 label = msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
143 }
144 else if (pos == YAXIS.M.idx) {
145 label = msg(I18N_SECOND_YAXIS_LABEL, I18N_SECOND_YAXIS_LABEL_DEFAULT);
146 }
147 else if (pos == YAXIS.H.idx) {
148 label = msg(I18N_THIRD_YAXIS_LABEL, I18N_THIRD_YAXIS_LABEL_DEFAULT);
149 }
150
151 return label;
152 }
153
154 protected void doBedDifferenceYearOut(BedDiffYearResult data,
155 ArtifactAndFacet aandf, Document theme, boolean visible) {
156 logger.debug("doBedDifferenceYearOut()");
157
158 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
159 StyledSeriesBuilder.addPoints(series, data.getDifferencesData(), true);
160
161 addAxisSeries(series, YAXIS.D.idx, visible);
162 }
163
164 protected void doBedDifferenceMorphWidthOut(BedDiffYearResult data,
165 ArtifactAndFacet aandf, Document theme, boolean visible) {
166 logger.debug("doBedDifferencesMorphWidthOut()");
167
168 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
169 StyledSeriesBuilder.addPoints(series, data.getMorphWidthData(), true);
170
171 addAxisSeries(series, YAXIS.M.idx, visible);
172 }
173 }

http://dive4elements.wald.intevation.org