Give the GetFeature control a beforefeaturesselected and featuresselected event. p=komacke, r=me (closes #2442)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10035 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -161,6 +161,14 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* featureselected - Triggered when <click> is true and a feature is
|
||||
* selected. The event object has a feature property with the
|
||||
* selected feature
|
||||
* beforefeaturesselected - Triggered when <click> is true before a
|
||||
* set of features is selected. The event object is an array of
|
||||
* feature properties with the features about to be selected.
|
||||
* Return false after receiving this event to discontinue processing
|
||||
* of all featureselected events and the featuresselected event.
|
||||
* featuresselected - Triggered when <click> is true and a set of
|
||||
* features is selected. The event object is an array of feature
|
||||
* properties of the selected features
|
||||
* featureunselected - Triggered when <click> is true and a feature is
|
||||
* unselected. The event object has a feature property with the
|
||||
* unselected feature
|
||||
@@ -171,8 +179,9 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* outfeature - Triggered when <hover> is true and the mouse moves
|
||||
* moved away from a hover-selected feature
|
||||
*/
|
||||
EVENT_TYPES: ["featureselected", "featureunselected", "clickout",
|
||||
"beforefeatureselected", "hoverfeature", "outfeature"],
|
||||
EVENT_TYPES: ["featureselected", "featuresselected", "featureunselected",
|
||||
"clickout", "beforefeatureselected", "beforefeaturesselected",
|
||||
"hoverfeature", "outfeature"],
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.Control.GetFeature
|
||||
@@ -435,7 +444,7 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
/**
|
||||
* Method: select
|
||||
* Add feature to the hash of selected features and trigger the
|
||||
* featureselected event.
|
||||
* featureselected and featuresselected events.
|
||||
*
|
||||
* Parameters:
|
||||
* features - {<OpenLayers.Feature.Vector>} or an array of features
|
||||
@@ -448,24 +457,34 @@ OpenLayers.Control.GetFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
features = [features];
|
||||
}
|
||||
|
||||
var feature;
|
||||
for(var i=0, len=features.length; i<len; ++i) {
|
||||
feature = features[i];
|
||||
if(this.features[feature.fid || feature.id]) {
|
||||
if(this.modifiers.toggle) {
|
||||
this.unselect(this.features[feature.fid || feature.id]);
|
||||
}
|
||||
} else {
|
||||
cont = this.events.triggerEvent("beforefeatureselected", {
|
||||
feature: feature
|
||||
});
|
||||
if(cont !== false) {
|
||||
this.features[feature.fid || feature.id] = feature;
|
||||
|
||||
this.events.triggerEvent("featureselected",
|
||||
{feature: feature});
|
||||
cont = this.events.triggerEvent("beforefeaturesselected", {
|
||||
features: features
|
||||
});
|
||||
if(cont !== false) {
|
||||
var selectedFeatures = [];
|
||||
var feature;
|
||||
for(var i=0, len=features.length; i<len; ++i) {
|
||||
feature = features[i];
|
||||
if(this.features[feature.fid || feature.id]) {
|
||||
if(this.modifiers.toggle) {
|
||||
this.unselect(this.features[feature.fid || feature.id]);
|
||||
}
|
||||
} else {
|
||||
cont = this.events.triggerEvent("beforefeatureselected", {
|
||||
feature: feature
|
||||
});
|
||||
if(cont !== false) {
|
||||
this.features[feature.fid || feature.id] = feature;
|
||||
selectedFeatures.push(feature);
|
||||
|
||||
this.events.triggerEvent("featureselected",
|
||||
{feature: feature});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.events.triggerEvent("featuresselected", {
|
||||
features: selectedFeatures
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user