Mercurial > dive4elements > river
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.