[Commits] r888 - apps/opengeo/geoexplorer/trunk/lib

commits at geoext.org commits at geoext.org
Thu May 28 22:18:53 CEST 2009


Author: sbenthall
Date: 2009-05-28 22:18:53 +0200 (Thu, 28 May 2009)
New Revision: 888

Modified:
   apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
Log:
splitting layer tree into a base layer tree and an overlay layer tree


Modified: apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-05-28 20:17:52 UTC (rev 887)
+++ apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-05-28 20:18:53 UTC (rev 888)
@@ -209,49 +209,39 @@
         });
         this.on("ready", function() {addLayerButton.enable();});
 
+        //allow user to select only one layer at a time
+        //by sharing selection model
+        var selectionModel = new Ext.tree.DefaultSelectionModel({
+            listeners: {
+                beforeselect: function() {
+                    removeLayerAction.enable();
+                }
+            }
+        });
+
         var removeLayerAction = new Ext.Action({
             text: "Remove Layer",
             iconCls: "icon-removelayers",
             disabled: true,
             tooltip: "Remove Layer",
             handler: function() {
-                var node = layerTree.getSelectionModel().getSelectedNode();
+                var node = selectionModel.getSelectedNode();
                 if(node && node.layer) {
                     var layer = node.layer;
                     var store = node.layerStore;
-                    store.removeAt(store.findBy(function(record) {
+                    store.remove(store.getAt(store.findBy(function(record) {
                         return record.get("layer") === layer;
-                    }));
+                    })));
                     removeLayerAction.disable();
                 }
             }
         });
 
-        var root = new Ext.tree.TreeNode();
-
-        var baseLayerContainer = new GeoExt.tree.BaseLayerContainer({
-            layerStore: this.layerStore
-        });
-
-        var overlayContainer = new GeoExt.tree.OverlayLayerContainer({
-            layerStore: this.layerStore
-        });
-
-        root.appendChild(overlayContainer);
-        root.appendChild(baseLayerContainer);
-        
-        var layerTree = new Ext.tree.TreePanel({
-            border: false,
+        var layerTreeConfig = {
+            border: true,
             rootVisible: false,
-            root: root,
             enableDD: true,
-            selModel: new Ext.tree.DefaultSelectionModel({
-                listeners: {
-                    beforeselect: function() {
-                        removeLayerAction.enable();
-                    }
-                }
-            }),
+            selModel: selectionModel,
             listeners: {
                 contextmenu: function(node, e) {
                     node.select();
@@ -266,8 +256,8 @@
                     {
                         text: "Zoom to Layer Extent",
                         iconCls: "icon-zoom-visible",
-                        handler: function() {
-                            var node = layerTree.getSelectionModel().getSelectedNode();
+                        handler: function(){
+                            var node = selectionModel.getSelectedNode();
                             if(node && node.layer) {
                                 this.map.zoomToExtent(node.layer.restrictedExtent);
                             }
@@ -277,14 +267,36 @@
                     removeLayerAction
                 ]
             })
-        });
+        };        
 
+        var overlayLayerTree = new Ext.tree.TreePanel(
+            Ext.apply(
+                {
+                    root: new GeoExt.tree.OverlayLayerContainer({
+                        layerStore: this.layerStore
+                    }),
+                    ddGroup: "OverlayLayerDD"
+                }, 
+                layerTreeConfig)
+        );
+        
+        var baseLayerTree = new Ext.tree.TreePanel(
+            Ext.apply(
+                {
+                    root: new GeoExt.tree.BaseLayerContainer({
+                        layerStore: this.layerStore
+                    }), 
+                    ddGroup: "BaseLayerDD"
+                }, 
+                layerTreeConfig)
+        );
+
         var layersContainer = new Ext.Panel({
             autoScroll: true,
             border: false,
             region: 'center',
             title: "Layers",
-            items: [layerTree],
+            items: [overlayLayerTree, baseLayerTree],
             tbar: [
                 addLayerButton,
                 Ext.apply(new Ext.Button(removeLayerAction), {text: ""})



More information about the Commits mailing list