trigger an event when the layer's opacity change. r=elemoine (closes #2112)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9616 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -1109,6 +1109,12 @@ OpenLayers.Layer = OpenLayers.Class({
|
||||
OpenLayers.Util.modifyDOMElement(element, null, null, null,
|
||||
null, null, null, opacity);
|
||||
}
|
||||
if (this.map != null) {
|
||||
this.map.events.triggerEvent("changelayer", {
|
||||
layer: this,
|
||||
property: "opacity"
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -61,12 +61,12 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
* - *removelayer* triggered after a layer has been removed. The event
|
||||
* object will include a *layer* property that references the removed
|
||||
* layer.
|
||||
* - *changelayer* triggered after a layer name change, order change, or
|
||||
* visibility change (due to resolution thresholds). Listeners will
|
||||
* receive an event object with *layer* and *property* properties. The
|
||||
* *layer* property will be a reference to the changed layer. The
|
||||
* *property* property will be a key to the changed property (name,
|
||||
* visibility, or order).
|
||||
* - *changelayer* triggered after a layer name change, order change,
|
||||
* opacity change or visibility change (due to resolution thresholds).
|
||||
* Listeners will receive an event object with *layer* and *property*
|
||||
* properties. The *layer* property will be a reference to the
|
||||
* changed layer. The *property* property will be a key to the
|
||||
* changed property (name, order, opacity or visibility).
|
||||
* - *movestart* triggered after the start of a drag, pan, or zoom
|
||||
* - *move* triggered after each drag, pan, or zoom
|
||||
* - *moveend* triggered after a drag, pan, or zoom completes
|
||||
|
||||
@@ -469,7 +469,36 @@
|
||||
t.eq(hasBase, true, "when afterAdd is called, map has a base layer");
|
||||
|
||||
}
|
||||
|
||||
function test_setOpacity(t) {
|
||||
t.plan(5);
|
||||
|
||||
var map, layer, log;
|
||||
|
||||
map = new OpenLayers.Map("map");
|
||||
layer = new OpenLayers.Layer("");
|
||||
map.addLayer(layer);
|
||||
|
||||
log = [];
|
||||
map.events.register('changelayer', t, function(event) {
|
||||
log.push({layer: event.layer, property: event.property});
|
||||
});
|
||||
layer.setOpacity(0.42);
|
||||
t.eq(layer.opacity, 0.42,
|
||||
"setOpacity() set layer.opacity to correct value");
|
||||
t.eq(log.length, 1,
|
||||
"setOpacity() triggers changelayer once");
|
||||
t.ok(log[0].layer == layer,
|
||||
"changelayer listener called with expected layer");
|
||||
t.eq(log[0].property, "opacity",
|
||||
"changelayer listener called with expected property");
|
||||
|
||||
// This call must not trig the event because the opacity value is the same.
|
||||
log = [];
|
||||
layer.setOpacity(0.42);
|
||||
t.eq(log.length, 0,
|
||||
"setOpacity() does not trigger changelayer if the opacity value is the same");
|
||||
}
|
||||
|
||||
|
||||
/******
|
||||
|
||||
Reference in New Issue
Block a user