annotate artifacts/src/main/java/org/dive4elements/river/exports/process/MiddleBedHeightProcessor.java @ 7126:05d442db4ca6

Add MiddleBedHeightProcessor
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 25 Sep 2013 10:25:10 +0200
parents
children 9344aa0fb021
rev   line source
7126
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
7 */
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
8
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports.process;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
10
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
12
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
13 import org.jfree.data.xy.XYSeries;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
14
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
16 import org.dive4elements.artifacts.CallContext;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
17
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
18 import org.dive4elements.river.artifacts.model.MiddleBedHeightData;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19 import org.dive4elements.river.artifacts.D4EArtifact;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
20 import org.dive4elements.river.artifacts.model.FacetTypes;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
21 import org.dive4elements.river.themes.ThemeDocument;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22 import org.dive4elements.river.exports.DiagramGenerator;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23 import org.dive4elements.river.exports.StyledSeriesBuilder;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24 import org.dive4elements.river.utils.RiverUtils;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
25 import org.dive4elements.river.jfree.StyledXYSeries;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
26
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
27 public class MiddleBedHeightProcessor extends DefaultProcessor {
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29 /** Private logger. */
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30 private static final Logger logger =
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
31 Logger.getLogger(WOutProcessor.class);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
32
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
33 public static final String I18N_AXIS_LABEL =
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
34 "chart.bedheight_middle.section.yaxis.label";
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
35
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
36 public static final String I18N_AXIS_LABEL_DEFAULT =
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
37 "mittlere Sohlhöhen [müNN]";
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
38
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
39 @Override
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
40 public void doOut(
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
41 DiagramGenerator generator,
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
42 ArtifactAndFacet bundle,
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
43 ThemeDocument theme,
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
44 boolean visible) {
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
45 CallContext context = generator.getCallContext();
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
46 logger.debug("Processing: " + bundle.getFacetName());
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
47 MiddleBedHeightData data =
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
48 (MiddleBedHeightData) bundle.getData(context);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
49
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
50 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 theme);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53 StyledSeriesBuilder.addPoints(series, data.getMiddleHeightsPoints(),
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
54 false, 0.110d);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
55
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
56 generator.addAxisSeries(series, axisName, visible);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
57 }
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
58
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
59 @Override
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
60 public String getAxisLabel(DiagramGenerator generator) {
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
61 D4EArtifact flys = (D4EArtifact) generator.getMaster();
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
62
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
63 String unit = RiverUtils.getRiver(flys).getWstUnit().getName();
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
64
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
65 return generator.msg(
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
66 I18N_AXIS_LABEL,
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
67 I18N_AXIS_LABEL_DEFAULT,
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
68 new Object[] { unit });
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
69 }
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
70
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
71 @Override
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
72 public boolean canHandle(String facetType) {
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
73 if (facetType == null) {
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
74 return false;
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
75 }
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
76 return facetType.equals(FacetTypes.MIDDLE_BED_HEIGHT_EPOCH) ||
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
77 facetType.equals(FacetTypes.MIDDLE_BED_HEIGHT_SINGLE);
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
78 }
05d442db4ca6 Add MiddleBedHeightProcessor
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
79 }

http://dive4elements.wald.intevation.org