[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