Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java @ 315:63f8b3fb7d9a
Localization of chart axis with locale which fits best to server and browser settings.
gnv-artifacts/trunk@373 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 26 Nov 2009 08:47:44 +0000 |
parents | f0f106c7b906 |
children | 22a6493e8460 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java Thu Nov 26 08:45:04 2009 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/AbstractXYLineChart.java Thu Nov 26 08:47:44 2009 +0000 @@ -1,13 +1,16 @@ package de.intevation.gnv.chart; import java.awt.Color; +import java.text.NumberFormat; import java.util.Collection; import java.util.Iterator; +import java.util.Locale; import org.apache.log4j.Logger; import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; +import org.jfree.chart.axis.Axis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.NumberTickUnit; import org.jfree.chart.axis.AxisLocation; @@ -36,6 +39,7 @@ protected abstract void initData(); protected abstract void addValue(Result row, Series series); protected abstract void addSeries(Series series, int idx); + protected abstract void localizeDomainAxis(Axis axis, Locale locale); protected abstract String createSeriesName( String breakPoint1, String breakPoint2, @@ -69,20 +73,25 @@ protected void prepareAxis(String seriesKey, int idx) { log.debug("prepare axis of xychart"); - XYPlot plot = chart.getXYPlot(); - NumberAxis axis = new NumberAxis(seriesKey); + + XYPlot plot = chart.getXYPlot(); + Axis xAxis = plot.getDomainAxis(); + NumberAxis yAxis = new NumberAxis(seriesKey); + + localizeDomainAxis(xAxis, locale); + localizeRangeAxis(yAxis, locale); if (seriesKey.contains("richtung")) { - axis.setTickUnit(new NumberTickUnit(30.0)); - axis.setUpperBound(360.0); - axis.setLowerBound(0.0); - plot.setRangeAxis(idx, axis); + yAxis.setTickUnit(new NumberTickUnit(30.0)); + yAxis.setUpperBound(360.0); + yAxis.setLowerBound(0.0); + plot.setRangeAxis(idx, yAxis); } else { - axis.setFixedDimension(10.0); - axis.setAutoRangeIncludesZero(false); - plot.setRangeAxis(idx, axis); - axis.configure(); + yAxis.setFixedDimension(10.0); + yAxis.setAutoRangeIncludesZero(false); + plot.setRangeAxis(idx, yAxis); + yAxis.configure(); } if (idx % 2 != 0) @@ -97,6 +106,20 @@ } + protected void localizeRangeAxis(Axis axis, Locale locale) { + if (locale == null) + return; + + log.debug( + "Set language of axis [" + axis.getLabel() + "] " + + "to " + locale.toString() + ); + + NumberFormat format = NumberFormat.getInstance(locale); + ((NumberAxis) axis).setNumberFormatOverride(format); + } + + protected String findValueTitle(Collection values, String id) { log.debug("find description of dataset"); @@ -104,7 +127,7 @@ Iterator it = values.iterator(); while (it.hasNext()) { KeyValueDescibeData data = (KeyValueDescibeData) it.next(); - + if (id.equals(data.getKey())) return data.getValue(); } @@ -112,4 +135,4 @@ return ""; } } -// vim:set ts=4 sw=4 si et sta sts=4 fenc=latin1 : +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :