Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java Fri Mar 07 11:12:59 2014 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffHeightYearProcessor.java Fri Mar 07 11:15:38 2014 +0100 @@ -13,8 +13,13 @@ import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifacts.CallContext; +import org.dive4elements.river.artifacts.D4EArtifact; +import org.dive4elements.river.artifacts.access.RiverAccess; +import org.dive4elements.river.artifacts.context.RiverContext; import org.dive4elements.river.artifacts.model.FacetTypes; +import org.dive4elements.river.artifacts.model.ZoomScale; import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult; +import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.exports.StyledSeriesBuilder; import org.dive4elements.river.exports.DiagramGenerator; import org.dive4elements.river.exports.XYChartGenerator; @@ -34,6 +39,8 @@ "chart.beddifference.height.yaxis.label"; public static final String I18N_AXIS_LABEL_DEFAULT = "delta S [cm / Jahr]"; + public static final String I18N_SUBTITLE_RADIUS = + "chart.subtitle.radius"; @Override public void doOut( @@ -49,7 +56,22 @@ logger.error("Can't process " + data.getClass().getName() + " objects"); return; } + Double start = (Double)context.getContextValue("startkm"); + Double end = (Double)context.getContextValue("endkm"); + if (start != null && end != null) { + D4EArtifact artifact = (D4EArtifact)bundle.getArtifact(); + RiverContext fc = (RiverContext)context.globalContext(); + // Adaptive smoothing, based on zoom factor/diagram extents. + ZoomScale scales = (ZoomScale)fc.get("zoomscale"); + RiverAccess access = new RiverAccess((D4EArtifact)artifact); + String river = access.getRiverName(); + double radius = scales.getRadius(river, start, end); + generator.addSubtitle(Resources.getMsg( + context.getMeta(), + I18N_SUBTITLE_RADIUS, + new Object[] { radius })); + } BedDiffYearResult bData = (BedDiffYearResult) data; XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); StyledSeriesBuilder.addPoints(series, bData.getHeightPerYearData(), false, GAP_TOLERANCE);