[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