diff gnv/src/main/java/de/intevation/gnv/action/WMSAction.java @ 585:2e690cb2247c

Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client. gnv/trunk@736 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 05 Mar 2010 09:33:30 +0000
parents cbd397712ecf
children ccd47d9887ec
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/action/WMSAction.java	Thu Mar 04 14:27:26 2010 +0000
+++ b/gnv/src/main/java/de/intevation/gnv/action/WMSAction.java	Fri Mar 05 09:33:30 2010 +0000
@@ -8,16 +8,26 @@
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
 
+import org.w3c.dom.Document;
+
 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.ArtifactObject;
+import de.intevation.gnv.util.XMLUtils;
 
 /**
  * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
  */
 public class WMSAction extends DescribeUIAction {
+
+    public static final String XPATH_MAPSERVER_PATH =
+        "/art:meta/art:mapserver/art:server/text()";
+
+    public static final String XPATH_MAPSERVER_MAPFILE =
+        "/art:meta/art:mapserver/art:map/text()";
+
     /**
      * the logger, used to log exceptions and additonaly information
      */
@@ -47,7 +57,14 @@
             ArtifactObject artifactfactory = sm.getSelectedArtifactFactory();
 
             // do wms publishing
-            String url = adc.publishWMS(artifactfactory, artifact);
+            Document meta        = adc.publishWMS(artifactfactory, artifact);
+            String mapserverPath = XMLUtils.getStringXPath(
+                meta, XPATH_MAPSERVER_PATH);
+            String mapfilePath   = XMLUtils.getStringXPath(
+                meta, XPATH_MAPSERVER_MAPFILE);
+
+            request.setAttribute("mapserver", mapserverPath);
+            request.setAttribute("mapfile", mapfilePath);
             request.setAttribute("layer", artifact.getId());
 
             return super.execute(mapping, form, request, response);

http://dive4elements.wald.intevation.org