comparison flys-artifacts/src/main/java/de/intevation/flys/exports/minfo/BedDiffHeightYearGenerator.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 8eb1d6dc96a9
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 BedDiffHeightYearGenerator
18 extends XYChartGenerator
19 implements FacetTypes
20 {
21 public enum YAXIS {
22 D(0);
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(BedDiffHeightYearGenerator.class);
33
34 public static final String I18N_CHART_TITLE = "chart.beddifference.height.title";
35 public static final String I18N_XAXIS_LABEL = "chart.beddifference.height.xaxis.label";
36 public static final String I18N_YAXIS_LABEL = "chart.beddifference.height.yaxis.label";
37
38 public static final String I18N_CHART_TITLE_DEFAULT = "Sohlenhöhen Differenz";
39 public static final String I18N_XAXIS_LABEL_DEFAULT = "Fluss-Km";
40 public static final String I18N_YAXIS_LABEL_DEFAULT = "delta S [cm / Jahr]";
41
42 @Override
43 protected YAxisWalker getYAxisWalker() {
44 return new YAxisWalker() {
45
46 @Override
47 public int length() {
48 return YAXIS.values().length;
49 }
50
51 @Override
52 public String getId(int idx) {
53 YAXIS[] yaxes = YAXIS.values();
54 return yaxes[idx].toString();
55 }
56 };
57 }
58
59 @Override
60 public void doOut(ArtifactAndFacet bundle, Document attr, boolean visible) {
61 String name = bundle.getFacetName();
62
63 logger.debug("doOut: " + name);
64
65 if (name == null) {
66 logger.error("No facet name for doOut(). No output generated!");
67 return;
68 }
69
70 Facet facet = bundle.getFacet();
71
72 if (facet == null) {
73 return;
74 }
75
76 if (name.equals(BED_DIFFERENCE_HEIGHT_YEAR)) {
77 doBedDifferenceYearOut(
78 (BedDiffYearResult) bundle.getData(context),
79 bundle, attr, visible);
80 }
81 else if (name.equals(LONGITUDINAL_ANNOTATION)) {
82 doAnnotations(
83 (FLYSAnnotation) bundle.getData(context),
84 bundle,
85 attr,
86 visible);
87 }
88 }
89
90 @Override
91 protected String getDefaultChartTitle() {
92 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
93 }
94
95 @Override
96 protected String getDefaultXAxisLabel() {
97 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT);
98 }
99
100 @Override
101 protected String getDefaultYAxisLabel(int pos) {
102 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT);
103 }
104
105 protected void doBedDifferenceYearOut(BedDiffYearResult data,
106 ArtifactAndFacet aandf, Document theme, boolean visible) {
107
108 XYSeries series = new StyledXYSeries(aandf.getFacetDescription(), theme);
109 StyledSeriesBuilder.addPoints(series, data.getHeightPerYearData(), true);
110
111 addAxisSeries(series, YAXIS.D.idx, visible);
112 }
113 }

http://dive4elements.wald.intevation.org