[Commits] r2816 - sandbox/gxm/geoext/gxm/lib/GXM/widgets

commits at geoext.org commits at geoext.org
Wed Aug 17 16:17:31 CEST 2011


Author: marcjansen
Date: 2011-08-17 16:17:30 +0200 (Wed, 17 Aug 2011)
New Revision: 2816

Modified:
   sandbox/gxm/geoext/gxm/lib/GXM/widgets/MapPanel.js
Log:
[gxm] 
  - delete the layers-property on destroy
  - compilation optiomization (local variable as alias for this)

Modified: sandbox/gxm/geoext/gxm/lib/GXM/widgets/MapPanel.js
===================================================================
--- sandbox/gxm/geoext/gxm/lib/GXM/widgets/MapPanel.js	2011-08-17 13:50:13 UTC (rev 2815)
+++ sandbox/gxm/geoext/gxm/lib/GXM/widgets/MapPanel.js	2011-08-17 14:17:30 UTC (rev 2816)
@@ -140,78 +140,76 @@
      *  Initializes the Component.
      */
     initComponent: function(){
+        var me = this;
         // set scroll to false just as the original Map-component of 
         // Sencha Touch does (Review BvdE).
-        this.scroll = false;
+        me.scroll = false;
         
         // check config-property map for an existing OpenLayers.Map-instance, a
         // conf object for an OpenLayers.Map or null
-        if ( !(this.map instanceof OpenLayers.Map) ) {
-            var mapConf = Ext.applyIf(this.map || {}, {
+        if ( !(me.map instanceof OpenLayers.Map) ) {
+            var mapConf = Ext.applyIf(me.map || {}, {
                 allOverlays: true,
-                controls: this.initialConfig.controls || this.getDefaultControls()
+                controls: me.initialConfig.controls || me.getDefaultControls()
             });
-            this.map = new OpenLayers.Map(mapConf);
+            me.map = new OpenLayers.Map(mapConf);
         } else {
             // add any additionally configured controls:
-            if (this.initialConfig.controls) {
-                this.map.addControls(this.initialConfig.controls);
+            if (me.initialConfig.controls) {
+                me.map.addControls(me.initialConfig.controls);
             }
         }
         // this.map is now initialized in any case and has needed and
         // configured controls
         
         // check config-property layers for any layers to be added to the map
-        if ( this.layers ) {
+        if ( me.layers ) {
             // normalize the case where this.layers was not an array but a layer 
-            if(this.layers instanceof OpenLayers.Layer) {
-                this.layers = [this.layers];
+            if(me.layers instanceof OpenLayers.Layer) {
+                me.layers = [me.layers];
             }
             
             //TODO: this possibly requests data from the layers to early
             // we might move this e.g. to the renderMap-method
-            this.map.addLayers(this.layers);
+            me.map.addLayers(me.layers);
             
         }
         
         // create a layerstore with the current maps layers
-        this.layers = new GXM.data.LayerStore({
-            data: this.map.layers
+        me.layers = new GXM.data.LayerStore({
+            data: me.map.layers
         });
         
         // check config-property controls
-        if ( this.controls ) {
+        if ( me.controls ) {
             // normalize the case where this.controls was not an array but a control 
-            if(this.controls instanceof OpenLayers.Control) {
-                this.controls = [this.controls];
+            if(me.controls instanceof OpenLayers.Control) {
+                me.controls = [me.controls];
             }
-            this.map.addControls(this.controls);
+            me.map.addControls(me.controls);
         }
         
         // check config-property center
-        if ( Ext.isString(this.center) ) {
-            this.center = OpenLayers.LonLat.fromString(this.center);
-        } else if(Ext.isArray(this.center)) {
-            //TODO: this method does not exist. but IMO should
+        if ( Ext.isString(me.center) ) {
+            me.center = OpenLayers.LonLat.fromString(me.center);
+        } else if(Ext.isArray(me.center)) {
             // see: http://trac.osgeo.org/openlayers/ticket/3433
-            // this.center = OpenLayers.LonLat.fromArray(this.center);
-            this.center = new OpenLayers.LonLat(this.center[0], this.center[1]);
+            me.center = OpenLayers.LonLat.fromArray(me.center);
         } 
-
         
         // check config-property bounds
-        if ( Ext.isString(this.extent) ) {
-            this.extent = OpenLayers.Bounds.fromString(this.extent);
-        } else if(Ext.isArray(this.extent)) {
-            this.extent = OpenLayers.Bounds.fromArray(this.extent);
+        if ( Ext.isString(me.extent) ) {
+            me.extent = OpenLayers.Bounds.fromString(me.extent);
+        } else if(Ext.isArray(me.extent)) {
+            me.extent = OpenLayers.Bounds.fromArray(me.extent);
         }
         
         // call the superclass constructor
-        GXM.MapPanel.superclass.initComponent.call(this);
+        GXM.MapPanel.superclass.initComponent.call(me);
         
         // events        
         //TODO: discuss whether we need our own mapping to the OpenLayers-Events
-        this.addEvents(
+        me.addEvents(
             /** private: event[aftermapmove]
              * 
              *  Fires after the map is moved.
@@ -256,12 +254,12 @@
         );
         
         // bind various listeners to the corresponding OpenLayers.Map-events
-        this.map.events.on({
-            "moveend": this.onMoveend,
-            "changelayer": this.onChangelayer,
-            "addlayer": this.onAddlayer,
-            "removelayer": this.onRemovelayer,
-            scope: this
+        me.map.events.on({
+            "moveend": me.onMoveend,
+            "changelayer": me.onChangelayer,
+            "addlayer": me.onAddlayer,
+            "removelayer": me.onRemovelayer,
+            scope: me
         });
     },
     
@@ -279,15 +277,16 @@
      *  The "changelayer" listener bound to the :attr:`map`.
      */
     onChangelayer: function(e) {
+        var me = this;
         if(e.property) {
             if(e.property === "visibility") {
-                this.fireEvent("afterlayervisibilitychange");
+                me.fireEvent("afterlayervisibilitychange");
             } else if(e.property === "order") {
-                this.fireEvent("afterlayerorderchange");
+                me.fireEvent("afterlayerorderchange");
             } else if(e.property === "name") {
-                this.fireEvent("afterlayernamechange");
+                me.fireEvent("afterlayernamechange");
             } else if(e.property === "opacity") {
-                this.fireEvent("afterlayeropacitychange");
+                me.fireEvent("afterlayeropacitychange");
             }
         }
     },
@@ -370,12 +369,12 @@
         
         // Adjust the geographic position according to the passed config-options 
         if (!map.getCenter()) {
-            if (this.center || this.zoom ) {
+            if (me.center || me.zoom ) {
                 // center and/or zoom?
-                map.setCenter(this.center, this.zoom);
-            } else if (this.extent instanceof OpenLayers.Bounds) {
+                map.setCenter(me.center, me.zoom);
+            } else if (me.extent instanceof OpenLayers.Bounds) {
                 // extent
-                map.zoomToExtent(this.extent, true);
+                map.zoomToExtent(me.extent, true);
             }else {           
                 map.zoomToMaxExtent();
             }    
@@ -401,28 +400,30 @@
      *  Private method called during the destroy sequence.
      */
     beforeDestroy: function() {
-        if(this.ownerCt) {
-            this.ownerCt.un("move", this.updateMapSize, this);
+        var me = this;
+        if(me.ownerCt) {
+            me.ownerCt.un("move", me.updateMapSize, me);
         }
-        if(this.map && this.map.events) {
-            this.map.events.un({
-                "moveend": this.onMoveend,
-                "changelayer": this.onChangelayer,
-                "addlayer": this.onAddlayer,
-                "removelayer": this.onRemovelayer,
-                scope: this
+        if(me.map && me.map.events) {
+            me.map.events.un({
+                "moveend": me.onMoveend,
+                "changelayer": me.onChangelayer,
+                "addlayer": me.onAddlayer,
+                "removelayer": me.onRemovelayer,
+                scope: me
             });
         }
         // if the map panel was passed a map instance, this map instance
         // is under the user's responsibility
-        if(!this.initialConfig.map ||
-           !(this.initialConfig.map instanceof OpenLayers.Map)) {         
-            if(this.map && this.map.destroy) {
-                this.map.destroy();
+        if(!me.initialConfig.map ||
+           !(me.initialConfig.map instanceof OpenLayers.Map)) {         
+            if(me.map && me.map.destroy) {
+                me.map.destroy();
             }
         }
-        delete this.map;
-        GXM.MapPanel.superclass.beforeDestroy.apply(this, arguments);
+        delete me.map;
+        delete me.layers;
+        GXM.MapPanel.superclass.beforeDestroy.apply(me, arguments);
     }
     
 });



More information about the Commits mailing list