diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java @ 450:20a480753ff9

Render labels in vertical cross section charts. gnv-artifacts/trunk@498 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 04 Jan 2010 02:49:42 +0000
parents c7ca2fce041f
children 79e80c289018
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java	Sun Jan 03 15:57:02 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/VerticalCrossSectionChart.java	Mon Jan 04 02:49:42 2010 +0000
@@ -2,6 +2,8 @@
 
 import java.util.Locale;
 
+import java.text.NumberFormat;
+
 import java.awt.Color;
 import java.awt.Paint;
 
@@ -54,6 +56,25 @@
         }
     } // class PalettePaintLookup
 
+    public static class LocalizedLabelGenerator
+    extends             PolygonRenderer.DefaultLabelGenerator
+    {
+        protected NumberFormat format;
+
+        public LocalizedLabelGenerator() {
+        }
+
+        public LocalizedLabelGenerator(NumberFormat format) {
+            this.format = format;
+        }
+
+        protected String toString(Object label) {
+            return label instanceof Number
+                ? format.format(((Number)label).doubleValue())
+                : super.toString(label);
+        }
+    } // class LocalizedLabelGenerator
+
     protected JFreeChart chart;
 
     protected AttributedXYColumns columns;
@@ -95,8 +116,13 @@
             }
         }
 
+        NumberFormat format = NumberFormat.getInstance(locale);
+        format.setMinimumFractionDigits(0);
+        format.setMaximumFractionDigits(2);
+
         PolygonRenderer renderer = new PolygonRenderer(
-            new PalettePaintLookup(palette));
+            new PalettePaintLookup(palette),
+            new LocalizedLabelGenerator(format));
 
         ValueAxis domainAxis = new NumberAxis(xAxis);
         ValueAxis rangeAxis  = new NumberAxis(yAxis);

http://dive4elements.wald.intevation.org