# HG changeset patch # User Ingo Weinzierl # Date 1302788166 0 # Node ID 89bd0417418fa8c8230ecea2875a3e2169faa452 # Parent 0c6328c227f104e684f9191c618e3fceb42a0aed The location/distance state now writes default values into DESCRIBE. flys-artifacts/trunk@1697 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/ChangeLog Thu Apr 14 13:36:06 2011 +0000 @@ -1,3 +1,17 @@ +2011-04-14 Ingo Weinzierl + + * src/main/java/de/intevation/flys/artifacts/states/DefaultState.java: + Changed some method signatures - added a reference to the owner + Artifact. + + * src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java, + src/main/java/de/intevation/flys/artifacts/states/WQSelect.java, + src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java: + Modified method signatures based on the changes in DefaultState. + + * src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java: + Added default values to the dynamic part of DESCRIBE. + 2011-04-14 Ingo Weinzierl * src/main/java/de/intevation/flys/artifacts/model/RiverFactory.java: diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java Thu Apr 14 13:36:06 2011 +0000 @@ -4,6 +4,7 @@ import org.w3c.dom.Element; +import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; @@ -53,6 +54,7 @@ protected Element[] createItems( XMLUtils.ElementCreator cr, + Artifact artifact, String name, CallContext context) { diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DefaultState.java Thu Apr 14 13:36:06 2011 +0000 @@ -117,7 +117,7 @@ for (StateData data: dataItems) { String name = data.getName(); - Element select = createData(creator, data, context); + Element select = createData(creator, artifact, data, context); Element choices = ProtocolUtils.createArtNode( creator, "choices", null, null); @@ -125,7 +125,7 @@ select.appendChild(choices); ui.appendChild(select); - Element[] items = createItems(creator, name, context); + Element[] items = createItems(creator, artifact, name, context); for (Element item: items) { choices.appendChild(item); } @@ -146,6 +146,7 @@ */ protected Element createData( XMLUtils.ElementCreator cr, + Artifact artifact, StateData data, CallContext context) { @@ -178,6 +179,7 @@ */ protected abstract Element[] createItems( XMLUtils.ElementCreator cr, + Artifact artifact, String name, CallContext context); diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/LocationDistanceSelect.java Thu Apr 14 13:36:06 2011 +0000 @@ -4,6 +4,7 @@ import org.w3c.dom.Element; +import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils; @@ -11,6 +12,10 @@ import de.intevation.artifactdatabase.ProtocolUtils; import de.intevation.artifactdatabase.data.StateData; +import de.intevation.flys.model.River; + +import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.model.RiverFactory; import de.intevation.flys.artifacts.resources.Resources; /** @@ -33,6 +38,7 @@ protected Element createData( XMLUtils.ElementCreator cr, + Artifact artifact, StateData data, CallContext context) { @@ -60,17 +66,35 @@ protected Element[] createItems( XMLUtils.ElementCreator cr, + Artifact artifact, String name, CallContext context) { - // TODO Insert correct min/max values! + double[] minmax = getMinMaxDistance(artifact); + + double minVal = Double.MIN_VALUE; + double maxVal = Double.MAX_VALUE; + + if (minmax != null) { + minVal = minmax[0]; + maxVal = minmax[1]; + } + else { + logger.warn("Could not read min/max distance values!"); + } if (name.equals("ld_from")) { - Element min = createItem(cr, new String[] {"min", "1"}); + Element min = createItem( + cr, + new String[] {"min", new Double(minVal).toString()}); + return new Element[] { min }; } else if (name.equals("ld_to")) { - Element max = createItem(cr, new String[] {"max", "10"}); + Element max = createItem( + cr, + new String[] {"max", new Double(maxVal).toString()}); + return new Element[] { max }; } else { @@ -101,5 +125,19 @@ protected String getUIProvider() { return "location_distance_panel"; } + + + protected double[] getMinMaxDistance(Artifact artifact) { + FLYSArtifact flysArtifact = (FLYSArtifact) artifact; + StateData data = flysArtifact.getData("river"); + + String name = (String) data.getValue(); + + logger.debug("Search for the min/max distances of '" + name + "'"); + + River river = RiverFactory.getRiver(name); + + return river != null ? river.determineMinMaxDistance() : null; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java Thu Apr 14 13:36:06 2011 +0000 @@ -7,6 +7,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; +import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils; @@ -48,6 +49,7 @@ protected Element createData( XMLUtils.ElementCreator cr, + Artifact artifact, StateData data, CallContext context) { @@ -76,6 +78,7 @@ protected Element[] createItems( XMLUtils.ElementCreator cr, + Artifact artifact, String name, CallContext context) { diff -r 0c6328c227f1 -r 89bd0417418f flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQSelect.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQSelect.java Thu Apr 14 13:26:29 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQSelect.java Thu Apr 14 13:36:06 2011 +0000 @@ -4,6 +4,7 @@ import org.w3c.dom.Element; +import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.common.utils.XMLUtils; @@ -36,6 +37,7 @@ protected Element createData( XMLUtils.ElementCreator cr, + Artifact artifact, StateData data, CallContext context) { @@ -63,6 +65,7 @@ protected Element[] createItems( XMLUtils.ElementCreator cr, + Artifact artifact, String name, CallContext context) {