[Commits] r1043 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Thu Jun 11 17:11:31 CEST 2009
Author: ahocevar
Date: 2009-06-11 17:11:30 +0200 (Thu, 11 Jun 2009)
New Revision: 1043
Modified:
core/trunk/geoext/lib/GeoExt/data/LayerStore.js
core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html
Log:
Synchronize a layer record's title field with its layer's name. r=elemoine (closes #85)
Modified: core/trunk/geoext/lib/GeoExt/data/LayerStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/LayerStore.js 2009-06-11 09:46:19 UTC (rev 1042)
+++ core/trunk/geoext/lib/GeoExt/data/LayerStore.js 2009-06-11 15:11:30 UTC (rev 1043)
@@ -155,6 +155,7 @@
"clear": this.onClear,
"add": this.onAdd,
"remove": this.onRemove,
+ "update": this.onUpdate,
scope: this
});
this.data.on({
@@ -210,6 +211,8 @@
delete this._adding;
}
}
+ } else if(evt.property === "name") {
+ record.set("title", layer.name);
} else {
this.fireEvent("update", this, record, Ext.data.Record.EDIT);
}
@@ -328,6 +331,23 @@
}
}
},
+
+ /** private: method[onUpdate]
+ * :param store: ``Ext.data.Store``
+ * :param record: ``Ext.data.Record``
+ * :param operation: ``Number``
+ *
+ * Handler for a store's update event
+ */
+ onUpdate: function(store, record, operation) {
+ if(operation === Ext.data.Record.EDIT) {
+ var layer = record.get("layer");
+ var title = record.get("title");
+ if(title !== layer.name) {
+ layer.setName(title);
+ }
+ }
+ },
/** private: method[removeMapLayer]
* :param record: ``Ext.data.Record``
Modified: core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html 2009-06-11 09:46:19 UTC (rev 1042)
+++ core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html 2009-06-11 15:11:30 UTC (rev 1043)
@@ -285,6 +285,26 @@
}
+ function test_update(t) {
+ t.plan(2);
+
+ var map = new OpenLayers.Map("mappanel");
+ var layer = new OpenLayers.Layer("foo");
+ map.addLayer(layer);
+
+ var store = new GeoExt.data.LayerStore({
+ map: map
+ });
+
+ layer.setName("newName");
+ t.eq(store.getAt(0).get("title"), "newName", "record title synced from layer name");
+
+ store.getAt(0).set("title", "newTitle");
+ t.eq(layer.name, "newTitle", "layer name synced from record title");
+
+ map.destroy();
+ }
+
function test_events(t) {
t.plan(21);
More information about the Commits
mailing list