Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.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 | 3d772f52080a |
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.jfree.StyledXYSeries; | 25 import org.dive4elements.river.jfree.StyledXYSeries; |
21 import org.dive4elements.river.themes.ThemeDocument; | 26 import org.dive4elements.river.themes.ThemeDocument; |
22 | 27 |
31 | 36 |
32 public static final String I18N_AXIS_LABEL = | 37 public static final String I18N_AXIS_LABEL = |
33 "chart.beddifference.yaxis.label.diff"; | 38 "chart.beddifference.yaxis.label.diff"; |
34 public static final String I18N_AXIS_LABEL_DEFAULT = | 39 public static final String I18N_AXIS_LABEL_DEFAULT = |
35 "delta S [cm]"; | 40 "delta S [cm]"; |
41 public static final String I18N_SUBTITLE_RADIUS = | |
42 "chart.subtitle.radius"; | |
36 | 43 |
37 @Override | 44 @Override |
38 public void doOut( | 45 public void doOut( |
39 DiagramGenerator generator, | 46 DiagramGenerator generator, |
40 ArtifactAndFacet bundle, | 47 ArtifactAndFacet bundle, |
41 ThemeDocument theme, | 48 ThemeDocument theme, |
42 boolean visible) { | 49 boolean visible) { |
43 CallContext context = generator.getCallContext(); | 50 CallContext context = generator.getCallContext(); |
44 Object data = bundle.getData(context); | 51 Object data = bundle.getData(context); |
45 if (data instanceof BedDiffYearResult) { | 52 if (data instanceof BedDiffYearResult) { |
53 Double start = (Double)context.getContextValue("startkm"); | |
54 Double end = (Double)context.getContextValue("endkm"); | |
55 if (start != null && end != null) { | |
56 D4EArtifact artifact = (D4EArtifact)bundle.getArtifact(); | |
57 RiverContext fc = (RiverContext)context.globalContext(); | |
58 // Adaptive smoothing, based on zoom factor/diagram extents. | |
59 ZoomScale scales = (ZoomScale)fc.get("zoomscale"); | |
60 RiverAccess access = new RiverAccess((D4EArtifact)artifact); | |
61 String river = access.getRiverName(); | |
62 | |
63 double radius = scales.getRadius(river, start, end); | |
64 generator.addSubtitle(Resources.getMsg( | |
65 context.getMeta(), | |
66 I18N_SUBTITLE_RADIUS, | |
67 new Object[] { radius })); | |
68 } | |
46 String facetType = bundle.getFacetName(); | 69 String facetType = bundle.getFacetName(); |
47 BedDiffYearResult bData = (BedDiffYearResult) data; | 70 BedDiffYearResult bData = (BedDiffYearResult) data; |
48 | 71 |
49 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); | 72 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
50 StyledSeriesBuilder.addPointsFactorY(series, | 73 StyledSeriesBuilder.addPointsFactorY(series, |