[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