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);

http://dive4elements.wald.intevation.org