Changeset 7277
- Timestamp:
- 05/27/08 03:56:29 (6 months ago)
- Files:
-
- trunk/openlayers/lib/OpenLayers/Layer/Vector.js (modified) (4 diffs)
- trunk/openlayers/tests/Layer/Vector.html (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openlayers/lib/OpenLayers/Layer/Vector.js
r7276 r7277 46 46 * object passed to listeners will have a *features* property with a 47 47 * reference to an array of added features. 48 * - *beforefeatureremoved* Triggered before a feature is removed. Listeners 49 * will receive an object with a *feature* property referencing the 50 * feature to be removed. 51 * - *featureremoved* Triggerd after a feature is removed. The event 52 * object passed to listeners will have a *feature* property with a 53 * reference to the removed feature. 54 * - *featuresremoved* Triggered after features are removed. The event 55 * object passed to listeners will have a *features* property with a 56 * reference to an array of removed features. 48 57 * - *featureselected* Triggered after a feature is selected. Listeners 49 58 * will receive an object with a *feature* property referencing the … … 62 71 * the modified feature. 63 72 */ 64 EVENT_TYPES: ["beforefeatureadded", "featureadded", 65 "featuresadded", "featureselected", "featureunselected", 73 EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded", 74 "beforefeatureremoved", "featureremoved", "featuresremoved", 75 "featureselected", "featureunselected", 66 76 "beforefeaturemodified", "featuremodified", "afterfeaturemodified"], 67 77 … … 367 377 * Parameters: 368 378 * features - {Array(<OpenLayers.Feature.Vector>)} 369 */ 370 removeFeatures: function(features) { 379 * options - {Object} 380 */ 381 removeFeatures: function(features, options) { 371 382 if (!(features instanceof Array)) { 372 383 features = [features]; 373 384 } 385 if (features.length <= 0) { 386 return; 387 } 388 389 var notify = !options || !options.silent; 374 390 375 391 for (var i = features.length - 1; i >= 0; i--) { 376 392 var feature = features[i]; 393 394 if (notify) { 395 this.events.triggerEvent("beforefeatureremoved", { 396 feature: feature 397 }); 398 } 399 377 400 this.features = OpenLayers.Util.removeItem(this.features, feature); 378 401 … … 386 409 OpenLayers.Util.removeItem(this.selectedFeatures, feature); 387 410 } 411 412 if (notify) { 413 this.events.triggerEvent("featureremoved", { 414 feature: feature 415 }); 416 } 417 } 418 419 if (notify) { 420 this.events.triggerEvent("featuresremoved", {features: features}); 388 421 } 389 422 }, trunk/openlayers/tests/Layer/Vector.html
r7051 r7277 68 68 69 69 function test_Layer_Vector_removeFeatures(t) { 70 t.plan( 3);70 t.plan(6); 71 71 72 72 var layer = new OpenLayers.Layer.Vector(name); … … 76 76 var point2 = new OpenLayers.Geometry.Point(-111.14, 45.78); 77 77 var pointFeature2 = new OpenLayers.Feature.Vector(layer, point2); 78 78 79 79 layer.addFeatures([pointFeature1, pointFeature2]); 80 80 var features = layer.removeFeatures([pointFeature1]); … … 89 89 t.ok(layer.features.length == 0, 90 90 "OpenLayers.Layer.Vector.removeFeatures(layer.features) removes all feature from the features array"); 91 } 91 92 // 3 tests 93 layer.events.register('beforefeatureremoved', null, function(obj) { 94 t.ok(pointFeature1 == obj.feature, 95 "OpenLayers.Layer.Vector.removeFeatures triggers beforefeatureremoved with correct feature passed to callback"); 96 }); 97 layer.events.register('featureremoved', null, function(obj) { 98 t.ok(pointFeature1 == obj.feature, 99 "OpenLayers.Layer.Vector.removeFeatures triggers featureremoved with correct feature passed to callback"); 100 }); 101 layer.events.register('featuresremoved', null, function(obj) { 102 t.ok(pointFeature1 == obj.features[0], 103 "OpenLayers.Layer.Vector.removeFeatures triggers featuresremoved with correct features passed to callback"); 104 }); 105 layer.addFeatures([pointFeature1]); 106 layer.removeFeatures([pointFeature1]); 107 108 // 0 test 109 layer.events.register('beforefeatureremoved', null, function(obj) { 110 t.fail("OpenLayers.Layer.Vector.removeFeatures triggers beforefeatureremoved while it must not"); 111 }); 112 layer.events.register('featureremoved', null, function(obj) { 113 t.fail("OpenLayers.Layer.Vector.removeFeatures triggers featureremoved while it must not"); 114 }); 115 layer.events.register('featuresremoved', null, function(obj) { 116 t.fail("OpenLayers.Layer.Vector.removeFeatures triggers featuresremoved while it must not"); 117 }); 118 layer.addFeatures([pointFeature1]); 119 layer.removeFeatures([pointFeature1], {silent: true}); 120 } 92 121 93 122 function test_Layer_Vector_drawFeature(t) {
