OpenLayers OpenLayers

Changeset 7376

Show
Ignore:
Timestamp:
06/18/08 18:55:13 (6 months ago)
Author:
tschaub
Message:

Add beforefeaturesadded (plural) event and respect the return from beforefeatureadded and beforefeaturesadded. This allows listeners to stop features from being added to a layer.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/topp/almanac/lib/OpenLayers/Layer/Vector.js

    r7368 r7376  
    3939     *  - *beforefeatureadded* Triggered before a feature is added.  Listeners 
    4040     *      will receive an object with a *feature* property referencing the 
    41      *      feature to be added. 
     41     *      feature to be added.  To stop the feature from being added, a 
     42     *      listener should return false. 
     43     *  - *beforefeaturesadded* Triggered before an array of features is added. 
     44     *      Listeners will receive an object with a *features* property 
     45     *      referencing the feature to be added. To stop the features from 
     46     *      being added, a listener should return false. 
    4247     *  - *featureadded* Triggered after a feature is added.  The event 
    4348     *      object passed to listeners will have a *feature* property with a 
     
    7479     *      the modified feature. 
    7580     */ 
    76     EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded", 
     81    EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded", 
     82                  "featureadded", "featuresadded", 
    7783                  "beforefeatureremoved", "featureremoved", "featuresremoved", 
    7884                  "featureserased", "featureselected", "featureunselected",  
     
    369375        } 
    370376         
     377        if(this.events.triggerEvent("beforefeaturesadded", 
     378                                    {features: features}) === false) { 
     379            return; 
     380        } 
     381         
    371382        var notify = !options || !options.silent; 
    372383 
     
    386397 
    387398            if (notify) { 
    388                 this.events.triggerEvent("beforefeatureadded", { 
    389                     feature: feature 
    390                 }); 
     399                if(this.events.triggerEvent("beforefeatureadded", 
     400                                            {feature: feature}) === false) { 
     401                    continue; 
     402                }; 
    391403                this.preFeatureInsert(feature); 
    392404            }