diff artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java @ 7985:10debf4b82be facet-metadata

Split bed differences facet into data specific facets.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 01 Jul 2014 15:09:56 +0200
parents e844be34a606
children b57db3a231ba
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java	Tue Jul 01 13:27:53 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedDiffYearProcessor.java	Tue Jul 01 15:09:56 2014 +0200
@@ -50,44 +50,56 @@
             DiagramGenerator generator,
             ArtifactAndFacet bundle,
             ThemeDocument    theme,
-            boolean          visible) {
+            boolean          visible
+    ) {
         CallContext context = generator.getCallContext();
         Object data = bundle.getData(context);
         Map<String, String> metaData =
             bundle.getFacet().getMetaData(bundle.getArtifact(), context);
         yAxisLabel = metaData.get("Y");
-        if (data instanceof BedDiffYearResult) {
-            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;
-
-            StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
-            series.putMetaData(metaData, bundle.getArtifact(), context);
-            StyledSeriesBuilder.addPointsFactorY(series,
-                bData.getDifferencesData(),
-                false,
-                GAP_TOLERANCE,
-                100d);
-
-            generator.addAxisSeries(series, axisName, visible);
-
+        if (!(data instanceof double[][])) {
+            logger.error("Can't process " + data.getClass().getName() + " objects");
             return;
         }
-        logger.error("Can't process " + data.getClass().getName() + " objects");
+
+        setSubtitleRadius(generator, bundle, context);
+
+        double[][] bData = (double[][]) data;
+
+        StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme);
+        series.putMetaData(metaData, bundle.getArtifact(), context);
+        StyledSeriesBuilder.addPointsFactorY(series,
+            bData,
+            false,
+            GAP_TOLERANCE,
+            100d);
+
+        generator.addAxisSeries(series, axisName, visible);
+
+        return;
+    }
+
+    private void setSubtitleRadius(
+        DiagramGenerator generator,
+        ArtifactAndFacet bundle,
+        CallContext context
+    ) {
+        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 }));
+        }
     }
 
     @Override

http://dive4elements.wald.intevation.org