Mercurial > dive4elements > river
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 : |