[Commits] r2568 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data

commits at geoext.org commits at geoext.org
Wed Jan 19 10:35:14 CET 2011


Author: pgiraud
Date: 2011-01-19 10:35:14 +0100 (Wed, 19 Jan 2011)
New Revision: 2568

Modified:
   core/trunk/geoext/lib/GeoExt/data/PrintProvider.js
   core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html
Log:
Taking the real layer order into account when sending request to a print service, p=me,ahocevar, r=ahocevar, (Closes #398)

Modified: core/trunk/geoext/lib/GeoExt/data/PrintProvider.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/PrintProvider.js	2011-01-18 05:04:49 UTC (rev 2567)
+++ core/trunk/geoext/lib/GeoExt/data/PrintProvider.js	2011-01-19 09:35:14 UTC (rev 2568)
@@ -403,7 +403,13 @@
 
         var pagesLayer = pages[0].feature.layer;
         var encodedLayers = [];
-        Ext.each(map.layers, function(layer){
+
+        // ensure that the baseLayer is the first one in the encoded list
+        var layers = map.layers.concat();
+        layers.remove(map.baseLayer);
+        layers.unshift(map.baseLayer);
+
+        Ext.each(layers, function(layer){
             if(layer !== pagesLayer && layer.getVisibility() === true) {
                 var enc = this.encodeLayer(layer);
                 enc && encodedLayers.push(enc);

Modified: core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html	2011-01-18 05:04:49 UTC (rev 2567)
+++ core/trunk/geoext/tests/lib/GeoExt/data/PrintProvider.html	2011-01-19 09:35:14 UTC (rev 2568)
@@ -221,6 +221,78 @@
             printPage.destroy();
             map.destroy();
         }
+
+        function test_layerOrder(t) {
+            t.plan(1);
+            var log = {};
+            var printProvider = new GeoExt.data.PrintProvider({
+                capabilities: printCapabilities
+            });
+            var printPage = new GeoExt.data.PrintPage({
+                printProvider: printProvider
+            });
+            var map = new OpenLayers.Map("map");
+
+            // layers to test all supported layer encoders
+            var layers = [
+                // this layer is intentionally put first even though it's not
+                // a base layer, so we can verify that overlays are printed on
+                // top of the base layer
+                new OpenLayers.Layer.WMS("wms", "http://demo.opengeo.org/geoserver/wms", {
+                    layers: ["topp:tasmania_water_bodies"], format: "image/gif"
+                }, {
+                    isBaseLayer: false
+                }),
+                new OpenLayers.Layer.WMS("wms", "http://demo.opengeo.org/geoserver/wms", {
+                    layers: ["topp:tasmania_state_boundaries"], format: "image/gif"
+                })
+            ];
+            map.addLayers(layers);
+
+            map.setCenter(new OpenLayers.LonLat(1, 2), 3);
+            printPage.fit(map);
+            
+            var origRequest = Ext.Ajax.request;
+            Ext.Ajax.request = function(req) {
+                log.request = req;
+            }
+            printProvider.print(map, [printPage]);
+            Ext.Ajax.request = origRequest;
+            
+            var expect = {
+                "units": "degrees",
+                "srs": "EPSG:4326",
+                "layout": "A4 portrait",
+                "dpi": 75,
+                "layers": [{
+                    "baseURL": "http://demo.opengeo.org/geoserver/wms",
+                    "opacity": 1,
+                    "singleTile": false,
+                    "type": "WMS",
+                    "layers": ["topp:tasmania_state_boundaries"],
+                    "format": "image/gif",
+                    "styles": [""]
+                },{
+                    "baseURL": "http://demo.opengeo.org/geoserver/wms",
+                    "opacity": 1,
+                    "singleTile": false,
+                    "type": "WMS",
+                    "layers": ["topp:tasmania_water_bodies"],
+                    "format": "image/gif",
+                    "styles": [""]
+                }],
+                "pages": [{
+                    "center": [1, 2],
+                    "scale": 4000000,
+                    "rotation": 0
+                }]
+            };
+
+            t.eq(log.request.jsonData, expect, "Request with encoded layers and legend is correct.");
+            
+            printPage.destroy();
+            map.destroy();
+        }
     </script>
   </head>  
   <body>



More information about the Commits mailing list