Trigger feature related events with feature information and layer related events with layer information. Also adding events.on and events.un convenience methods. r=crschmidt (closes #1343)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@6149 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2008-02-08 23:31:27 +00:00
parent 464fb30589
commit f27833f1db
20 changed files with 326 additions and 118 deletions

View File

@@ -19,6 +19,46 @@
*/
OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
/**
* Constant: EVENT_TYPES
* {Array(String)} Supported application event types. Register a listener
* for a particular event with the following syntax:
* (code)
* layer.events.register(type, obj, listener);
* (end)
*
* Listeners will be called with a reference to an event object. The
* properties of this event depends on exactly what happened.
*
* All event objects have at least the following properties:
* - *object* {Object} A reference to layer.events.object.
* - *element* {DOMElement} A reference to layer.events.element.
*
* Supported map event types:
* - *loadstart* Triggered when layer loading starts.
* - *loadend* Triggered when layer loading ends.
* - *loadcancel* Triggered when layer loading is canceled.
* - *visibilitychanged* Triggered when layer visibility is changed.
* - *beforefeatureadded* Triggered before a feature is added. Listeners
* will receive an object with a *feature* property referencing the
* feature to be added.
* - *featureadded* Triggered after a feature is added. The event
* object passed to listeners will have a *feature* property with a
* reference to the added feature.
* - *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.
* - *featureselected* Triggered after a feature is selected. Listeners
* will receive an object with a *feature* property referencing the
* selected feature.
* - *featureunselected* Triggered after a feature is unselected.
* Listeners will receive an object with a *feature* property
* referencing the unselected feature.
*/
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"beforefeatureadded", "featureadded",
"featuresadded", "featureselected", "featureunselected"],
/**
* APIProperty: isBaseLayer
* {Boolean} The layer is a base layer. Default is true. Set this property
@@ -273,6 +313,9 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
}
if (notify) {
this.events.triggerEvent("beforefeatureadded", {
feature: feature
});
this.preFeatureInsert(feature);
}
@@ -281,9 +324,16 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
}
if (notify) {
this.events.triggerEvent("featureadded", {
feature: feature
});
this.onFeatureInsert(feature);
}
}
if(notify) {
this.events.triggerEvent("featuresadded", {features: features});
}
},