[OpenLayers-Commits] r3104 - in trunk/openlayers: lib/OpenLayers/Layer tests/Layer

commits at openlayers.org commits at openlayers.org
Tue May 1 10:09:05 EDT 2007


Author: crschmidt
Date: 2007-05-01 10:09:02 -0400 (Tue, 01 May 2007)
New Revision: 3104

Modified:
   trunk/openlayers/lib/OpenLayers/Layer/Vector.js
   trunk/openlayers/tests/Layer/test_Vector.html
Log:
Apply Erik's patch from #680 to fix "removeFeatures() in Layer.Vector does 
not remove features from the selectedFeatures array when deleting features" 


Modified: trunk/openlayers/lib/OpenLayers/Layer/Vector.js
===================================================================
--- trunk/openlayers/lib/OpenLayers/Layer/Vector.js	2007-05-01 14:04:19 UTC (rev 3103)
+++ trunk/openlayers/lib/OpenLayers/Layer/Vector.js	2007-05-01 14:09:02 UTC (rev 3104)
@@ -248,6 +248,12 @@
             this.features = OpenLayers.Util.removeItem(this.features, feature);
 
             this.renderer.eraseGeometry(feature.geometry);
+            
+            //in the case that this feature is one of the selected features, 
+            // remove it from that array as well.
+            if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
+                OpenLayers.Util.removeItem(this.selectedFeatures, feature);
+            }
         }
     },
 

Modified: trunk/openlayers/tests/Layer/test_Vector.html
===================================================================
--- trunk/openlayers/tests/Layer/test_Vector.html	2007-05-01 14:04:19 UTC (rev 3103)
+++ trunk/openlayers/tests/Layer/test_Vector.html	2007-05-01 14:09:02 UTC (rev 3104)
@@ -29,7 +29,7 @@
     }
 
     function test_03_Layer_Vector_removeFeatures(t) {
-        t.plan(2);
+        t.plan(3);
     
         var layer = new OpenLayers.Layer.Vector(name);
 
@@ -43,6 +43,9 @@
         
         t.ok(layer.features.length == 1, "OpenLayers.Layer.Vector.removeFeatures removes a feature from the features array");
         layer.addFeatures([pointFeature1.clone(), pointFeature2.clone()]);
+        layer.selectedFeatures.push(layer.features[0]); 
+        layer.removeFeatures(layer.features[0]);
+        t.eq(layer.selectedFeatures, [], "Remove features removes selected features");
         var features = layer.removeFeatures(layer.features);
         
         t.ok(layer.features.length == 0,



More information about the Commits mailing list