[Commits] r404 - in apps/opengeo/geoexplorer/trunk: lib theme

commits at geoext.org commits at geoext.org
Fri Apr 17 00:54:50 CEST 2009


Author: tschaub
Date: 2009-04-17 00:54:50 +0200 (Fri, 17 Apr 2009)
New Revision: 404

Modified:
   apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
   apps/opengeo/geoexplorer/trunk/theme/geoexplorer.css
Log:
Create a remove layer action that can be shared between context menu and button on toolbar.  Enable all components that use this action when a node is selected on the layer tree.

Modified: apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-04-16 21:50:04 UTC (rev 403)
+++ apps/opengeo/geoexplorer/trunk/lib/GeoExplorer.js	2009-04-16 22:54:50 UTC (rev 404)
@@ -161,49 +161,58 @@
         });
         this.on("ready", function() {addLayerButton.enable()});
 
+        var removeLayerAction = new Ext.Action({
+            text: "Remove Layer",
+            iconCls: "icon-removeLayers",
+            disabled: true,
+            handler: function() {
+                var node = layerTree.getSelectionModel().getSelectedNode();
+                if(node && node.layer) {
+                    var layer = node.layer;
+                    var store = node.layerStore;
+                    store.removeAt(store.findBy(function(record) {
+                        return record.get("layer") === layer;
+                    }));
+                }
+            }
+        });
+        
+        var layerTree = new Ext.tree.TreePanel({
+            border: false,
+            rootVisible: false,
+            root: new GeoExt.tree.LayerContainer({
+                text: 'Map Layers',
+                layerStore: this.layers
+            }),
+            enableDD: true,
+            selModel: new Ext.tree.DefaultSelectionModel({
+                listeners: {
+                    beforeselect: function() {
+                        removeLayerAction.enable();
+                    }
+                }
+            }),
+            listeners: {
+                contextmenu: function(node, e) {
+                    node.select();
+                    var c = node.getOwnerTree().contextMenu;
+                    c.contextNode = node;
+                    c.showAt(e.getXY());
+                },
+                scope: this
+            },
+            contextMenu: new Ext.menu.Menu({
+                items: [removeLayerAction],
+            })
+        });
+
         var layersContainer = new Ext.Panel({
             autoScroll: true,
             border: false,
             region: 'center',
             title: "Layers",
-            items: [{
-                xtype: "treepanel",
-                border: false,
-                rootVisible: false,
-                root: new GeoExt.tree.LayerContainer({
-                    text: 'Map Layers',
-                    layerStore: this.layers
-                }),
-                enableDD: true,
-                listeners: {
-                    contextmenu: function(node, e){
-                        node.select();
-                        var c = node.getOwnerTree().contextMenu;
-                        c.contextNode = node;
-                        c.showAt(e.getXY());
-                    },
-                    scope: this
-                },
-                contextMenu: new Ext.menu.Menu({
-                    items: [{
-                        id: 'remove-layer',
-                        text: 'Remove Layer'
-                    }],
-                    listeners: {
-                        itemclick: function(item){
-                            switch (item.id) {
-                            case 'remove-layer':
-                                cn = this.contextNode;
-                                cn.layerStore.removeAt(cn.layerStore.findBy(function(record){
-                                    return record.get("layer") == cn.layer;
-                                }));
-                                break;
-                            }   
-                        }
-                    }
-                })
-            }],
-            tbar: [addLayerButton]
+            items: [layerTree],
+            tbar: ["->", removeLayerAction, addLayerButton]
         });
 
         var legendContainer = new GeoExt.LegendPanel({

Modified: apps/opengeo/geoexplorer/trunk/theme/geoexplorer.css
===================================================================
--- apps/opengeo/geoexplorer/trunk/theme/geoexplorer.css	2009-04-16 21:50:04 UTC (rev 403)
+++ apps/opengeo/geoexplorer/trunk/theme/geoexplorer.css	2009-04-16 22:54:50 UTC (rev 404)
@@ -2,6 +2,10 @@
     background-image: url(img/silk/add.png) !important;
 }
 
+.icon-removelayers {
+    background-image: url(img/silk/delete.png) !important;
+}
+
 .icon-getfeatureinfo {
     background-image: url(img/silk/information.png) !important;
 }



More information about the Commits mailing list