Mercurial > dive4elements > gnv-client
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); |