[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