add featureremoved-type events to Layer.Vector, r=fredj (closes #1535)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@7277 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Éric Lemoine
2008-05-27 07:56:29 +00:00
parent 6553f9895a
commit 7699922bc2
2 changed files with 68 additions and 6 deletions

View File

@@ -45,6 +45,15 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
* - *featuresadded* Triggered after features are added. The event
* object passed to listeners will have a *features* property with a
* reference to an array of added features.
* - *beforefeatureremoved* Triggered before a feature is removed. Listeners
* will receive an object with a *feature* property referencing the
* feature to be removed.
* - *featureremoved* Triggerd after a feature is removed. The event
* object passed to listeners will have a *feature* property with a
* reference to the removed feature.
* - *featuresremoved* Triggered after features are removed. The event
* object passed to listeners will have a *features* property with a
* reference to an array of removed features.
* - *featureselected* Triggered after a feature is selected. Listeners
* will receive an object with a *feature* property referencing the
* selected feature.
@@ -61,8 +70,9 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
* Listeners will receive an object with a *feature* property referencing
* the modified feature.
*/
EVENT_TYPES: ["beforefeatureadded", "featureadded",
"featuresadded", "featureselected", "featureunselected",
EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
"beforefeatureremoved", "featureremoved", "featuresremoved",
"featureselected", "featureunselected",
"beforefeaturemodified", "featuremodified", "afterfeaturemodified"],
/**
@@ -366,14 +376,27 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
*
* Parameters:
* features - {Array(<OpenLayers.Feature.Vector>)}
* options - {Object}
*/
removeFeatures: function(features) {
removeFeatures: function(features, options) {
if (!(features instanceof Array)) {
features = [features];
}
if (features.length <= 0) {
return;
}
var notify = !options || !options.silent;
for (var i = features.length - 1; i >= 0; i--) {
var feature = features[i];
if (notify) {
this.events.triggerEvent("beforefeatureremoved", {
feature: feature
});
}
this.features = OpenLayers.Util.removeItem(this.features, feature);
if (feature.geometry) {
@@ -385,6 +408,16 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
OpenLayers.Util.removeItem(this.selectedFeatures, feature);
}
if (notify) {
this.events.triggerEvent("featureremoved", {
feature: feature
});
}
}
if (notify) {
this.events.triggerEvent("featuresremoved", {features: features});
}
},