Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java @ 624:929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
flys-artifacts/trunk@1982 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 23 May 2011 15:11:55 +0000 |
parents | c21fb8de54f8 |
children | 40d3039f85ac |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java Mon May 23 14:32:17 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java Mon May 23 15:11:55 2011 +0000 @@ -1,6 +1,6 @@ package de.intevation.flys.artifacts.states; -import java.util.Collection; +import java.util.Iterator; import java.util.Map; import org.apache.log4j.Logger; @@ -20,6 +20,7 @@ import de.intevation.artifactdatabase.data.StateData; import de.intevation.artifactdatabase.state.AbstractState; +import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.resources.Resources; @@ -32,7 +33,13 @@ private static Logger logger = Logger.getLogger(DefaultState.class); + protected StateData getData(FLYSArtifact artifact, String name) { + return artifact.getData(name); + } + + public Element describeStatic( + Artifact artifact, Document document, Node root, CallContext context, @@ -56,11 +63,14 @@ return ui; } - Collection<StateData> dataItems = theData.values(); + Iterator<String> iter = theData.keySet().iterator(); + FLYSArtifact flys = (FLYSArtifact) artifact; - for (StateData data: dataItems) { - String name = data.getName(); - String value = (String) data.getValue(); + while (iter.hasNext()) { + String name = iter.next(); + StateData data = getData(flys, name); + + String value = data != null ? (String) data.getValue() : null; if (value == null) { continue; @@ -117,10 +127,15 @@ return ui; } - Collection<StateData> dataItems = theData.values(); + Iterator<String> iter = theData.keySet().iterator(); + FLYSArtifact flys = (FLYSArtifact) artifact; - for (StateData data: dataItems) { - String name = data.getName(); + while (iter.hasNext()) { + String name = iter.next(); + StateData data = getData(flys, name); + + data = data != null ? data : getData(name); + Element select = createData(creator, artifact, data, context); Element choices = ProtocolUtils.createArtNode(