diff flys-artifacts/src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java @ 3871:a65eb6d44122

i18n for area label (fix issue487). flys-artifacts/trunk@5504 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 18 Sep 2012 12:03:15 +0000
parents 2a8919e0ed28
children d12f108ccc9c
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java	Tue Sep 18 10:18:30 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java	Tue Sep 18 12:03:15 2012 +0000
@@ -121,8 +121,11 @@
 
 import gnu.trove.TDoubleArrayList;
 
+import de.intevation.flys.artifacts.resources.Resources;
 import de.intevation.flys.artifacts.math.Linear;
 
+import java.text.NumberFormat;
+
 import org.apache.log4j.Logger;
 
 /**
@@ -179,6 +182,12 @@
     /** Font to draw label of calculated area with. */
     protected Font labelFont;
 
+    /** Template to create i18ned label for area. */
+    protected String areaLabelTamplate;
+
+    /** NumberFormat to use for area. */
+    protected NumberFormat areaLabelNumberFormat;
+
     protected int areaCalculationMode;
 
     protected double positiveArea;
@@ -260,6 +269,18 @@
         this.areaCalculationMode = areaCalculationMode;
     }
 
+
+    /** Set template to use to create area label (e.g. 'Area=%dm2'). */
+    public void setAreaLabelTemplate(String areaTemplate) {
+        this.areaLabelTamplate = areaTemplate;
+    }
+
+
+    public void setAreaLabelNumberFormat(NumberFormat nf) {
+        this.areaLabelNumberFormat = nf;
+    }
+
+
     public boolean isLabelArea() {
         return this.labelArea;
     }
@@ -880,8 +901,7 @@
         }
 
         // Find geometric middle, calculate area and paint a string with it here.
-        // TODO also i18n
-        if (pass == 1 && this.labelArea) {
+        if (pass == 1 && this.labelArea && areaLabelNumberFormat != null && areaLabelTamplate != null) {
             double center_x = centroid.getX();
             double center_y = centroid.getY();
             center_x = domainAxis.valueToJava2D(center_x, dataArea,
@@ -904,7 +924,8 @@
                 Color oldColor = g2.getColor();
                 Font oldFont = g2.getFont();
                 g2.setFont(labelFont);
-                String labelText = "Area= " + area + "m2";
+                String labelText = String.format(this.areaLabelTamplate,
+                    areaLabelNumberFormat.format(area));
                 if (labelBGColor != null) {
                     EnhancedLineAndShapeRenderer.drawTextBox(g2, labelText,
                         (float)center_x, (float)center_y, labelBGColor);

http://dive4elements.wald.intevation.org