Mercurial > dive4elements > river
changeset 7689:4374a8d26706
(issue1225) Unify "Width" processor
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 13 Dec 2013 15:39:05 +0100 |
parents | 9509359c8db8 |
children | 4bbd222e6b7f |
files | artifacts/doc/conf/longitudinal-diagram-defaults.xml artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightSoundingProcessor.java artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java |
diffstat | 3 files changed, 21 insertions(+), 104 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/doc/conf/longitudinal-diagram-defaults.xml Thu Dec 12 16:26:21 2013 +0100 +++ b/artifacts/doc/conf/longitudinal-diagram-defaults.xml Fri Dec 13 15:39:05 2013 +0100 @@ -5,7 +5,6 @@ <axis name="deltaW"/> <axis name="diffBed"/> <axis name="diffBed/Y"/> - <axis name="SoundingWidth"/> <axis name="Width"/> <axis name="Diameter"/> <axis name="Density"/> @@ -26,7 +25,6 @@ <processor class="org.dive4elements.river.exports.process.WDiffProcessor" axis="diffW"/> <processor class="org.dive4elements.river.exports.process.WOutProcessor" axis="W"/> <processor class="org.dive4elements.river.exports.process.QOutProcessor" axis="Q"/> - <processor class="org.dive4elements.river.exports.process.BedHeightSoundingProcessor" axis="SoundingWidth"/> <processor class="org.dive4elements.river.exports.process.BedWidthProcessor" axis="Width"/> <processor class="org.dive4elements.river.exports.process.FixDeltaWProcessor" axis="diffBed"/> <processor class="org.dive4elements.river.exports.process.BedDiffYearProcessor" axis="diffBed"/>
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightSoundingProcessor.java Thu Dec 12 16:26:21 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde - * Software engineering by Intevation GmbH - * - * This file is Free Software under the GNU AGPL (>=v3) - * and comes with ABSOLUTELY NO WARRANTY! Check out the - * documentation coming with Dive4Elements River for details. - */ - -package org.dive4elements.river.exports.process; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.jfree.data.xy.XYSeries; - -import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; -import org.dive4elements.artifacts.CallContext; -import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData; -import org.dive4elements.river.artifacts.model.FacetTypes; -import org.dive4elements.river.exports.XYChartGenerator; -import org.dive4elements.river.exports.DiagramGenerator; -import org.dive4elements.river.jfree.StyledXYSeries; -import org.dive4elements.river.model.BedHeightSingleValue; -import org.dive4elements.river.themes.ThemeDocument; - -public class BedHeightSoundingProcessor extends DefaultProcessor { - - private final static Logger logger = - Logger.getLogger(BedHeightSoundingProcessor.class); - - public static final String I18N_AXIS_LABEL_DEFAULT - = "Gepeilte Breite [m]"; - public static final String I18N_AXIS_LABEL = - "chart.bedheight_middle.sounding.yaxis.label"; - - @Override - public void doOut( - DiagramGenerator generator, - ArtifactAndFacet bundle, - ThemeDocument theme, - boolean visible) { - XYSeries series = prepareSeries(bundle, theme, generator.getCallContext()); - generator.addAxisSeries(series, axisName, visible); - } - - @Override - public void doOut( - XYChartGenerator generator, - ArtifactAndFacet bundle, - ThemeDocument theme, - boolean visible, - int index - ) { - XYSeries series = prepareSeries(bundle, theme, generator.getCallContext()); - generator.addAxisSeries(series, index, visible); - } - - /** Prepare an series, independent of axis. */ - private XYSeries prepareSeries(ArtifactAndFacet bundle, - ThemeDocument theme, CallContext context) { - Object data = bundle.getData(context); - XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), - theme); - if (data instanceof BedHeightSingleData) { - BedHeightSingleData bData = (BedHeightSingleData)data; - double[] width = bData.getMorphWidths(); - double[] stations = bData.getStations().toNativeArray(); - - logger.debug("doBedheightSingleOut"); - - for (int i = 0; i < width.length; i++) { - series.add(stations[i], width[i], false); - } - } else if (data instanceof List<?>) { - List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data; - - logger.debug("doBedheightSingleValueOut"); - - for(BedHeightSingleValue bvalue: bData) { - series.add(bvalue.getStation(), bvalue.getSoundingWidth()); - } - } - else { - logger.error("Unknown data type " + data.getClass()); - } - return series; - } - - - @Override - public boolean canHandle(String facettype) { - return FacetTypes.BEDHEIGHT_SOUNDING_WIDTH.equals(facettype); - } - - @Override - public String getAxisLabel(DiagramGenerator generator) { - return generator.msg( - I18N_AXIS_LABEL, - I18N_AXIS_LABEL_DEFAULT); - } -}
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java Thu Dec 12 16:26:21 2013 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedWidthProcessor.java Fri Dec 13 15:39:05 2013 +0100 @@ -11,6 +11,8 @@ import org.apache.log4j.Logger; import org.jfree.data.xy.XYSeries; +import java.util.List; + import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.artifacts.model.FacetTypes; @@ -20,6 +22,9 @@ import org.dive4elements.river.themes.ThemeDocument; import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult; +import org.dive4elements.river.model.BedHeightSingleValue; +import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData; + import org.dive4elements.river.artifacts.model.minfo.MorphologicWidth; public class BedWidthProcessor extends DefaultProcessor { @@ -49,6 +54,20 @@ } else if (data instanceof MorphologicWidth) { MorphologicWidth bData = (MorphologicWidth) data; StyledSeriesBuilder.addPoints(series, bData.getAsArray(), true); + } else if (data instanceof BedHeightSingleData) { + BedHeightSingleData bData = (BedHeightSingleData)data; + double[] width = bData.getMorphWidths(); + double[] stations = bData.getStations().toNativeArray(); + + for (int i = 0; i < width.length; i++) { + series.add(stations[i], width[i], false); + } + } else if (data instanceof List<?>) { + List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data; + + for(BedHeightSingleValue bvalue: bData) { + series.add(bvalue.getStation(), bvalue.getSoundingWidth()); + } } else { logger.error("Unknown data for facet: " + bundle.getFacetName()); } @@ -59,7 +78,8 @@ @Override public boolean canHandle(String facettype) { return facettype.equals(FacetTypes.BED_DIFFERENCE_MORPH_WIDTH) || - facettype.equals(FacetTypes.MORPHOLOGIC_WIDTH); + facettype.equals(FacetTypes.MORPHOLOGIC_WIDTH) || + facettype.equals(FacetTypes.BEDHEIGHT_SOUNDING_WIDTH); } @Override