New eventListeners APIProperty for OpenLayers.Tile.
Same behavior as Map.eventListeners or Layer.eventListeners.
New listeners can be registered using the options parameter:
new OpenLayers.Tile.Image(layer, position, bounds, null, size, {
eventListeners: {
loadstart: function(evt) {
// ...
},
loadend: function(evt) {
// ...
}
}
});
This commit is contained in:
@@ -38,6 +38,15 @@ OpenLayers.Tile = OpenLayers.Class({
|
|||||||
*/
|
*/
|
||||||
events: null,
|
events: null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APIProperty: eventListeners
|
||||||
|
* {Object} If set as an option at construction, the eventListeners
|
||||||
|
* object will be registered with <OpenLayers.Events.on>. Object
|
||||||
|
* structure must be a listeners object as shown in the example for
|
||||||
|
* the events.on method.
|
||||||
|
*/
|
||||||
|
eventListeners: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Property: id
|
* Property: id
|
||||||
* {String} null
|
* {String} null
|
||||||
@@ -109,10 +118,13 @@ OpenLayers.Tile = OpenLayers.Class({
|
|||||||
|
|
||||||
//give the tile a unique id based on its BBOX.
|
//give the tile a unique id based on its BBOX.
|
||||||
this.id = OpenLayers.Util.createUniqueID("Tile_");
|
this.id = OpenLayers.Util.createUniqueID("Tile_");
|
||||||
|
|
||||||
this.events = new OpenLayers.Events(this);
|
|
||||||
|
|
||||||
OpenLayers.Util.extend(this, options);
|
OpenLayers.Util.extend(this, options);
|
||||||
|
|
||||||
|
this.events = new OpenLayers.Events(this);
|
||||||
|
if (this.eventListeners instanceof Object) {
|
||||||
|
this.events.on(this.eventListeners);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -139,7 +151,11 @@ OpenLayers.Tile = OpenLayers.Class({
|
|||||||
this.size = null;
|
this.size = null;
|
||||||
this.position = null;
|
this.position = null;
|
||||||
|
|
||||||
|
if (this.eventListeners) {
|
||||||
|
this.events.un(this.eventListeners);
|
||||||
|
}
|
||||||
this.events.destroy();
|
this.events.destroy();
|
||||||
|
this.eventListeners = null;
|
||||||
this.events = null;
|
this.events = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
|
|
||||||
function test_Tile_constructor (t) {
|
function test_Tile_constructor (t) {
|
||||||
t.plan( 12 );
|
t.plan( 13 );
|
||||||
|
|
||||||
setUp();
|
setUp();
|
||||||
|
|
||||||
@@ -33,7 +33,11 @@
|
|||||||
var url = "bobob";
|
var url = "bobob";
|
||||||
var size = new OpenLayers.Size(5,6);
|
var size = new OpenLayers.Size(5,6);
|
||||||
|
|
||||||
tile = new OpenLayers.Tile(layer, position, bounds, url, size);
|
tile = new OpenLayers.Tile(layer, position, bounds, url, size, {
|
||||||
|
eventListeners: {
|
||||||
|
loadstart: OpenLayers.Function.False
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
t.ok(tile instanceof OpenLayers.Tile, "new OpenLayers.Tile returns Tile object");
|
t.ok(tile instanceof OpenLayers.Tile, "new OpenLayers.Tile returns Tile object");
|
||||||
t.ok(tile.layer === layer, "tile.layer set correctly");
|
t.ok(tile.layer === layer, "tile.layer set correctly");
|
||||||
@@ -48,7 +52,9 @@
|
|||||||
t.ok(tile.id != null, "tile is given an id");
|
t.ok(tile.id != null, "tile is given an id");
|
||||||
t.ok(OpenLayers.String.startsWith(tile.id, "Tile_"),
|
t.ok(OpenLayers.String.startsWith(tile.id, "Tile_"),
|
||||||
"tile's id starts correctly");
|
"tile's id starts correctly");
|
||||||
t.ok(tile.events != null, "tile's events intitialized");
|
t.ok(tile.events != null, "tile's events initialized");
|
||||||
|
t.ok(tile.events.listeners.loadstart.length == 1,
|
||||||
|
"tile's events initialized from eventListeners option");
|
||||||
|
|
||||||
tearDown();
|
tearDown();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user