Mercurial > dive4elements > river
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