From 788ac5f41da5876a0f8d3600949677b31a1af424 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 21 Aug 2013 12:29:28 +0200 Subject: [PATCH 1/2] Add ol.source.Source#dispatchChangeEvent --- src/ol/source/source.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ol/source/source.js b/src/ol/source/source.js index 6d52d6616b..7d1cf9bc43 100644 --- a/src/ol/source/source.js +++ b/src/ol/source/source.js @@ -49,6 +49,14 @@ ol.source.Source = function(options) { goog.inherits(ol.source.Source, goog.events.EventTarget); +/** + * @protected + */ +ol.source.Source.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE); +}; + + /** * @protected */ From 0170c426ee19e0800506156905c85010b8197142 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 21 Aug 2013 12:29:49 +0200 Subject: [PATCH 2/2] Propagate change events from sources via layers --- src/ol/layer/layer.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ol/layer/layer.js b/src/ol/layer/layer.js index 2e331ff189..98a3b027a8 100644 --- a/src/ol/layer/layer.js +++ b/src/ol/layer/layer.js @@ -28,6 +28,9 @@ ol.layer.Layer = function(options) { */ this.source_ = options.source; + goog.events.listen(this.source_, goog.events.EventType.CHANGE, + this.handleSourceChange_, false, this); + if (!this.source_.isReady()) { goog.events.listenOnce(this.source_, goog.events.EventType.LOAD, this.handleSourceLoad_, false, this); @@ -78,6 +81,14 @@ ol.layer.Layer.prototype.getSource = function() { }; +/** + * @private + */ +ol.layer.Layer.prototype.handleSourceChange_ = function() { + this.dispatchChangeEvent(); +}; + + /** * @private */