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,
|
OpenLayers.Util.modifyDOMElement(element, null, null, null,
|
||||||
null, null, null, opacity);
|
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
|
* - *removelayer* triggered after a layer has been removed. The event
|
||||||
* object will include a *layer* property that references the removed
|
* object will include a *layer* property that references the removed
|
||||||
* layer.
|
* layer.
|
||||||
* - *changelayer* triggered after a layer name change, order change, or
|
* - *changelayer* triggered after a layer name change, order change,
|
||||||
* visibility change (due to resolution thresholds). Listeners will
|
* opacity change or visibility change (due to resolution thresholds).
|
||||||
* receive an event object with *layer* and *property* properties. The
|
* Listeners will receive an event object with *layer* and *property*
|
||||||
* *layer* property will be a reference to the changed layer. The
|
* properties. The *layer* property will be a reference to the
|
||||||
* *property* property will be a key to the changed property (name,
|
* changed layer. The *property* property will be a key to the
|
||||||
* visibility, or order).
|
* changed property (name, order, opacity or visibility).
|
||||||
* - *movestart* triggered after the start of a drag, pan, or zoom
|
* - *movestart* triggered after the start of a drag, pan, or zoom
|
||||||
* - *move* triggered after each drag, pan, or zoom
|
* - *move* triggered after each drag, pan, or zoom
|
||||||
* - *moveend* triggered after a drag, pan, or zoom completes
|
* - *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");
|
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