[Commits] r2621 - sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree

commits at geoext.org commits at geoext.org
Tue Mar 15 16:09:56 CET 2011


Author: edube
Date: 2011-03-15 16:09:56 +0100 (Tue, 15 Mar 2011)
New Revision: 2621

Modified:
   sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js
Log:
Fix instanciation of WMSLegend/VectorLegend objects in LayerTreeBuilder (wrong legend object type can be created if WMS and Vector layers are part of the same group node)

Modified: sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js
===================================================================
--- sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js	2011-03-14 14:04:01 UTC (rev 2620)
+++ sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js	2011-03-15 15:09:56 UTC (rev 2621)
@@ -146,6 +146,8 @@
     },
 
     addGroupNodes: function(groups, parentNode, groupString, layerRecord){
+        var that = this;
+
         var group = groups.shift();
         var childNode = this.getNodeByText(parentNode, group);
         var layer = layerRecord.getLayer();
@@ -166,56 +168,29 @@
                         return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
                     }
                 }
-                // WMS and Vector layers can have legend nodes if according
-                // property is enabled
-                else if (layer instanceof OpenLayers.Layer.WMS
-                    && this.wmsLegendNodes)
-                {
+                else {
                     createNode = function(attr) {
                         var layerRecord = this.store.getByLayer(attr.layer);
                         var layer = layerRecord.getLayer();
-                        attr.component = {
-                          xtype: "gx_wmslegend",
-                          layerRecord: layerRecord,
-                          showTitle: false,
-                          hidden: !layer.visibility,
-                          cls: "gx-layertreebuilder-legend"
-                        };
-                        if (this.store.treeBuilder.checkableLeafGroupNodes && 
-                            !layer.isBaseLayer) {
-                            Ext.apply(attr, {
-                                listeners: {
-                                    checkchange: this.store.treeBuilder.checkChange
-                                }
-                            });
+                        // WMS and Vector layers can have legend nodes if according
+                        // property is enabled
+                        if (layer instanceof OpenLayers.Layer.WMS && that.wmsLegendNodes) {
+                            attr.component = {
+                                xtype: "gx_wmslegend",
+                                layerRecord: layerRecord,
+                                showTitle: false,
+                                hidden: !layer.visibility,
+                                cls: "gx-layertreebuilder-legend"
+                            };
+                        } else if (layer instanceof OpenLayers.Layer.Vector && that.vectorLegendNodes) {
+                            attr.component = {
+                                xtype: "gx_vectorlegend",
+                                layerRecord: layerRecord,
+                                showTitle: false,
+                                hidden: !layer.visibility,
+                                cls: "gx-layertreebuilder-legend"
+                            };
                         }
-                        return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
-                    }
-                } else if (layer instanceof OpenLayers.Layer.Vector
-                    && this.vectorLegendNodes)
-                {
-                    createNode = function(attr) {
-                        var layerRecord = this.store.getByLayer(attr.layer);
-                        var layer = layerRecord.getLayer();
-                        attr.component = {
-                          xtype: "gx_vectorlegend",
-                          layerRecord: layerRecord,
-                          showTitle: false,
-                          hidden: !layer.visibility,
-                          cls: "gx-layertreebuilder-legend"
-                        };
-                        if (this.store.treeBuilder.checkableLeafGroupNodes && 
-                            !layer.isBaseLayer) {
-                            Ext.apply(attr, {
-                                listeners: {
-                                    checkchange: this.store.treeBuilder.checkChange
-                                }
-                            });
-                        }
-                        return GeoExt.tree.LayerLoader.prototype.createNode.call(this, attr);
-                    }
-                } else {
-                    createNode = function(attr) {
                         if (this.store.treeBuilder.checkableContainerGroupNodes &&
                             this.store.treeBuilder.checkableLeafGroupNodes &&
                             !layer.isBaseLayer) {



More information about the Commits mailing list