aheinecke@7102: /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde aheinecke@7102: * Software engineering by Intevation GmbH aheinecke@7102: * aheinecke@7102: * This file is Free Software under the GNU AGPL (>=v3) aheinecke@7102: * and comes with ABSOLUTELY NO WARRANTY! Check out the aheinecke@7102: * documentation coming with Dive4Elements River for details. aheinecke@7102: */ aheinecke@7102: aheinecke@7102: package org.dive4elements.river.exports.process; aheinecke@7102: rrenkert@7808: import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; rrenkert@7808: import org.dive4elements.artifacts.CallContext; rrenkert@7808: import org.dive4elements.river.artifacts.D4EArtifact; rrenkert@7808: import org.dive4elements.river.artifacts.access.RiverAccess; rrenkert@7808: import org.dive4elements.river.artifacts.context.RiverContext; aheinecke@7102: import org.dive4elements.river.artifacts.model.FacetTypes; rrenkert@7808: import org.dive4elements.river.artifacts.model.ZoomScale; rrenkert@7808: import org.dive4elements.river.artifacts.resources.Resources; aheinecke@7103: import org.dive4elements.river.exports.DiagramGenerator; rrenkert@7808: import org.dive4elements.river.themes.ThemeDocument; aheinecke@7102: aheinecke@7102: public class WDiffProcessor extends WOutProcessor { aheinecke@7102: aheinecke@7103: public final static String I18N_WDIFF_YAXIS_LABEL = aheinecke@7103: "chart.w_differences.yaxis.label"; aheinecke@7103: aheinecke@7103: public final static String I18N_WDIFF_YAXIS_LABEL_DEFAULT = "m"; aheinecke@7103: rrenkert@7808: public static final String I18N_SUBTITLE_RADIUS = rrenkert@7808: "chart.subtitle.radius"; rrenkert@7808: rrenkert@7808: @Override rrenkert@7808: public void doOut( rrenkert@7808: DiagramGenerator generator, rrenkert@7808: ArtifactAndFacet bundle, rrenkert@7808: ThemeDocument theme, rrenkert@7808: boolean visible) { rrenkert@7808: CallContext context = generator.getCallContext(); rrenkert@7808: Double start = (Double)context.getContextValue("startkm"); rrenkert@7808: Double end = (Double)context.getContextValue("endkm"); rrenkert@7808: if (start != null && end != null) { rrenkert@7808: D4EArtifact artifact = (D4EArtifact)bundle.getArtifact(); rrenkert@7808: RiverContext fc = (RiverContext)context.globalContext(); rrenkert@7808: // Adaptive smoothing, based on zoom factor/diagram extents. rrenkert@7808: ZoomScale scales = (ZoomScale)fc.get("zoomscale"); rrenkert@7808: RiverAccess access = new RiverAccess((D4EArtifact)artifact); rrenkert@7808: String river = access.getRiverName(); teichmann@8074: double radius = scales.getRadius(river, start, end); teichmann@8074: context.putContextValue("radius", radius); rrenkert@7808: rrenkert@7808: generator.addSubtitle(Resources.getMsg( rrenkert@7808: context.getMeta(), rrenkert@7808: I18N_SUBTITLE_RADIUS, rrenkert@7808: new Object[] { radius })); rrenkert@7808: } rrenkert@7808: super.doOut(generator, bundle, theme, visible); rrenkert@7808: } aheinecke@7102: @Override aheinecke@7102: public boolean canHandle(String facetType) { aheinecke@7102: if (facetType == null) { aheinecke@7102: return false; aheinecke@7102: } rrenkert@7793: return facetType.equals(FacetTypes.W_DIFFERENCES) || rrenkert@7793: facetType.equals(FacetTypes.W_DIFFERENCES_FILTERED); aheinecke@7102: } aheinecke@7103: aheinecke@7103: aheinecke@7103: @Override aheinecke@7103: public String getAxisLabel(DiagramGenerator generator) { aheinecke@7103: return generator.msg(I18N_WDIFF_YAXIS_LABEL, aheinecke@7103: I18N_WDIFF_YAXIS_LABEL_DEFAULT); aheinecke@7103: } aheinecke@7102: } aheinecke@7102: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :