felix@7214: /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde felix@7214: * Software engineering by Intevation GmbH felix@7214: * felix@7214: * This file is Free Software under the GNU AGPL (>=v3) felix@7214: * and comes with ABSOLUTELY NO WARRANTY! Check out the felix@7214: * documentation coming with Dive4Elements River for details. felix@7214: */ felix@7214: felix@7214: package org.dive4elements.river.exports.process; felix@7214: felix@7214: import org.apache.log4j.Logger; felix@7214: import org.jfree.data.xy.XYSeries; felix@7214: felix@7214: import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; felix@7214: import org.dive4elements.artifacts.CallContext; felix@7214: felix@7214: import org.dive4elements.river.artifacts.model.FacetTypes; felix@7214: import org.dive4elements.river.artifacts.model.minfo.SedimentDensity; felix@7214: felix@7214: import org.dive4elements.river.exports.DiagramGenerator; felix@7214: import org.dive4elements.river.exports.StyledSeriesBuilder; felix@7214: import org.dive4elements.river.jfree.StyledXYSeries; felix@7214: import org.dive4elements.river.themes.ThemeDocument; felix@7214: felix@7214: felix@7214: /** Process Sediment Density data. */ felix@7214: public class SedimentDensityProcessor extends DefaultProcessor { felix@7214: felix@7214: /** Private logger. */ felix@7214: private final static Logger logger = felix@7214: Logger.getLogger(SedimentDensityProcessor.class); felix@7214: felix@7214: public static final String I18N_AXIS_LABEL_DEFAULT = felix@7214: "Sedimentdichte [t/m^3]"; felix@7214: public static final String I18N_AXIS_LABEL = felix@7214: "chart.yaxis.label.sedimentdensity"; felix@7214: felix@7214: @Override felix@7214: public void doOut( felix@7214: DiagramGenerator generator, felix@7214: ArtifactAndFacet bundle, felix@7214: ThemeDocument theme, felix@7214: boolean visible) { felix@7214: CallContext context = generator.getCallContext(); felix@7214: XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), felix@7214: theme); felix@7214: Object data = bundle.getData(context); felix@7214: String facetName = bundle.getFacetName(); felix@7214: double [][] points; felix@7214: felix@7214: if (facetName.equals(FacetTypes.SEDIMENT_DENSITY)) { felix@7214: points =((SedimentDensity) data).getDensities(2006); felix@7214: } else { felix@7214: logger.error("Unknown facet name: " + facetName); felix@7214: return; felix@7214: } felix@7214: StyledSeriesBuilder.addPoints(series, points, true); felix@7214: felix@7214: generator.addAxisSeries(series, axisName, visible); felix@7214: } felix@7214: felix@7214: @Override felix@7214: public boolean canHandle(String facettype) { felix@7214: return facettype.equals(FacetTypes.SEDIMENT_DENSITY); felix@7214: } felix@7214: felix@7214: @Override felix@7214: public String getAxisLabel(DiagramGenerator generator) { felix@7214: return generator.msg( felix@7214: I18N_AXIS_LABEL, felix@7214: I18N_AXIS_LABEL_DEFAULT); felix@7214: } felix@7214: }