Merge pull request #3100 from fredj/tilelayer-attr

Assert that ol.layer.Tile#getPreload is always set
This commit is contained in:
Frédéric Junod
2015-01-07 17:54:10 +01:00
6 changed files with 50 additions and 21 deletions

View File

@@ -30,18 +30,24 @@ ol.layer.TileProperty = {
ol.layer.Tile = function(opt_options) {
var options = goog.isDef(opt_options) ? opt_options : {};
goog.base(this, /** @type {olx.layer.LayerOptions} */ (options));
if (!goog.isDef(this.getPreload())) {
this.setPreload(0);
}
if (!goog.isDef(this.getUseInterimTilesOnError())) {
this.setUseInterimTilesOnError(true);
}
};
goog.inherits(ol.layer.Tile, ol.layer.Layer);
/**
* @return {number|undefined} The level to preload tiles up to.
* @return {number} The level to preload tiles up to.
* @observable
* @api
*/
ol.layer.Tile.prototype.getPreload = function() {
return /** @type {number|undefined} */ (
this.get(ol.layer.TileProperty.PRELOAD));
return /** @type {number} */ (this.get(ol.layer.TileProperty.PRELOAD));
};
goog.exportProperty(
ol.layer.Tile.prototype,
@@ -72,12 +78,12 @@ goog.exportProperty(
/**
* @return {boolean|undefined} Use interim tiles on error.
* @return {boolean} Use interim tiles on error.
* @observable
* @api
*/
ol.layer.Tile.prototype.getUseInterimTilesOnError = function() {
return /** @type {boolean|undefined} */ (
return /** @type {boolean} */ (
this.get(ol.layer.TileProperty.USE_INTERIM_TILES_ON_ERROR));
};
goog.exportProperty(
@@ -87,7 +93,7 @@ goog.exportProperty(
/**
* @param {boolean|undefined} useInterimTilesOnError Use interim tiles on error.
* @param {boolean} useInterimTilesOnError Use interim tiles on error.
* @observable
* @api
*/

View File

@@ -281,9 +281,6 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
tilesToDrawByZ, getTileIfLoaded);
var useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();
if (!goog.isDef(useInterimTilesOnError)) {
useInterimTilesOnError = true;
}
var tmpExtent = ol.extent.createEmpty();
var tmpTileRange = new ol.TileRange(0, 0, 0, 0);

View File

@@ -136,9 +136,6 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame =
tilesToDrawByZ, getTileIfLoaded);
var useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();
if (!goog.isDef(useInterimTilesOnError)) {
useInterimTilesOnError = true;
}
var tmpExtent = ol.extent.createEmpty();
var tmpTileRange = new ol.TileRange(0, 0, 0, 0);

View File

@@ -246,8 +246,7 @@ ol.renderer.Layer.prototype.snapCenterToPixel =
* @param {ol.proj.Projection} projection Projection.
* @param {ol.Extent} extent Extent.
* @param {number} currentZ Current Z.
* @param {number|undefined} preload Load low resolution tiles up to 'preload'
* levels.
* @param {number} preload Load low resolution tiles up to 'preload' levels.
* @param {function(this: T, ol.Tile)=} opt_tileCallback Tile callback.
* @param {T=} opt_this Object to use as `this` in `opt_tileCallback`.
* @protected
@@ -264,9 +263,6 @@ ol.renderer.Layer.prototype.manageTilePyramid = function(
var tileQueue = frameState.tileQueue;
var minZoom = tileGrid.getMinZoom();
var tile, tileRange, tileResolution, x, y, z;
if (!goog.isDef(preload)) {
preload = 0;
}
for (z = currentZ; z >= minZoom; --z) {
tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, tileRange);
tileResolution = tileGrid.getResolution(z);

View File

@@ -198,10 +198,6 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame =
tilesToDrawByZ, getTileIfLoaded);
var useInterimTilesOnError = tileLayer.getUseInterimTilesOnError();
if (!goog.isDef(useInterimTilesOnError)) {
useInterimTilesOnError = true;
}
var allTilesLoaded = true;
var tmpExtent = ol.extent.createEmpty();
var tmpTileRange = new ol.TileRange(0, 0, 0, 0);

View File

@@ -0,0 +1,37 @@
goog.provide('ol.test.layer.Tile');
describe('ol.layer.Tile', function() {
describe('constructor (defaults)', function() {
var layer;
beforeEach(function() {
layer = new ol.layer.Tile({
source: new ol.source.OSM()
});
});
afterEach(function() {
goog.dispose(layer);
});
it('creates an instance', function() {
expect(layer).to.be.a(ol.layer.Tile);
});
it('provides default preload', function() {
expect(layer.getPreload()).to.be(0);
});
it('provides default useInterimTilesOnError', function() {
expect(layer.getUseInterimTilesOnError()).to.be(true);
});
});
});
goog.require('goog.dispose');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');