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

commits at geoext.org commits at geoext.org
Tue Sep 14 22:14:41 CEST 2010


Author: ahocevar
Date: 2010-09-14 22:14:41 +0200 (Tue, 14 Sep 2010)
New Revision: 2349

Modified:
   core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
   core/trunk/geoext/tests/lib/GeoExt/widgets/tree/LayerNode.html
Log:
do not add layers provided in MapPanel.layers before the map is rendered. r=elemoine (closes #214)


Modified: core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js	2010-09-14 09:26:53 UTC (rev 2348)
+++ core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js	2010-09-14 20:14:41 UTC (rev 2349)
@@ -57,14 +57,14 @@
      */
 
     /** api: property[map]
-     *  ``OpenLayers.Map``  A configured map object.
+     *  ``OpenLayers.Map`` or ``Object``  A map or map configuration.
      */
     map: null,
     
     /** api: config[layers]
      *  ``GeoExt.data.LayerStore or GeoExt.data.GroupingStore or Array(OpenLayers.Layer)``
-     *  A store holding records. If not provided, an empty
-     *  :class:`GeoExt.data.LayerStore` will be created.
+     *  A store holding records. The layers provided here will be added to this
+     *  MapPanel's map when it is rendered.
      */
     
     /** api: property[layers]
@@ -123,12 +123,9 @@
         if(!layers || layers instanceof Array) {
             this.layers = new GeoExt.data.LayerStore({
                 layers: layers,
-                map: this.map
+                map: this.map.layers.length > 0 ? this.map : null
             });
         }
-        if(!this.layers.map) {
-            this.layers.bind(this.map);
-        }
         
         if(typeof this.center == "string") {
             this.center = OpenLayers.LonLat.fromString(this.center);
@@ -280,6 +277,9 @@
     renderMap: function() {
         var map = this.map;
         map.render(this.body.dom);
+
+        this.layers.bind(map);
+
         if(map.layers.length > 0) {
             if(this.center || this.zoom != null) {
                 // both do not have to be defined

Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/tree/LayerNode.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/tree/LayerNode.html	2010-09-14 09:26:53 UTC (rev 2348)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/tree/LayerNode.html	2010-09-14 20:14:41 UTC (rev 2349)
@@ -148,6 +148,7 @@
             var layer = new OpenLayers.Layer("test");
 
             var mapPanel = new GeoExt.MapPanel({
+                renderTo: document.body,
                 layers: [layer],
                 allOverlays: true
             });



More information about the Commits mailing list