[Commits] r2110 - in core/trunk/geoext: lib/GeoExt/data lib/GeoExt/widgets/tree tests/lib/GeoExt/data
commits at geoext.org
commits at geoext.org
Mon Apr 26 09:22:40 CEST 2010
Author: ahocevar
Date: 2010-04-26 09:22:40 +0200 (Mon, 26 Apr 2010)
New Revision: 2110
Modified:
core/trunk/geoext/lib/GeoExt/data/LayerStore.js
core/trunk/geoext/lib/GeoExt/widgets/tree/LayerLoader.js
core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html
Log:
added getByLayer method to LayerStore. r=bartvde (closes #263)
Modified: core/trunk/geoext/lib/GeoExt/data/LayerStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/LayerStore.js 2010-04-26 06:13:04 UTC (rev 2109)
+++ core/trunk/geoext/lib/GeoExt/data/LayerStore.js 2010-04-26 07:22:40 UTC (rev 2110)
@@ -380,6 +380,21 @@
this.removeMapLayer(oldRecord);
},
+ /** public: method[getByLayer]
+ * :param layer: ``OpenLayers.Layer``
+ * :return: :class:`GeoExt.data.LayerRecord` or undefined if not found
+ *
+ * Get the record for the specified layer
+ */
+ getByLayer: function(layer) {
+ var index = this.findBy(function(r) {
+ return r.get("layer") === layer;
+ });
+ if(index > -1) {
+ return this.getAt(index);
+ }
+ },
+
/** private: method[destroy]
*/
destroy: function() {
Modified: core/trunk/geoext/lib/GeoExt/widgets/tree/LayerLoader.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/tree/LayerLoader.js 2010-04-26 06:13:04 UTC (rev 2109)
+++ core/trunk/geoext/lib/GeoExt/widgets/tree/LayerLoader.js 2010-04-26 07:22:40 UTC (rev 2110)
@@ -212,11 +212,8 @@
*/
onChildMove: function(tree, node, oldParent, newParent, index) {
this._reordering = true;
- var oldRecordIndex = this.store.findBy(function(record) {
- return record.get("layer") === node.layer;
- });
// remove the record and re-insert it at the correct index
- var record = this.store.getAt(oldRecordIndex);
+ var record = this.store.getByLayer(node.layer);
if(newParent instanceof GeoExt.tree.LayerContainer &&
this.store === newParent.loader.store) {
Modified: core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html 2010-04-26 06:13:04 UTC (rev 2109)
+++ core/trunk/geoext/tests/lib/GeoExt/data/LayerStore.html 2010-04-26 07:22:40 UTC (rev 2110)
@@ -334,6 +334,25 @@
map.destroy();
}
+ function test_getByLayer(t) {
+ t.plan(2);
+
+ var layers = [
+ new OpenLayers.Layer("layer1"),
+ new OpenLayers.Layer("layer2")
+ ];
+
+ var store = new GeoExt.data.LayerStore({
+ layers: layers
+ });
+
+ var record = store.getByLayer(layers[1]);
+ t.ok(record.get("layer") === layers[1], "correct layer record returned");
+
+ record = store.getByLayer(new OpenLayers.Layer("other layer"));
+ t.eq(record, undefined, "getByLayer returns undefined if layer is not in store");
+ }
+
function test_events(t) {
t.plan(21);
More information about the Commits
mailing list