diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeState.java @ 2705:71f072d8b3d8

Improved the MultiIntArrayState, so the clients are able to display human readable strings for parameters and its values. flys-artifacts/trunk@4422 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 16 May 2012 10:52:12 +0000
parents 1bc35de0b786
children 4a76da133144
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeState.java	Wed May 16 09:18:10 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DischargeState.java	Wed May 16 10:52:12 2012 +0000
@@ -5,6 +5,7 @@
 import org.apache.log4j.Logger;
 
 import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
 
 import de.intevation.artifacts.common.model.KVP;
 
@@ -76,6 +77,34 @@
     }
 
 
+    @Override
+    protected String getLabelFor(
+        CallContext cc,
+        String      parameterName,
+        int         value
+    ) throws IllegalArgumentException
+    {
+        if (!testParameterName(parameterName)) {
+            throw new IllegalArgumentException(
+                "Invalid parameter for state: '" + parameterName + "'");
+        }
+
+        DischargeZone zone = DischargeZone.getDischargeZoneById(value);
+
+        if (zone == null) {
+            throw new IllegalArgumentException(
+                "Invalid id for DischargeZone: '" + value + "'");
+        }
+
+        String lo = zone.getLowerDischarge();
+        String hi = zone.getUpperDischarge();
+
+        return hi != null && lo.equals(hi)
+            ? lo + " - " + hi
+            : lo;
+    }
+
+
     /**
      * This method might be used to test, if a parameter name is handled by this
      * state.

http://dive4elements.wald.intevation.org