Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java @ 7808:ea6b441b4872 minfo-opt
Calculate the zoom dependent radius and add the informations to chart subtitle.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Fri, 07 Mar 2014 11:15:38 +0100 |
parents | 28758f51f1b2 |
children | e844be34a606 |
comparison
equal
deleted
inserted
replaced
7807:ad4a3980092f | 7808:ea6b441b4872 |
---|---|
11 import org.apache.log4j.Logger; | 11 import org.apache.log4j.Logger; |
12 import org.jfree.data.xy.XYSeries; | 12 import org.jfree.data.xy.XYSeries; |
13 | 13 |
14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; | 14 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
15 import org.dive4elements.artifacts.CallContext; | 15 import org.dive4elements.artifacts.CallContext; |
16 import org.dive4elements.river.artifacts.D4EArtifact; | |
17 import org.dive4elements.river.artifacts.access.RiverAccess; | |
18 import org.dive4elements.river.artifacts.context.RiverContext; | |
16 import org.dive4elements.river.artifacts.model.FacetTypes; | 19 import org.dive4elements.river.artifacts.model.FacetTypes; |
20 import org.dive4elements.river.artifacts.model.ZoomScale; | |
17 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult; | 21 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult; |
22 import org.dive4elements.river.artifacts.resources.Resources; | |
18 import org.dive4elements.river.exports.StyledSeriesBuilder; | 23 import org.dive4elements.river.exports.StyledSeriesBuilder; |
19 import org.dive4elements.river.exports.DiagramGenerator; | 24 import org.dive4elements.river.exports.DiagramGenerator; |
20 import org.dive4elements.river.exports.XYChartGenerator; | 25 import org.dive4elements.river.exports.XYChartGenerator; |
21 import org.dive4elements.river.jfree.StyledXYSeries; | 26 import org.dive4elements.river.jfree.StyledXYSeries; |
22 import org.dive4elements.river.themes.ThemeDocument; | 27 import org.dive4elements.river.themes.ThemeDocument; |
32 | 37 |
33 public static final String I18N_AXIS_LABEL = | 38 public static final String I18N_AXIS_LABEL = |
34 "chart.beddifference.height.yaxis.label"; | 39 "chart.beddifference.height.yaxis.label"; |
35 public static final String I18N_AXIS_LABEL_DEFAULT = | 40 public static final String I18N_AXIS_LABEL_DEFAULT = |
36 "delta S [cm / Jahr]"; | 41 "delta S [cm / Jahr]"; |
42 public static final String I18N_SUBTITLE_RADIUS = | |
43 "chart.subtitle.radius"; | |
37 | 44 |
38 @Override | 45 @Override |
39 public void doOut( | 46 public void doOut( |
40 DiagramGenerator generator, | 47 DiagramGenerator generator, |
41 ArtifactAndFacet bundle, | 48 ArtifactAndFacet bundle, |
47 if (!(data instanceof BedDiffYearResult)) { | 54 if (!(data instanceof BedDiffYearResult)) { |
48 // Should not happen if canHandle is correct | 55 // Should not happen if canHandle is correct |
49 logger.error("Can't process " + data.getClass().getName() + " objects"); | 56 logger.error("Can't process " + data.getClass().getName() + " objects"); |
50 return; | 57 return; |
51 } | 58 } |
59 Double start = (Double)context.getContextValue("startkm"); | |
60 Double end = (Double)context.getContextValue("endkm"); | |
61 if (start != null && end != null) { | |
62 D4EArtifact artifact = (D4EArtifact)bundle.getArtifact(); | |
63 RiverContext fc = (RiverContext)context.globalContext(); | |
64 // Adaptive smoothing, based on zoom factor/diagram extents. | |
65 ZoomScale scales = (ZoomScale)fc.get("zoomscale"); | |
66 RiverAccess access = new RiverAccess((D4EArtifact)artifact); | |
67 String river = access.getRiverName(); | |
52 | 68 |
69 double radius = scales.getRadius(river, start, end); | |
70 generator.addSubtitle(Resources.getMsg( | |
71 context.getMeta(), | |
72 I18N_SUBTITLE_RADIUS, | |
73 new Object[] { radius })); | |
74 } | |
53 BedDiffYearResult bData = (BedDiffYearResult) data; | 75 BedDiffYearResult bData = (BedDiffYearResult) data; |
54 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); | 76 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
55 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE); | 77 StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE); |
56 | 78 |
57 generator.addAxisSeries(series, axisName, visible); | 79 generator.addAxisSeries(series, axisName, visible); |