Avoid firing duplicate change events in ol.layer.Layer
This commit is contained in:
@@ -72,17 +72,6 @@ ol.layer.Base = function(options) {
|
|||||||
|
|
||||||
this.setValues(values);
|
this.setValues(values);
|
||||||
|
|
||||||
goog.events.listen(this, [
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.BRIGHTNESS),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.CONTRAST),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.HUE),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.OPACITY),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.SATURATION),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.MAX_RESOLUTION),
|
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.MIN_RESOLUTION)
|
|
||||||
],
|
|
||||||
this.handleLayerChange, false, this);
|
|
||||||
|
|
||||||
goog.events.listen(this,
|
goog.events.listen(this,
|
||||||
ol.Object.getChangeEventType(ol.layer.LayerProperty.VISIBLE),
|
ol.Object.getChangeEventType(ol.layer.LayerProperty.VISIBLE),
|
||||||
this.handleLayerVisibleChange, false, this);
|
this.handleLayerVisibleChange, false, this);
|
||||||
|
|||||||
@@ -210,6 +210,13 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getBrightness()).to.be(-0.7);
|
expect(layer.getBrightness()).to.be(-0.7);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers a change event', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||||
|
layer.setBrightness(0.5);
|
||||||
|
expect(listener.calledOnce).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#setContrast', function() {
|
describe('#setContrast', function() {
|
||||||
@@ -238,6 +245,13 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getContrast()).to.be(42);
|
expect(layer.getContrast()).to.be(42);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers a change event', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||||
|
layer.setContrast(43);
|
||||||
|
expect(listener.calledOnce).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -277,6 +291,13 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getHue()).to.be(-100);
|
expect(layer.getHue()).to.be(-100);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers a change event', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||||
|
layer.setHue(0.5);
|
||||||
|
expect(listener.calledOnce).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -301,6 +322,13 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getOpacity()).to.be(0.3);
|
expect(layer.getOpacity()).to.be(0.3);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers a change event', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||||
|
layer.setOpacity(0.4);
|
||||||
|
expect(listener.calledOnce).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -330,6 +358,13 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getSaturation()).to.be(42);
|
expect(layer.getSaturation()).to.be(42);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('triggers a change event', function() {
|
||||||
|
var listener = sinon.spy();
|
||||||
|
layer.on(ol.ObjectEventType.CHANGE, listener);
|
||||||
|
layer.setSaturation(42);
|
||||||
|
expect(listener.calledOnce).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -356,6 +391,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
|
goog.require('ol.ObjectEventType');
|
||||||
goog.require('ol.layer.Layer');
|
goog.require('ol.layer.Layer');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.Source');
|
goog.require('ol.source.Source');
|
||||||
|
|||||||
Reference in New Issue
Block a user