[Commits] r412 - in sandbox/opengeo/geoexplorer: . lib/GeoExt/widgets
commits at geoext.org
commits at geoext.org
Fri Apr 17 22:25:43 CEST 2009
Author: dwins
Date: 2009-04-17 22:25:43 +0200 (Fri, 17 Apr 2009)
New Revision: 412
Modified:
sandbox/opengeo/geoexplorer/lib/GeoExt/widgets/LegendPanel.js
sandbox/opengeo/geoexplorer/modifications.txt
Log:
Adding reordering support for legend panel.
Modified: sandbox/opengeo/geoexplorer/lib/GeoExt/widgets/LegendPanel.js
===================================================================
--- sandbox/opengeo/geoexplorer/lib/GeoExt/widgets/LegendPanel.js 2009-04-17 19:06:24 UTC (rev 411)
+++ sandbox/opengeo/geoexplorer/lib/GeoExt/widgets/LegendPanel.js 2009-04-17 20:25:43 UTC (rev 412)
@@ -171,6 +171,7 @@
* evt - {Object} The event object sent by OpenLayers
*/
changeLayer: function(evt) {
+ console.log(evt);
// TODO deal with property order if we want to reflect the order
// in the legend
if (evt && evt.layer && evt.property) {
@@ -192,10 +193,32 @@
if (panel) {
panel.setVisible(!evt.layer.hideInLegend);
}
+ }else if(evt.property == 'order') {
+ var newPosition;
+ if(this.ascending){
+ newPosition = this.map.getLayerIndex(evt.layer);
+ } else {
+ newPosition = this.map.layers.length - 1
+ - this.map.getLayerIndex(evt.layer);
+ }
+
+ this.moveLegend(panel, evt.layer, newPosition);
}
}
},
+ moveLegend: function(panel, layer, position){
+ var cfg = panel.initialConfig;
+ this.remove(panel);
+ var newPanel = this.createLegendPanel(
+ this.generatePanelId(layer),
+ layer.name,
+ this.generateImageGroup(layer)
+ );
+ this.insert(position, panel);
+ this.doLayout();
+ },
+
/**
* Method: generatePanelId
* Generate an id attribute value for the panel.
@@ -320,18 +343,12 @@
var panel;
if (layer instanceof OpenLayers.Layer.WMS &&
layer.getVisibility() && !layer.hideInLegend) {
- // if LAYERS param is in the form of LAYERS=A,B,C we need to
- //split them up, and show an image per layer
- var layers = layer.params.LAYERS.split(",");
- var legImg = [];
- for (var i=0, len=layers.length; i<len; i++) {
- var layerName = layers[i];
- legImg.push(this.createImage(
- this.getLegendUrl(layer, layerName),
- this.generatePanelId(layer)+i));
- }
- panel = this.createLegendPanel(this.generatePanelId(layer),
- layer.name, legImg);
+ panel = this.createLegendPanel(
+ this.generatePanelId(layer),
+ layer.name,
+ this.generateImageGroup(layer)
+ );
+
if (this.ascending) {
this.add(panel);
} else {
@@ -341,6 +358,19 @@
this.doLayout();
}
return panel;
+ },
+
+ generateImageGroup: function(layer) {
+ var layers = layer.params.LAYERS.split(",");
+ var legImg = [];
+ for (var i = 0, len = layers.length; i < len; i++){
+ var layerName = layers[i];
+ legImg.push(this.createImage(
+ this.getLegendUrl(layer, layerName),
+ this.generatePanelId(layer)+i
+ ));
+ }
+ return legImg;
}
});
Modified: sandbox/opengeo/geoexplorer/modifications.txt
===================================================================
--- sandbox/opengeo/geoexplorer/modifications.txt 2009-04-17 19:06:24 UTC (rev 411)
+++ sandbox/opengeo/geoexplorer/modifications.txt 2009-04-17 20:25:43 UTC (rev 412)
@@ -10,4 +10,5 @@
* Added scale store (see #41)
* added WMSCapabilitiesReader tests (see #26)
* Fixed bug with double-click handling on layertree
+ * Add reordering support to LegendPanel (geoext #2)
More information about the Commits
mailing list