Adding a beforefeatureselected event to the vector layer events. If a listener returns false, the feature is not selected. The modify feature control now listens for beforefeatureselected and triggers beforefeaturemodified. If a listener returns false, feature modification never begins. r=elemione,ahocevar (closes #1427)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@7616 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -201,6 +201,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
layer, selectOptions
|
||||
);
|
||||
this.layer.events.on({
|
||||
"beforefeatureselected": this.beforeSelectFeature,
|
||||
"featureselected": this.selectFeature,
|
||||
"featureunselected": this.unselectFeature,
|
||||
scope: this
|
||||
@@ -239,6 +240,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
*/
|
||||
destroy: function() {
|
||||
this.layer.events.un({
|
||||
"beforefeatureselected": this.beforeSelectFeature,
|
||||
"featureselected": this.selectFeature,
|
||||
"featureunselected": this.unselectFeature,
|
||||
scope: this
|
||||
@@ -287,6 +289,20 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
}
|
||||
return deactivated;
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: beforeSelectFeature
|
||||
* Called before a feature is selected.
|
||||
*
|
||||
* Parameters:
|
||||
* object - {Object} Object with a feature property referencing the
|
||||
* selected feature.
|
||||
*/
|
||||
beforeSelectFeature: function(object) {
|
||||
return this.layer.events.triggerEvent(
|
||||
"beforefeaturemodified", {feature: object.feature}
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: selectFeature
|
||||
@@ -301,8 +317,6 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
this.resetVertices();
|
||||
this.dragControl.activate();
|
||||
this.onModificationStart(this.feature);
|
||||
this.layer.events.triggerEvent("beforefeaturemodified",
|
||||
{feature: this.feature});
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user