diff flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java @ 4474:bd78d2b0e309

Map print settings can now be configured via settings window. Configurable for now are page layout (A0 or A4), caption text and comment text.
author Christian Lins <christian.lins@intevation.de>
date Sun, 11 Nov 2012 14:44:12 +0100
parents 6db783627137
children f8ed8114f415
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java	Sat Nov 10 23:47:38 2012 +0100
+++ b/flys-client/src/main/java/de/intevation/flys/client/server/MapPrintServiceImpl.java	Sun Nov 11 14:44:12 2012 +0100
@@ -19,6 +19,7 @@
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -124,10 +125,11 @@
         MapConfig mapConfig,
         Double minX, Double minY,
         Double maxX, Double maxY,
-        Map<String, Object> settings
+        Map<String, Object> pageSpecs
     ) {
         Map<String, Object> spec = new LinkedHashMap<String, Object>();
-        spec.put("layout",       "A4 portrait");
+        spec.put("pageSize",     "A4");
+        spec.put("landscape",    "false");
         spec.put("title",        "FLYS Druck");
         spec.put("srs",          "EPSG:" + mapConfig.getSrid());
         spec.put("dpi",          Integer.valueOf(254));
@@ -135,6 +137,8 @@
         spec.put("geodaetic",    "true");
         spec.put("outputFormat", "pdf");
 
+        spec.putAll(pageSpecs);
+
         String ns = ArtifactNamespaceContext.NAMESPACE_URI;
 
         List<Layer> ls = new ArrayList<Layer>();
@@ -187,7 +191,7 @@
         page.put("rotation", Integer.valueOf(0));
 
         // This may overwrite default settings above
-        page.putAll(settings);
+        page.putAll(pageSpecs);
 
         pages.add(page);
         spec.put("pages", pages);
@@ -256,9 +260,15 @@
         }
 
         // Retrieve print settings from request
-        Map<String, Object> settings = new HashMap<String, Object>();
-        String pageTitle = req.getParameter("page-title");
-        settings.put("mapTitle", pageTitle);
+        Map<String, Object> pageSpecs = new HashMap<String, Object>();
+        Enumeration<String> paramNames = req.getParameterNames();
+        while (paramNames.hasMoreElements()) {
+            String paramName = paramNames.nextElement();
+            if (paramName.startsWith("mapfish-")) {
+                String paramValue = req.getParameter(paramName);
+                pageSpecs.put(paramName.substring(8), paramValue);
+            }
+        }
 
         String url = getURL();
 
@@ -325,7 +335,7 @@
             mapConfig,
             minX, minY,
             maxX, maxY,
-            settings);
+            pageSpecs);
 
         if (log.isDebugEnabled()) {
             log.debug("Generated spec:");

http://dive4elements.wald.intevation.org