Layer loads should be handled by LayerRenderers, not the Map
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
goog.provide('ol.LayerRenderer');
|
||||
|
||||
goog.require('goog.events');
|
||||
goog.require('goog.events.EventType');
|
||||
goog.require('ol.Layer');
|
||||
goog.require('ol.LayerProperty');
|
||||
goog.require('ol.Object');
|
||||
@@ -41,6 +42,9 @@ ol.LayerRenderer = function(map, layer) {
|
||||
ol.Object.getChangedEventType(ol.LayerProperty.HUE),
|
||||
this.handleLayerHueChange, false, this);
|
||||
|
||||
goog.events.listen(this.layer_, goog.events.EventType.LOAD,
|
||||
this.handleLayerLoad, false, this);
|
||||
|
||||
goog.events.listen(this.layer_,
|
||||
ol.Object.getChangedEventType(ol.LayerProperty.OPACITY),
|
||||
this.handleLayerOpacityChange, false, this);
|
||||
@@ -97,6 +101,12 @@ ol.LayerRenderer.prototype.handleLayerHueChange = goog.nullFunction;
|
||||
ol.LayerRenderer.prototype.handleLayerOpacityChange = goog.nullFunction;
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
*/
|
||||
ol.LayerRenderer.prototype.handleLayerLoad = goog.nullFunction;
|
||||
|
||||
|
||||
/**
|
||||
* @protected
|
||||
*/
|
||||
|
||||
@@ -511,15 +511,6 @@ ol.Map.prototype.handleLayerAdd = function(layer) {
|
||||
}
|
||||
var layerRenderer = this.createLayerRenderer(layer);
|
||||
this.setLayerRenderer(layer, layerRenderer);
|
||||
goog.events.listen(layer, goog.events.EventType.LOAD, this.handleLayerLoad,
|
||||
false, this);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
ol.Map.prototype.handleLayerLoad = function() {
|
||||
this.render();
|
||||
};
|
||||
|
||||
|
||||
@@ -528,8 +519,6 @@ ol.Map.prototype.handleLayerLoad = function() {
|
||||
* @protected
|
||||
*/
|
||||
ol.Map.prototype.handleLayerRemove = function(layer) {
|
||||
goog.events.unlisten(layer, goog.events.EventType.LOAD, this.handleLayerLoad,
|
||||
false, this);
|
||||
this.removeLayerRenderer(layer);
|
||||
};
|
||||
|
||||
|
||||
@@ -80,6 +80,14 @@ ol.webgl.LayerRenderer.prototype.handleLayerHueChange = function() {
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
ol.webgl.LayerRenderer.prototype.handleLayerLoad = function() {
|
||||
this.dispatchChangeEvent();
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user