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()){

http://dive4elements.wald.intevation.org