Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedQualityDiameterProcessor.java @ 7148:cde7db30847f
Add BedQuality Processors
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 25 Sep 2013 15:57:50 +0200 |
parents | |
children | 1508ee33f85f |
comparison
equal
deleted
inserted
replaced
7147:41779c13f9e4 | 7148:cde7db30847f |
---|---|
1 /* Copyright (C) 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 | |
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; | |
17 import org.dive4elements.artifacts.CallContext; | |
18 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingle; | |
19 import org.dive4elements.river.artifacts.model.FacetTypes; | |
20 import org.dive4elements.river.exports.DiagramGenerator; | |
21 import org.dive4elements.river.exports.StyledSeriesBuilder; | |
22 import org.dive4elements.river.jfree.StyledXYSeries; | |
23 import org.dive4elements.river.model.BedHeightSingleValue; | |
24 import org.dive4elements.river.themes.ThemeDocument; | |
25 | |
26 import org.dive4elements.river.artifacts.model.minfo.BedDiameterData; | |
27 import org.dive4elements.river.artifacts.model.minfo.BedDiameterResult; | |
28 import org.dive4elements.river.artifacts.model.minfo.BedloadDiameterResult; | |
29 | |
30 public class BedQualityDiameterProcessor extends DefaultProcessor { | |
31 | |
32 private final static Logger logger = | |
33 Logger.getLogger(BedQualityDiameterProcessor.class); | |
34 | |
35 public static final String I18N_AXIS_LABEL_DEFAULT = | |
36 "Durchmesser [mm]"; | |
37 public static final String I18N_AXIS_LABEL = | |
38 "chart.bedquality.yaxis.label.diameter"; | |
39 | |
40 @Override | |
41 public void doOut( | |
42 DiagramGenerator generator, | |
43 ArtifactAndFacet bundle, | |
44 ThemeDocument theme, | |
45 boolean visible) { | |
46 CallContext context = generator.getCallContext(); | |
47 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), | |
48 theme); | |
49 Object data = bundle.getData(context); | |
50 String facetName = bundle.getFacetName(); | |
51 double [][] points; | |
52 | |
53 if (facetName.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_TOPLAYER)) { | |
54 points = ((BedDiameterResult) data).getDiameterCapData(); | |
55 } else if (facetName.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_SUBLAYER)) { | |
56 points = ((BedDiameterResult) data).getDiameterSubData(); | |
57 } else if (facetName.equals(FacetTypes.BED_QUALITY_BEDLOAD_DIAMETER)) { | |
58 points = ((BedloadDiameterResult) data).getDiameterData(); | |
59 } else if (facetName.equals(FacetTypes.BED_DIAMETER_DATA_TOP) || | |
60 facetName.equals(FacetTypes.BED_DIAMETER_DATA_SUB) || | |
61 facetName.equals(FacetTypes.BEDLOAD_DIAMETER_DATA)) { | |
62 points = ((BedDiameterData) data).getDiameterData(); | |
63 } else { | |
64 logger.error("Unknown facet name: " + facetName); | |
65 return; | |
66 } | |
67 StyledSeriesBuilder.addPoints(series, points, true); | |
68 | |
69 generator.addAxisSeries(series, axisName, visible); | |
70 } | |
71 | |
72 @Override | |
73 public boolean canHandle(String facettype) { | |
74 return facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_TOPLAYER) || | |
75 facettype.equals(FacetTypes.BED_QUALITY_BED_DIAMETER_SUBLAYER) || | |
76 facettype.equals(FacetTypes.BED_QUALITY_BEDLOAD_DIAMETER) || | |
77 facettype.equals(FacetTypes.BED_DIAMETER_DATA_TOP) || | |
78 facettype.equals(FacetTypes.BED_DIAMETER_DATA_SUB) || | |
79 facettype.equals(FacetTypes.BEDLOAD_DIAMETER_DATA); | |
80 } | |
81 | |
82 @Override | |
83 public String getAxisLabel(DiagramGenerator generator) { | |
84 return generator.msg( | |
85 I18N_AXIS_LABEL, | |
86 I18N_AXIS_LABEL_DEFAULT); | |
87 } | |
88 } | |
89 |