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