comparison 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
comparison
equal deleted inserted replaced
29:bba8fd97e549 30:07e9c137a2f1
1 /** 1 /**
2 * 2 *
3 */ 3 */
4 package de.intevation.gnv.action; 4 package de.intevation.gnv.action;
5
6 import java.util.Collection;
7 import java.util.Iterator;
5 8
6 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse; 10 import javax.servlet.http.HttpServletResponse;
8 11
9 import org.apache.log4j.Logger; 12 import org.apache.log4j.Logger;
10 import org.apache.struts.action.ActionForm; 13 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward; 14 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping; 15 import org.apache.struts.action.ActionMapping;
13 import org.w3c.dom.Node; 16 import org.w3c.dom.Node;
14 17
18 import de.intevation.gnv.action.sessionmodel.DiagrammOptions;
15 import de.intevation.gnv.action.sessionmodel.SessionModel; 19 import de.intevation.gnv.action.sessionmodel.SessionModel;
16 import de.intevation.gnv.action.sessionmodel.SessionModelFactory; 20 import de.intevation.gnv.action.sessionmodel.SessionModelFactory;
17 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient; 21 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient;
18 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory; 22 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory;
19 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; 23 import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
24 import de.intevation.gnv.artifactdatabase.objects.OutputMode;
25 import de.intevation.gnv.artifactdatabase.objects.OutputParameter;
20 import de.intevation.gnv.util.XMLUtils; 26 import de.intevation.gnv.util.XMLUtils;
21 import de.intevation.gnv.util.XSLTransformer; 27 import de.intevation.gnv.util.XSLTransformer;
22 28
23 /** 29 /**
24 * @author Tim Englich <tim.englich@intevation.de> 30 * @author Tim Englich <tim.englich@intevation.de>
40 public ActionForward execute(ActionMapping mapping, ActionForm form, 46 public ActionForward execute(ActionMapping mapping, ActionForm form,
41 HttpServletRequest request, HttpServletResponse response) 47 HttpServletRequest request, HttpServletResponse response)
42 throws Exception { 48 throws Exception {
43 log.debug("NextArtifactStepAction.execute"); 49 log.debug("NextArtifactStepAction.execute");
44 SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request); 50 SessionModel sm = SessionModelFactory.getInstance().getSessionModel(request);
45 ArtifactDescription ad = (ArtifactDescription)sm.getCurrentArtifact(); 51
52 String target = request.getParameter("target");
53 OutputMode outputMode = sm.getOutputMode(target);
54 if (outputMode != null){
55
56 Collection<OutputParameter> op = outputMode.getOutputParameters();
57 if (op != null){
58 Iterator<OutputParameter> it = op.iterator();
59 DiagrammOptions diagrammOptions = new DiagrammOptions();
60 while (it.hasNext()){
61 OutputParameter parameter = it.next();
62 diagrammOptions.setValue(parameter.getName(), request.getParameter(parameter.getName()));
63
64 }
65 sm.setDiagrammOptions(diagrammOptions);
66 }
67 }
68
69 ArtifactDescription ad = sm.getArtifactDescription();
46 ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient(); 70 ArtifactDatabaseClient adc = ArtifactDatabaseClientFactory.getInstance().getArtifactDatabaseClient();
47
48
49 ArtifactDescription artifactDescription = adc.getCurrentStepDescription(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact()); 71 ArtifactDescription artifactDescription = adc.getCurrentStepDescription(sm.getSelectedArtifactFactory(), sm.getCurrentArtifact());
50 72
51 Node currentUI = artifactDescription.getCurrentUI(); 73 Node currentUI = artifactDescription.getCurrentUI();
52 XSLTransformer transformer = new XSLTransformer(); 74 XSLTransformer transformer = new XSLTransformer();
53 String ui = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "dynamic"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl")); 75 String ui = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "dynamic"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui.xsl"));
54 76
55 request.setAttribute("ui", ui); 77 request.setAttribute("ui", ui);
56 78
57 String staticUI = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "static"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui-static.xsl")); 79 String staticUI = transformer.transform(new XMLUtils().getNodeXPath(currentUI, "static"), "UTF-8", request.getRealPath("WEB-INF/config/templates/describe-ui-static.xsl"));
58 request.setAttribute("staticui", staticUI); 80 request.setAttribute("staticui", staticUI);
59
60 request.setAttribute("furthertargets", (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty())); 81 request.setAttribute("furthertargets", (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()));
61 82
62 if (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()){ 83 if (ad.getReachableStates() != null && !ad.getReachableStates().isEmpty()){
63 }else{ 84 }else{
64 request.setAttribute("diagramm", true); 85 request.setAttribute("diagramm", true);

http://dive4elements.wald.intevation.org