Avoid firing duplicate change events in ol.layer.Layer

This commit is contained in:
Tim Schaub
2013-12-11 01:06:04 -07:00
parent 3e905d804c
commit 8fbfac52d4
2 changed files with 36 additions and 11 deletions

View File

@@ -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);

View File

@@ -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');