Mercurial > dive4elements > river
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);