diff flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java @ 1933:9e9cfc036a3f

Better use multiple axis feature in chart generators. flys-artifacts/trunk@3314 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 24 Nov 2011 11:03:33 +0000
parents 7c52e9cb2a72
children 21a4d2c677a1
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java	Thu Nov 24 10:59:40 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/exports/DurationCurveGenerator.java	Thu Nov 24 11:03:33 2011 +0000
@@ -1,5 +1,7 @@
 package de.intevation.flys.exports;
 
+import java.awt.Font;
+
 import org.w3c.dom.Document;
 
 import org.apache.log4j.Logger;
@@ -33,10 +35,18 @@
 extends      XYChartGenerator
 implements   FacetTypes
 {
+    public static enum YAXIS {
+        W(0),
+        Q(1);
+        protected int idx;
+        private YAXIS(int c) {
+           idx = c;
+        }
+    }
+
     private static Logger logger =
         Logger.getLogger(DurationCurveGenerator.class);
 
-
     public static final String I18N_DURATION_W =
         "chart.duration.curve.curve.w";
 
@@ -70,6 +80,27 @@
     }
 
 
+    /**
+     * Create Axis for given index.
+     * @return axis with according internationalized label.
+     */
+    @Override
+    protected NumberAxis createYAxis(int index) {
+        Font labelFont = new Font("Tahoma", Font.BOLD, 14);
+        String label = "default";
+        if (index == YAXIS.W.idx) {
+            label = getYAxisLabel();
+        }
+        else if (index == YAXIS.Q.idx) {
+            // TODO i18n for this label
+            label = "Q [m\u00b3/s]";
+            //label = msg(get2YAxisLabelKey(), get2YAxisDefaultLabel());
+        }
+        NumberAxis axis = new NumberAxis(label);
+        axis.setLabelFont(labelFont);
+        return axis;
+    }
+
     protected String getChartTitle() {
         return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT);
     }
@@ -113,15 +144,6 @@
     }
 
 
-    protected void adjustAxes(XYPlot plot) {
-        super.adjustAxes(plot);
-
-        NumberAxis qAxis = new NumberAxis("Q [m\u00b3/s]");
-
-        plot.setRangeAxis(1, qAxis);
-    }
-
-
     @Override
     public void doOut(
         Artifact artifact,
@@ -184,7 +206,7 @@
             series.add((double) day, w);
         }
 
-        addAxisSeries(series, 0, visible);
+        addAxisSeries(series, YAXIS.W.idx, visible);
     }
 
 
@@ -209,7 +231,7 @@
             series.add((double) day, q);
         }
 
-        addAxisSeries(series, 1, visible);
+        addAxisSeries(series, YAXIS.Q.idx, visible);
     }
 
 

http://dive4elements.wald.intevation.org