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

commits at geoext.org commits at geoext.org
Thu Feb 3 21:51:01 CET 2011


Author: adube
Date: 2011-02-03 21:51:01 +0100 (Thu, 03 Feb 2011)
New Revision: 2593

Modified:
   sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js
Log:
LayerTreeBuilder - make sure LayerNodes are visible when according layer visibility is set to true

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-02-03 19:56:04 UTC (rev 2592)
+++ sandbox/mapgears/geoext.ux/ux/LayerTreeBuilder/lib/GeoExt.ux/widgets/tree/LayerTreeBuilder.js	2011-02-03 20:51:01 UTC (rev 2593)
@@ -411,6 +411,21 @@
 
     onLayerContainerNodeInsert: function(tree, parentNode, childNode, refNode) {
         this.validateLayerContainerStatus(parentNode);
+
+        // make sure all LayerNode objects added to a LayerContainer listen to
+        // the layer "visibilitychanged" event.  If visibility is changed by
+        // something else than the tree, ensure that the node and all its
+        // parents are visibles.
+        var onLayerNodeAdded = function(tree, parentNode, childNode) {
+            childNode.layer &&
+            childNode.layer.events.on({"visibilitychanged": function() {
+                if(!this._visibilityChanging) {
+                    this.layer.getVisibility() && this.ensureVisible();
+                }
+            }, scope: childNode});
+        };
+        this.on("insert", onLayerNodeAdded, this);
+        this.on("append", onLayerNodeAdded, this);
     },
 
     onLayerContainerNodeAppend: function(tree, parentNode, childNode, index) {



More information about the Commits mailing list