[Commits] r2481 - in core/trunk/geoext: lib/GeoExt/widgets tests/lib/GeoExt/widgets
commits at geoext.org
commits at geoext.org
Wed Nov 17 12:08:56 CET 2010
Author: fredj
Date: 2010-11-17 12:08:56 +0100 (Wed, 17 Nov 2010)
New Revision: 2481
Modified:
core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html
Log:
Save the MapPanel state after a layer is added or removed from the
OpenLayers.Map. r=elemoine (closes #372)
Modified: core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js 2010-11-16 16:55:43 UTC (rev 2480)
+++ core/trunk/geoext/lib/GeoExt/widgets/MapPanel.js 2010-11-17 11:08:56 UTC (rev 2481)
@@ -106,7 +106,9 @@
*/
stateEvents: ["aftermapmove",
"afterlayervisibilitychange",
- "afterlayeropacitychange"],
+ "afterlayeropacitychange",
+ "afterlayeradd",
+ "afterlayerremove"],
/** private: method[initComponent]
* Initializes the map panel. Creates an OpenLayers map if
@@ -154,11 +156,23 @@
/** private: event[afterlayeropacitychange]
* Fires after a layer changed opacity.
*/
- "afterlayeropacitychange"
+ "afterlayeropacitychange",
+
+ /** private: event[afterlayeradd]
+ * Fires after a layer added to the map.
+ */
+ "afterlayeradd",
+
+ /** private: event[afterlayerremove]
+ * Fires after a layer removed from the map.
+ */
+ "afterlayerremove"
);
this.map.events.on({
"moveend": this.onMoveend,
- "changelayer": this.onLayerchange,
+ "changelayer": this.onChangelayer,
+ "addlayer": this.onAddlayer,
+ "removelayer": this.onRemovelayer,
scope: this
});
},
@@ -171,12 +185,12 @@
this.fireEvent("aftermapmove");
},
- /** private: method[onLayerchange]
+ /** private: method[onChangelayer]
* :param e: ``Object``
*
* The "changelayer" listener.
*/
- onLayerchange: function(e) {
+ onChangelayer: function(e) {
if(e.property) {
if(e.property === "visibility") {
this.fireEvent("afterlayervisibilitychange");
@@ -186,6 +200,18 @@
}
},
+ /** private: method[onAddlayer]
+ */
+ onAddlayer: function() {
+ this.fireEvent("afterlayeradd");
+ },
+
+ /** private: method[onRemovelayer]
+ */
+ onRemovelayer: function() {
+ this.fireEvent("afterlayerremove");
+ },
+
/** private: method[applyState]
* :param state: ``Object`` The state to apply.
*
@@ -349,7 +375,9 @@
if(this.map && this.map.events) {
this.map.events.un({
"moveend": this.onMoveend,
- "changelayer": this.onLayerchange,
+ "changelayer": this.onChangelayer,
+ "addlayer": this.onAddlayer,
+ "removelayer": this.onRemovelayer,
scope: this
});
}
Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html 2010-11-16 16:55:43 UTC (rev 2480)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/MapPanel.html 2010-11-17 11:08:56 UTC (rev 2481)
@@ -445,7 +445,7 @@
}
function test_getState_called(t) {
- t.plan(2);
+ t.plan(4);
// set up
@@ -476,6 +476,25 @@
t.eq(log, true, "getState called when map is moved");
});
+ // test that getState gets called when the a layer is
+ // added to the map
+ // 1 test
+ log = false;
+ var l = new OpenLayers.Layer("foo");
+ mapPanel.map.addLayers([l]);
+ t.delay_call(1, function() {
+ t.eq(log, true, "getState called when a layer is added to the map");
+ });
+
+ // test that getState gets called when the a layer is
+ // removed from the map
+ // 1 test
+ log = false;
+ mapPanel.map.removeLayer(l);
+ t.delay_call(1, function() {
+ t.eq(log, true, "getState called when a layer is removed from the map");
+ });
+
// test that getState gets called when layer visibility
// is changed
// 1 test
More information about the Commits
mailing list