Changeset 9618

Show
Ignore:
Timestamp:
08/13/09 06:31:47 (13 months ago)
Author:
elemoine
Message:

add changelayer event to mergeNewParams function, r=bartvde (closes #2179)

Location:
trunk/openlayers
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/openlayers/lib/OpenLayers/Layer/HTTPRequest.js

    r7627 r9618  
    122122    mergeNewParams:function(newParams) { 
    123123        this.params = OpenLayers.Util.extend(this.params, newParams); 
    124         return this.redraw(); 
     124        var ret = this.redraw(); 
     125        if(this.map != null) { 
     126            this.map.events.triggerEvent("changelayer", { 
     127                layer: this, 
     128                property: "params" 
     129            }); 
     130        } 
     131        return ret; 
    125132    }, 
    126133 
  • trunk/openlayers/lib/OpenLayers/Map.js

    r9616 r9618  
    6363     *      layer. 
    6464     *  - *changelayer* triggered after a layer name change, order change, 
    65      *      opacity change or visibility change (due to resolution thresholds). 
    66      *      Listeners will receive an event object with *layer* and *property* 
    67      *      properties.  The *layer* property will be a reference to the 
    68      *      changed layer.  The *property* property will be a key to the 
    69      *      changed property (name, order, opacity or visibility). 
     65     *      opacity change, params change or visibility change 
     66     *      (due to resolution thresholds). Listeners will receive an event 
     67     *      object with *layer* and *property* properties. The *layer* 
     68     *      property will be a reference to the changed layer.  
     69     *      The *property* property will be a key to the 
     70     *      changed property (name, order, opacity, params or visibility). 
    7071     *  - *movestart* triggered after the start of a drag, pan, or zoom 
    7172     *  - *move* triggered after each drag, pan, or zoom 
  • trunk/openlayers/tests/Layer/HTTPRequest.html

    r6724 r9618  
    6666 
    6767    function test_Layer_HTTPRequest_mergeNewParams (t) { 
    68         t.plan( 4 ); 
    69  
     68        t.plan( 8 ); 
     69 
     70        var map = new OpenLayers.Map('map'); 
    7071        layer = new OpenLayers.Layer.HTTPRequest(name, url, params, options); 
     72        map.addLayer(layer); 
     73 
     74        var scope = {some: "scope"}, log = []; 
     75        map.events.on({ 
     76            changelayer: function(e) { 
     77                log.push({layer: e.layer, property: e.property, scope: this}); 
     78            }, 
     79            scope: scope 
     80        }); 
    7181         
    7282        var newParams = { layers: 'sooper',  
     
    7787        t.eq( layer.params.layers, "sooper", "mergeNewParams() overwrites well"); 
    7888        t.eq( layer.params.chickpeas, "image/png", "mergeNewParams() adds well"); 
     89        t.eq( log.length, 1, "mergeNewParams() triggers changelayer once"); 
     90        t.ok( log[0].layer == layer, "mergeNewParams() passes changelayer listener the expected layer"); 
     91        t.ok( log[0].property == "params", "mergeNewParams() passes changelayer listener the property \"params\""); 
     92        t.eq( log[0].scope, scope, "mergeNewParams() executes changelayer listener with expected scope"); 
    7993 
    8094        newParams.chickpeas = 151; 
     
    86100        } 
    87101        layer.mergeNewParams(); 
    88  
    89  
    90102    } 
    91103