[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