OpenLayers OpenLayers

Changeset 8003

Show
Ignore:
Timestamp:
09/12/08 03:58:23 (2 years ago)
Author:
tschaub
Message:

Adding paging and cluster strategies. The paging strategy intercepts a batch of features bound for the layer and caches them, giving the layer one page at a time. The cluster strategy intercepts a batch of features and groups proximate features as clusters - giving the clusters to the layer instead. Thanks for the careful review Erik. r=euzuro (see #1606).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/openlayers/lib/OpenLayers.js

    r8000 r8003  
    186186            "OpenLayers/Strategy.js", 
    187187            "OpenLayers/Strategy/Fixed.js", 
     188            "OpenLayers/Strategy/Cluster.js", 
     189            "OpenLayers/Strategy/Paging.js", 
    188190            "OpenLayers/Strategy/BBOX.js", 
    189191            "OpenLayers/Protocol.js", 
  • trunk/openlayers/lib/OpenLayers/Layer/Vector.js

    r7976 r8003  
    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 
     
    7378     *      for a new set of features. 
    7479     */ 
    75     EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded", 
     80    EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded", 
     81                  "featureadded", "featuresadded", 
    7682                  "beforefeatureremoved", "featureremoved", "featuresremoved", 
    7783                  "beforefeatureselected", "featureselected", "featureunselected",  
     
    444450         
    445451        var notify = !options || !options.silent; 
     452        if(notify) { 
     453            var event = {features: features}; 
     454            var ret = this.events.triggerEvent("beforefeaturesadded", event); 
     455            if(ret === false) { 
     456                return; 
     457            } 
     458            features = event.features; 
     459        } 
     460         
    446461 
    447462        for (var i=0, len=features.length; i<len; i++) { 
     
    470485 
    471486            if (notify) { 
    472                 this.events.triggerEvent("beforefeatureadded", { 
    473                     feature: feature 
    474                 }); 
     487                if(this.events.triggerEvent("beforefeatureadded", 
     488                                            {feature: feature}) === false) { 
     489                    continue; 
     490                }; 
    475491                this.preFeatureInsert(feature); 
    476492            } 
  • trunk/openlayers/tests/list-tests.html

    r8000 r8003  
    125125    <li>Rule.html</li> 
    126126    <li>Strategy.html</li> 
     127    <li>Strategy/Cluster.html</li> 
    127128    <li>Strategy/Fixed.html</li> 
     129    <li>Strategy/Paging.html</li> 
    128130    <li>Strategy/BBOX.html</li> 
    129131    <li>Style.html</li>