Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/DischargeGenerator.java @ 8346:31272d799dad
Removed obsolete imports.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 01 Oct 2014 11:07:52 +0200 |
parents | ac7cb15e1946 |
children | a82f24b773e7 |
line wrap: on
line source
/* Copyright (C) 2014 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; import java.awt.Font; import org.apache.log4j.Logger; import org.dive4elements.river.exports.injector.InjectorConstants; import org.dive4elements.river.jfree.AxisDataset; import org.dive4elements.river.jfree.DoubleBounds; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.data.Range; public class DischargeGenerator extends DiagramGenerator implements InjectorConstants { private static Logger log = Logger.getLogger(DischargeGenerator.class); public DischargeGenerator() { } @Override public void addDatasets(XYPlot plot) { super.addDatasets(plot); Object pnp = context.getContextValue(PNP); if (!(pnp instanceof Number)) { return; } double pnpValue = ((Number)pnp).doubleValue(); int wAxisIndex = diagramAttributes.getAxisIndex("W"); if (wAxisIndex == -1) { log.warn("No W axis found."); return; } AxisDataset data = datasets.get(wAxisIndex); if (data == null) { // No W axis return; } if (data.getRange() == null) { // No active datasets return; } Range axisRange = inCm( plot.getRangeAxis(wAxisIndex).getRange(), pnpValue ); Range dataRange = inCm(data.getRange(), pnpValue); // Do we have an index for W in cm? NumberAxis wInCmAxis = createWinCMAxis(wAxisIndex); wInCmAxis.setRange(axisRange); int wInCmAxisIndex = plot.getRangeAxisCount(); plot.setRangeAxis(wInCmAxisIndex, wInCmAxis); combineYBounds(new DoubleBounds(dataRange), wInCmAxisIndex); } private static Range inCm(Range r, double pnpValue) { double l = r.getLowerBound(); double u = r.getUpperBound(); l = (l - pnpValue)*100d; u = (u - pnpValue)*100d; return new Range(l, u); } private NumberAxis createWinCMAxis(int wAxisIndex) { Font labelFont = new Font( DEFAULT_FONT_NAME, Font.BOLD, getYAxisFontSize(wAxisIndex)); String axisName = "W.in.cm"; // TODO: I18N IdentifiableNumberAxis axis = new IdentifiableNumberAxis( axisName, "W.in.cm"); axis.setAutoRangeIncludesZero(false); axis.setLabelFont(labelFont); axis.setTickLabelFont(labelFont); return axis; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :