Changeset 9616

Show
Ignore:
Timestamp:
08/10/09 06:10:29 (13 months ago)
Author:
fredj
Message:

trigger an event when the layer's opacity change. r=elemoine (closes #2112)

Location:
trunk/openlayers
Files:
3 modified

Legend:

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

    r9266 r9616  
    11101110                                                 null, null, null, opacity); 
    11111111            } 
     1112            if (this.map != null) { 
     1113                this.map.events.triggerEvent("changelayer", { 
     1114                    layer: this, 
     1115                    property: "opacity" 
     1116                }); 
     1117            } 
    11121118        } 
    11131119    }, 
  • trunk/openlayers/lib/OpenLayers/Map.js

    r9589 r9616  
    6262     *      object will include a *layer* property that references the removed 
    6363     *      layer. 
    64      *  - *changelayer* triggered after a layer name change, order change, or 
    65      *      visibility change (due to resolution thresholds).  Listeners will 
    66      *      receive an event object with *layer* and *property* properties.  The 
    67      *      *layer* property will be a reference to the changed layer.  The 
    68      *      *property* property will be a key to the changed property (name, 
    69      *      visibility, or order). 
     64     *  - *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). 
    7070     *  - *movestart* triggered after the start of a drag, pan, or zoom 
    7171     *  - *move* triggered after each drag, pan, or zoom 
  • trunk/openlayers/tests/Layer.html

    r9266 r9616  
    470470         
    471471    } 
    472  
     472     
     473    function test_setOpacity(t) { 
     474        t.plan(5); 
     475 
     476        var map, layer, log; 
     477         
     478        map = new OpenLayers.Map("map"); 
     479        layer = new OpenLayers.Layer(""); 
     480        map.addLayer(layer); 
     481 
     482        log = []; 
     483        map.events.register('changelayer', t, function(event) { 
     484            log.push({layer: event.layer, property: event.property}); 
     485        }); 
     486        layer.setOpacity(0.42); 
     487        t.eq(layer.opacity, 0.42, 
     488             "setOpacity() set layer.opacity to correct value"); 
     489        t.eq(log.length, 1, 
     490             "setOpacity() triggers changelayer once"); 
     491        t.ok(log[0].layer == layer, 
     492             "changelayer listener called with expected layer"); 
     493        t.eq(log[0].property, "opacity", 
     494             "changelayer listener called with expected property"); 
     495 
     496        // This call must not trig the event because the opacity value is the same. 
     497        log = []; 
     498        layer.setOpacity(0.42); 
     499        t.eq(log.length, 0, 
     500             "setOpacity() does not trigger changelayer if the opacity value is the same"); 
     501    } 
    473502 
    474503