[Commits] r1200 - in apps/opengeo/geoexplorer/trunk/src: script/app script/app/GeoExplorer theme/app
commits at geoext.org
commits at geoext.org
Thu Jul 2 00:42:35 CEST 2009
Author: tschaub
Date: 2009-07-02 00:42:34 +0200 (Thu, 02 Jul 2009)
New Revision: 1200
Modified:
apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer.js
apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js
apps/opengeo/geoexplorer/trunk/src/theme/app/geoexplorer.css
Log:
Partially working baselayer reworking.
Modified: apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js 2009-07-01 20:59:51 UTC (rev 1199)
+++ apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer/GroupContainer.js 2009-07-01 22:42:34 UTC (rev 1200)
@@ -5,13 +5,13 @@
background: null,
/**
- * Constructor: GeoExt.tree.OverlayLayerContainer
+ * Constructor: GeoExplorer.GroupContainer
*
* Parameters:
* config - {Object}
*/
constructor: function(config) {
- config.text = config.text || "Overlays";
+ config.text = config.text || "Layers";
this.background = config.background;
GeoExplorer.GroupContainer.superclass.constructor.apply(this,
arguments);
Modified: apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer.js
===================================================================
--- apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer.js 2009-07-01 20:59:51 UTC (rev 1199)
+++ apps/opengeo/geoexplorer/trunk/src/script/app/GeoExplorer.js 2009-07-01 22:42:34 UTC (rev 1200)
@@ -329,41 +329,13 @@
});
this.on("ready", function() {addLayerButton.enable();});
- var addBaseLayerButton = new Ext.Button({
- tooltip : "Add Base Layers",
- disabled: true,
- iconCls: "icon-addlayers",
- handler: this.showBaseCapabilitiesGrid,
- scope: this
- });
- this.on("ready", function() {addBaseLayerButton.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 baseSelectionModel = new Ext.tree.DefaultSelectionModel({
- listeners: {
- beforeselect: function() {
- removeBaseLayerAction.enable();
- }
- }
- });
-
var removeLayerAction = new Ext.Action({
text: "Remove Layer",
iconCls: "icon-removelayers",
disabled: true,
tooltip: "Remove Layer",
handler: function() {
- var node = selectionModel.getSelectedNode();
+ var node = layerTree.getSelectionModel().getSelectedNode();
if(node && node.layer) {
var layer = node.layer;
var store = node.layerStore;
@@ -376,36 +348,82 @@
}
});
- var removeBaseLayerAction = new Ext.Action({
- text: "Remove Base Layer",
- iconCls: "icon-removelayers",
- disabled: true,
- tooltip: "Remove Base Layer",
- handler: function() {
- var node = baseSelectionModel.getSelectedNode();
- if(node && node.layer) {
- var layer = node.layer;
- var store = node.layerStore;
- var record = store.getAt(store.findBy(function(record) {
- return record.get("layer") === layer;
- }));
- store.remove(record);
- removeBaseLayerAction.disable();
+ var treeRoot = new Ext.tree.TreeNode({
+ text: "Layers",
+ expanded: true,
+ isTarget: false
+ });
+ treeRoot.appendChild(new GeoExplorer.GroupContainer({
+ text: "Overlays",
+ iconCls: "gx-folder",
+ expanded: true,
+ background: false,
+ layerStore: this.mapPanel.layers,
+ singleClickExpand: true,
+ allowDrag: false,
+ listeners: {
+ append: function(tree, node) {
+ node.expand();
}
}
- });
-
- var layerTreeConfig = {
- border:false,
+ }));
+ treeRoot.appendChild(new GeoExplorer.GroupContainer({
+ text: "Base Layers",
+ iconCls: "gx-folder",
+ expanded: true,
+ background: true,
+ layerStore: this.mapPanel.layers,
+ singleClickExpand: true,
+ allowDrag: false,
+ listeners: {
+ append: function(tree, node) {
+ node.expand();
+ }
+ }
+ }));
+
+ var layerTree = new Ext.tree.TreePanel({
+ root: treeRoot,
rootVisible: false,
- autoScroll: true,
- split: true,
+ border: false,
+ enableDD: true,
+ selModel: new Ext.tree.DefaultSelectionModel({
+ listeners: {
+ beforeselect: function(sel, node) {
+ if(node && node.layer) {
+ // allow removal if more than one non-vector layer
+ var count = this.mapPanel.layers.queryBy(function(r) {
+ return !(r.get("layer") instanceof OpenLayers.Layer.Vector);
+ }).getCount();
+ if(count > 1) {
+ removeLayerAction.enable();
+ }
+ }
+ },
+ scope: this
+ }
+ }),
listeners: {
+ dragdrop: function(tree, node, dd, evt) {
+ if(node && node.layer) {
+ var index = this.mapPanel.layers.findBy(function(r) {
+ return r.get("layer") === node.layer;
+ });
+ if(index > -1) {
+ var record = this.mapPanel.layers.getAt(index);
+ if(record.get("background") !== node.parentNode.background) {
+ record.set("background");
+ }
+ }
+ }
+ },
contextmenu: function(node, e) {
- node.select();
- var c = node.getOwnerTree().contextMenu;
- c.contextNode = node;
- c.showAt(e.getXY());
+ if(node && node.layer) {
+ node.select();
+ var c = node.getOwnerTree().contextMenu;
+ c.contextNode = node;
+ c.showAt(e.getXY());
+ }
},
scope: this
},
@@ -414,8 +432,8 @@
{
text: "Zoom to Layer Extent",
iconCls: "icon-zoom-visible",
- handler: function(){
- var node = selectionModel.getSelectedNode();
+ handler: function() {
+ var node = layerTree.getSelectionModel().getSelectedNode();
if(node && node.layer) {
this.map.zoomToExtent(node.layer.restrictedExtent);
}
@@ -425,68 +443,18 @@
removeLayerAction
]
})
- };
+ });
- var overlayLayerTree = new Ext.tree.TreePanel(
- Ext.apply(
- {
- title: "Layers",
- tbar: [
- addLayerButton,
- Ext.apply(new Ext.Button(removeLayerAction), {text: ""})
- ],
- selModel: selectionModel,
- root: new GeoExplorer.GroupContainer({
- background: false,
- layerStore: this.layerStore
- }),
- ddGroup: "OverlayLayerDD",
- height: 'auto',
- region: 'center',
- enableDD: true
- },
- layerTreeConfig));
-
- var baseLayerTree = new Ext.tree.TreePanel(
- Ext.apply(
- {
- title: 'Base Layers',
- tbar: [
- addBaseLayerButton,
- Ext.apply(new Ext.Button(removeBaseLayerAction), {text: ""})
- ],
- root: new GeoExplorer.GroupContainer({
- background: true,
- layerStore: this.layerStore
- }),
- selModel: baseSelectionModel,
- ddGroup: "BaseLayerDD",
- height: 160,
- region: 'south',
- contextMenu: new Ext.menu.Menu({
- items: [
- {
- text: "Zoom to Layer Extent",
- iconCls: "icon-zoom-visible",
- handler: function(){
- var node = selectionModel.getSelectedNode();
- if(node && node.layer) {
- this.map.zoomToExtent(node.layer.restrictedExtent);
- }
- },
- scope: this
- },
- removeBaseLayerAction
- ]
- })
- },
- layerTreeConfig));
-
var layersContainer = new Ext.Panel({
+ autoScroll: true,
border: false,
region: 'center',
- layout: 'border',
- items: [overlayLayerTree, baseLayerTree]
+ title: "Layers",
+ items: [layerTree],
+ tbar: [
+ addLayerButton,
+ Ext.apply(new Ext.Button(removeLayerAction), {text: ""})
+ ]
});
var legendContainer = new GeoExt.LegendPanel({
Modified: apps/opengeo/geoexplorer/trunk/src/theme/app/geoexplorer.css
===================================================================
--- apps/opengeo/geoexplorer/trunk/src/theme/app/geoexplorer.css 2009-07-01 20:59:51 UTC (rev 1199)
+++ apps/opengeo/geoexplorer/trunk/src/theme/app/geoexplorer.css 2009-07-01 22:42:34 UTC (rev 1200)
@@ -255,4 +255,12 @@
height: 16px;
display: block;
}
+
+.x-tree-node img.gx-folder, .x-tree-node-collapsed img.gx-folder{
+ background: url(http://extjs.cachefly.net/ext-2.2.1/resources/images/default/tree/folder.gif);
+}
+
+.x-tree-node-expanded img.gx-folder {
+ background: url(http://extjs.cachefly.net/ext-2.2.1/resources/images/default/tree/folder-open.gif);
+}
More information about the Commits
mailing list