Tile.Image.cloneMarkup renamed Tile.Image.createBackBuffer
This commit is contained in:
@@ -473,7 +473,7 @@ OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
|
|||||||
backBuffer.style.height = '100%';
|
backBuffer.style.height = '100%';
|
||||||
for(var i=0, lenI=this.grid.length; i<lenI; i++) {
|
for(var i=0, lenI=this.grid.length; i<lenI; i++) {
|
||||||
for(var j=0, lenJ=this.grid[i].length; j<lenJ; j++) {
|
for(var j=0, lenJ=this.grid[i].length; j<lenJ; j++) {
|
||||||
var tile = this.grid[i][j].cloneMarkup();
|
var tile = this.grid[i][j].createBackBuffer();
|
||||||
if(!tile) {
|
if(!tile) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -320,21 +320,23 @@ OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: cloneMarkup
|
* Method: createBackBuffer
|
||||||
* Clone this tile's markup.
|
* Create a backbuffer for this tile. A backbuffer isn't exactly a clone
|
||||||
|
* of the tile's markup, because we want to avoid the reloading of the
|
||||||
|
* image. So we clone the frame, and steal the image from the tile.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Returns:
|
||||||
* {DOMElement} The markup, or undefined if the tile has no image
|
* {DOMElement} The markup, or undefined if the tile has no image
|
||||||
* or if it's currently loading.
|
* or if it's currently loading.
|
||||||
*/
|
*/
|
||||||
cloneMarkup: function() {
|
createBackBuffer: function() {
|
||||||
if(!this.imgDiv || this.isLoading) {
|
if(!this.imgDiv || this.isLoading) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var clone = this.frame.cloneNode(false);
|
var backBuffer = this.frame.cloneNode(false);
|
||||||
clone.appendChild(this.imgDiv);
|
backBuffer.appendChild(this.imgDiv);
|
||||||
this.imgDiv = null;
|
this.imgDiv = null;
|
||||||
return clone;
|
return backBuffer;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -195,19 +195,19 @@ OpenLayers.Tile.Image.IFrame = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: cloneMarkup
|
* Method: createBackBuffer
|
||||||
* Override cloneMarkup to not attempt cloning when we use an iframe.
|
* Override createBackBuffer to do nothing when we use an iframe. Moving an
|
||||||
* Moving an iframe from one element to another makes it necessary to
|
* iframe from one element to another makes it necessary to reload the iframe
|
||||||
* reload the iframe because its content is lost. So we just give up.
|
* because its content is lost. So we just give up.
|
||||||
*
|
*
|
||||||
* Returns:
|
* Returns:
|
||||||
* {DOMElement}
|
* {DOMElement}
|
||||||
*/
|
*/
|
||||||
cloneMarkup: function() {
|
createBackBuffer: function() {
|
||||||
var clone;
|
var backBuffer;
|
||||||
if(!this.useIFrame) {
|
if(!this.useIFrame) {
|
||||||
clone = OpenLayers.Tile.Image.prototype.cloneMarkup.call(this);
|
backBuffer = OpenLayers.Tile.Image.prototype.createBackBuffer.call(this);
|
||||||
}
|
}
|
||||||
return clone;
|
return backBuffer;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -983,18 +983,18 @@
|
|||||||
map.addLayer(layer);
|
map.addLayer(layer);
|
||||||
map.zoomToMaxExtent();
|
map.zoomToMaxExtent();
|
||||||
|
|
||||||
var cloneMarkup = OpenLayers.Tile.Image.prototype.cloneMarkup;
|
var createBackBuffer = OpenLayers.Tile.Image.prototype.createBackBuffer;
|
||||||
|
|
||||||
var backBuffer;
|
var backBuffer;
|
||||||
|
|
||||||
OpenLayers.Tile.Image.prototype.cloneMarkup = function() {
|
OpenLayers.Tile.Image.prototype.createBackBuffer = function() {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
backBuffer = layer.createBackBuffer();
|
backBuffer = layer.createBackBuffer();
|
||||||
t.eq(backBuffer, undefined,
|
t.eq(backBuffer, undefined,
|
||||||
'createBackBuffer returns undefined if cloneMarkup returns undefined');
|
'createBackBuffer returns undefined if createBackBuffer returns undefined');
|
||||||
|
|
||||||
OpenLayers.Tile.Image.prototype.cloneMarkup = function() {
|
OpenLayers.Tile.Image.prototype.createBackBuffer = function() {
|
||||||
return document.createElement('div');
|
return document.createElement('div');
|
||||||
};
|
};
|
||||||
backBuffer = layer.createBackBuffer();
|
backBuffer = layer.createBackBuffer();
|
||||||
@@ -1010,7 +1010,7 @@
|
|||||||
'second tile has correct top');
|
'second tile has correct top');
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
OpenLayers.Tile.Image.prototype.cloneMarkup = cloneMarkup;
|
OpenLayers.Tile.Image.prototype.createBackBuffer = createBackBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_updateBackBufferData(t) {
|
function test_updateBackBufferData(t) {
|
||||||
|
|||||||
@@ -317,7 +317,7 @@
|
|||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_cloneMarkup(t) {
|
function test_createBackBuffer(t) {
|
||||||
t.plan(3);
|
t.plan(3);
|
||||||
|
|
||||||
var map = new OpenLayers.Map('map');
|
var map = new OpenLayers.Map('map');
|
||||||
@@ -328,9 +328,10 @@
|
|||||||
var tile = layer.grid[0][0];
|
var tile = layer.grid[0][0];
|
||||||
tile.isLoading = false;
|
tile.isLoading = false;
|
||||||
var img = tile.imgDiv;
|
var img = tile.imgDiv;
|
||||||
var clone = tile.cloneMarkup();
|
var bb = tile.createBackBuffer();
|
||||||
t.eq(clone.style.left, tile.frame.style.left, "clone has same left style as frame");
|
t.eq(bb.style.left, tile.frame.style.left,
|
||||||
t.ok(clone.firstChild === img, "image appended to clone");
|
"backbuffer has same left style as frame");
|
||||||
|
t.ok(bb.firstChild === img, "image appended to bb");
|
||||||
t.ok(tile.imgDiv == null, "image reference removed from tile");
|
t.ok(tile.imgDiv == null, "image reference removed from tile");
|
||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user