[Commits] r284 - in core/trunk/geoext: lib/GeoExt/widgets tests/lib/GeoExt/widgets

commits at geoext.org commits at geoext.org
Thu Mar 26 22:45:45 CET 2009


Author: tschaub
Date: 2009-03-26 22:45:45 +0100 (Thu, 26 Mar 2009)
New Revision: 284

Modified:
   core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
   core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html
Log:
Allowing array values for extent and center properties in MapPanel config.  r=elemoine (closes #31)

Modified: core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js	2009-03-26 21:43:28 UTC (rev 283)
+++ core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js	2009-03-26 21:45:45 UTC (rev 284)
@@ -110,9 +110,13 @@
         
         if(typeof this.center == "string") {
             this.center = OpenLayers.LonLat.fromString(this.center);
+        } else if(this.center instanceof Array) {
+            this.center = new OpenLayers.LonLat(this.center[0], this.center[1]);
         }
         if(typeof this.extent == "string") {
             this.extent = OpenLayers.Bounds.fromString(this.extent);
+        } else if(this.extent instanceof Array) {
+            this.extent = OpenLayers.Bounds.fromArray(this.extent);
         }
         
         GeoExt.MapPanel.superclass.initComponent.call(this);       
@@ -137,7 +141,8 @@
         GeoExt.MapPanel.superclass.onRender.apply(this, arguments);
         this.map.render(this.body.dom);
         if(this.map.layers.length > 0) {
-            if(this.center && this.zoom) {
+            if(this.center) {
+                // zoom does not have to be defined
                 this.map.setCenter(this.center, this.zoom);
             }  else if(this.extent) {
                 this.map.zoomToExtent(this.extent);

Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html	2009-03-26 21:43:28 UTC (rev 283)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html	2009-03-26 21:45:45 UTC (rev 284)
@@ -42,6 +42,97 @@
             t.eq(mapPanel.map.getZoom(), 4, "Zoom set correctly");
         }
 
+        function test_extent(t) {
+            
+            t.plan(3);
+            var map, panel, log = {};
+            
+            map = createMap();
+            map.zoomToExtent = function(extent) {
+                log.extent = extent;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                extent: [1, 2, 3, 4]
+            });            
+            t.eq(log.extent.toArray(), [1, 2, 3, 4], "map extent set with array");
+            delete log.extent;
+            panel.destroy();
+            
+            map = createMap();
+            map.zoomToExtent = function(extent) {
+                log.extent = extent;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                extent: "1, 2, 3, 4"
+            });
+            t.eq(log.extent.toArray(), [1, 2, 3, 4], "map extent set with string");
+            panel.destroy();
+            
+            map = createMap();
+            map.zoomToExtent = function(extent) {
+                log.extent = extent;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                extent: new OpenLayers.Bounds(1, 2, 3, 4)
+            });
+            t.eq(log.extent.toArray(), [1, 2, 3, 4], "map extent set with Bounds");
+            panel.destroy();            
+            
+        }
+        
+        function test_center(t) {
+
+            t.plan(3);
+            var map, panel, log = {};
+            
+            map = createMap();
+            map.setCenter = function(center) {
+                log.center = center;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                center: [1, 2]
+            });            
+            t.eq(log.center.toString(), "lon=1,lat=2", "map center set with array");
+            delete log.center;
+            panel.destroy();
+
+            map = createMap();
+            map.setCenter = function(center) {
+                log.center = center;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                center: "1, 2"
+            });            
+            t.eq(log.center.toString(), "lon=1,lat=2", "map center set with string");
+            delete log.center;
+            panel.destroy();
+
+            map = createMap();
+            map.setCenter = function(center) {
+                log.center = center;
+            }
+            panel = new GeoExt.MapPanel({
+                renderTo: "mappanel",
+                map: map,
+                center: new OpenLayers.LonLat(1, 2)
+            });            
+            t.eq(log.center.toString(), "lon=1,lat=2", "map center set with LonLat");
+            delete log.center;
+            panel.destroy();
+
+        }
+
+
     </script>
   <body>
     <div id="mappanel"></div>



More information about the Commits mailing list