comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java @ 6570:6435b3d7fb52

Refactored BedDifferenceYearGenerator to use new BedDiffYearProcessor.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 15 Jul 2013 14:42:09 +0200
parents
children 7d86ed4537d9
comparison
equal deleted inserted replaced
6569:28ab77bf7ece 6570:6435b3d7fb52
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
2 * Software engineering by Intevation GmbH
3 *
4 * This file is Free Software under the GNU AGPL (>=v3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6 * documentation coming with Dive4Elements River for details.
7 */
8
9 package org.dive4elements.river.exports.process;
10
11 import java.util.List;
12
13 import org.apache.log4j.Logger;
14 import org.jfree.data.xy.XYSeries;
15 import org.w3c.dom.Document;
16
17 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
18 import org.dive4elements.artifacts.CallContext;
19 import org.dive4elements.river.artifacts.model.FacetTypes;
20 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingle;
21 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
22 import org.dive4elements.river.exports.StyledSeriesBuilder;
23 import org.dive4elements.river.exports.XYChartGenerator;
24 import org.dive4elements.river.jfree.StyledXYSeries;
25 import org.dive4elements.river.model.BedHeightSingleValue;
26
27
28 public class BedDiffYearProcessor implements Processor, FacetTypes {
29
30 private final static Logger logger =
31 Logger.getLogger(BedDiffYearProcessor.class);
32
33 @Override
34 public void doOut(
35 XYChartGenerator generator,
36 ArtifactAndFacet aandf,
37 Document theme,
38 boolean visible,
39 int axidx
40 ) {
41 CallContext context = generator.getCallContext();
42 Object data = aandf.getData(context);
43 if (data instanceof BedDiffYearResult) {
44 String facetType = aandf.getFacetName();
45 int index =
46 (BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType)
47 || BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType))?0:1;
48 doBedDifferenceHeightsOut(
49 generator,
50 (BedDiffYearResult) data,
51 aandf, theme, visible, index, axidx);
52 return;
53 }
54 logger.error("Can't process " + data.getClass().getName() + " objects");
55 }
56
57 @Override
58 public boolean canHandle(String facetType) {
59 return
60 BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType)
61 || BED_DIFFERENCE_YEAR_HEIGHT2.equals(facetType)
62 || BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)
63 || BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED.equals(facetType);
64 }
65
66 private void doBedDifferenceHeightsOut(
67 XYChartGenerator generator,
68 BedDiffYearResult data,
69 ArtifactAndFacet bundle,
70 Document attr,
71 boolean visible,
72 int idx,
73 int axidx) {
74 logger.debug("doBedDifferenceHeightsOut()");
75
76 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), attr);
77 if (idx == 0) {
78 StyledSeriesBuilder.addPoints(series, data.getHeights1Data(), true);
79 }
80 else {
81 StyledSeriesBuilder.addPoints(series, data.getHeights2Data(), true);
82 }
83
84 generator.addAxisSeries(series, axidx, visible);
85 }
86 }
87 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org