# HG changeset patch # User Ingo Weinzierl # Date 1324653013 0 # Node ID 2d5f2bc68cc630bd18282e7e02cb25f3255c6893 # Parent 3157a78e6494a1695fbbdb1c7eadc879efa38b16 Centralized the creation of new NumberAxis - new NumberAxis instances in FLYS will be from type IdentifiableNumberAxis which subclasses JFreeChart's NumberAxis. flys-artifacts/trunk@3539 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Fri Dec 23 14:24:57 2011 +0000 +++ b/flys-artifacts/ChangeLog Fri Dec 23 15:10:13 2011 +0000 @@ -1,3 +1,19 @@ +2011-12-23 Ingo Weinzierl + + * src/main/java/de/intevation/flys/exports/IdentifiableNumberAxis.java: New. + Subclasses JFreeChart's NumberAxis and offers a getId() method which + returns an identifiable key. + + * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: Implements + a createNumberAxis() method that should be used by all subclasses to + create new axes. This method returns an instance of IdentifiableNumberAxis + which is required for zooming. + + * src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java, + src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java, + src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java: + Create new NumberAxis instances by using XYChartGenerator.createNumberAxis(). + 2011-12-23 Ingo Weinzierl * src/main/java/de/intevation/flys/exports/XYChartGenerator.java: diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java Fri Dec 23 14:24:57 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java Fri Dec 23 15:10:13 2011 +0000 @@ -138,7 +138,7 @@ if (index == YAXIS.W.idx) { label = getYAxisLabel(); } - NumberAxis axis = new NumberAxis(label); + NumberAxis axis = createNumberAxis(index, label); axis.setLabelFont(labelFont); axis.setAutoRangeIncludesZero(false); return axis; diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java Fri Dec 23 14:24:57 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java Fri Dec 23 15:10:13 2011 +0000 @@ -86,7 +86,7 @@ Font labelFont = new Font("Tahoma", Font.BOLD, 14); String label = getYAxisLabel(index); - NumberAxis axis = new NumberAxis(label); + NumberAxis axis = createNumberAxis(index, label); if (index == YAXIS.W.idx) { axis.setAutoRangeIncludesZero(false); } diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/src/main/java/de/intevation/flys/exports/IdentifiableNumberAxis.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/IdentifiableNumberAxis.java Fri Dec 23 15:10:13 2011 +0000 @@ -0,0 +1,22 @@ +package de.intevation.flys.exports; + +import org.jfree.chart.axis.NumberAxis; + + +public class IdentifiableNumberAxis extends NumberAxis { + + + protected String key; + + + protected IdentifiableNumberAxis(String key, String label) { + super(label); + this.key = key; + } + + + public String getId() { + return key; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Fri Dec 23 14:24:57 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/LongitudinalSectionGenerator.java Fri Dec 23 15:10:13 2011 +0000 @@ -221,7 +221,7 @@ Font labelFont = new Font("Tahoma", Font.BOLD, 14); String label = getYAxisLabel(index); - NumberAxis axis = new NumberAxis(label); + NumberAxis axis = createNumberAxis(index, label); // "Q" Axis shall include 0. if (index == YAXIS.Q.idx) { axis.setAutoRangeIncludesZero(true); diff -r 3157a78e6494 -r 2d5f2bc68cc6 flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java --- a/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Fri Dec 23 14:24:57 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java Fri Dec 23 15:10:13 2011 +0000 @@ -668,6 +668,11 @@ for (int i = 0, num = plot.getRangeAxisCount(); i < num; i++) { ValueAxis yaxis = plot.getRangeAxis(i); + if (yaxis instanceof IdentifiableNumberAxis) { + logger.info("!!! IdentifiableNumberAxis found !!!"); + // TODO Watch for fixed axes and the specified range + } + if (yaxis == null) { logger.debug("Zoom problem: no Y Axis for index: " + i); continue; @@ -1067,6 +1072,21 @@ /** + * Creates a new instance of IdentifiableNumberAxis. + * + * @param idx The index of the new axis. + * @param label The label of the new axis. + * + * @return an instance of IdentifiableNumberAxis. + */ + protected NumberAxis createNumberAxis(int idx, String label) { + YAxisWalker walker = getYAxisWalker(); + + return new IdentifiableNumberAxis(walker.getId(idx), label); + } + + + /** * Returns an instance of ChartSettings with a chart specific section * but with no axes settings. *