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,

http://dive4elements.wald.intevation.org