[Commits] r1454 - in core/trunk/geoext: lib/GeoExt/widgets tests/lib/GeoExt/widgets

commits at geoext.org commits at geoext.org
Fri Nov 13 16:47:20 CET 2009


Author: bartvde
Date: 2009-11-13 16:47:20 +0100 (Fri, 13 Nov 2009)
New Revision: 1454

Modified:
   core/trunk/geoext/lib/GeoExt/widgets/LegendPanel.js
   core/trunk/geoext/tests/lib/GeoExt/widgets/LegendPanel.html
Log:
Legend: use inRange to determine visibility so that scale-dependent layers are only shown in the legend when they are visible in the map, r=tschaub (closes #173)

Modified: core/trunk/geoext/lib/GeoExt/widgets/LegendPanel.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/LegendPanel.js	2009-11-12 10:39:41 UTC (rev 1453)
+++ core/trunk/geoext/lib/GeoExt/widgets/LegendPanel.js	2009-11-13 15:47:20 UTC (rev 1454)
@@ -157,7 +157,7 @@
                 legend.items.get(0).setText(record.get('title'));
         }
         if (legend) {
-            legend.setVisible(layer.getVisibility() && 
+            legend.setVisible(layer.getVisibility() && layer.inRange &&
                 layer.displayInLayerSwitcher && !record.get('hideInLegend'));
             var url = record.get("legendURL") != null ?
                       record.get("legendURL") : undefined;
@@ -257,7 +257,7 @@
             var layer = record.get('layer');
             var legendSubpanel = this.createLegendSubpanel(record);
             if (legendSubpanel !== null) {
-                legendSubpanel.setVisible(layer.getVisibility());
+                legendSubpanel.setVisible(layer.getVisibility() && layer.inRange);
                 this.insert(index, legendSubpanel);
             }
         }

Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/LegendPanel.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/LegendPanel.html	2009-11-12 10:39:41 UTC (rev 1453)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/LegendPanel.html	2009-11-13 15:47:20 UTC (rev 1454)
@@ -250,6 +250,21 @@
                  "mergeNewParams caused removal of a legend image");
         }
 
+        function test_scaledependency(t) {
+            t.plan(1);
+            var mapPanel = loadMapPanel();
+            mapPanel.map.layers[0].inRange = false;
+            var lp  = new GeoExt.LegendPanel({
+                renderTo: 'legendpanel'});
+            lp.render();
+
+            var id = mapPanel.layers.getAt(0).get('layer').id;
+            t.eq(lp.getComponent(id).hidden, true, "Layer has been hidden in legend because it is not in scale");
+
+            lp.destroy();
+            mapPanel.destroy();
+        }
+
     </script>
   <body>
     <div id="legendpanel"></div>



More information about the Commits mailing list