Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java @ 30:07e9c137a2f1
Added dynamic Outputparameter Support and Outputparameter-manipulation
gnv/trunk@134 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 25 Sep 2009 14:24:08 +0000 |
parents | bba8fd97e549 |
children | 25fdec8b4c69 |
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java Fri Sep 25 07:28:49 2009 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/action/ChangeOptionsAction.java Fri Sep 25 14:24:08 2009 +0000 @@ -3,6 +3,9 @@ */ package de.intevation.gnv.action; +import java.util.Collection; +import java.util.Iterator; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -12,11 +15,14 @@ import org.apache.struts.action.ActionMapping; import org.w3c.dom.Node; +import de.intevation.gnv.action.sessionmodel.DiagrammOptions; import de.intevation.gnv.action.sessionmodel.SessionModel; import de.intevation.gnv.action.sessionmodel.SessionModelFactory; import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient; import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; +import de.intevation.gnv.artifactdatabase.objects.OutputMode; +import de.intevation.gnv.artifactdatabase.objects.OutputParameter; import de.intevation.gnv.util.XMLUtils; import de.intevation.gnv.util.XSLTransformer; @@ -42,10 +48,26 @@ throws Exception { log.debug("NextArtifactStepAction.execute"); SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request); - ArtifactDescription ad = (ArtifactDescription)sm.getCurrentArtifact(); + + String target = request.getParameter("target"); + OutputMode outputMode = sm.getOutputMode(target); + if (outputMode != null){ + + Collection<OutputParameter> op = outputMode.getOutputParameters(); + if (op != null){ + Iterator<OutputParameter> it = op.iterator(); + DiagrammOptions diagrammOptions = new DiagrammOptions(); + while (it.hasNext()){ + OutputParameter parameter = it.next(); + diagrammOptions.setValue(parameter.getName(), request.getParameter(parameter.getName())); + + } + sm.setDiagrammOptions(diagrammOptions); + } + } + + ArtifactDescription ad = sm.getArtifactDescription(); ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient(); - - ArtifactDescription artifactDescription = adc.getCurrentStepDescription(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact()); Node currentUI = artifactDescription.getCurrentUI(); @@ -56,7 +78,6 @@ String staticUI = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "static"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui-static.xsl")); request.setAttribute("staticui", staticUI); - request.setAttribute("furthertargets", (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty())); if (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()){