Merge pull request #746 from bartvde/loadend
when using BBOX or Fixed strategies, pass on the filter used in the request to the loadstart event (r=@ahocevar,@elemoine)
This commit is contained in:
@@ -86,10 +86,13 @@ OpenLayers.Layer = OpenLayers.Class({
|
||||
* element - {DOMElement} A reference to layer.events.element.
|
||||
*
|
||||
* Supported map event types:
|
||||
* loadstart - Triggered when layer loading starts.
|
||||
* loadend - Triggered when layer loading ends. When using Fixed or BBOX
|
||||
* strategies, the event object includes a *response* property holding
|
||||
* an OpenLayers.Protocol.Response object.
|
||||
* loadstart - Triggered when layer loading starts. When using a Vector
|
||||
* layer with a Fixed or BBOX strategy, the event object includes
|
||||
* a *filter* property holding the OpenLayers.Filter used when
|
||||
* calling read on the protocol.
|
||||
* loadend - Triggered when layer loading ends. When using a Vector layer
|
||||
* with a Fixed or BBOX strategy, the event object includes a
|
||||
* *response* property holding an OpenLayers.Protocol.Response object.
|
||||
* visibilitychanged - Triggered when layer visibility is changed.
|
||||
* move - Triggered when layer moves (triggered with every mousemove
|
||||
* during a drag).
|
||||
|
||||
@@ -217,10 +217,11 @@ OpenLayers.Strategy.BBOX = OpenLayers.Class(OpenLayers.Strategy, {
|
||||
this.layer.protocol.abort(this.response);
|
||||
this.layer.events.triggerEvent("loadend");
|
||||
}
|
||||
this.layer.events.triggerEvent("loadstart");
|
||||
var evt = {filter: this.createFilter()};
|
||||
this.layer.events.triggerEvent("loadstart", evt);
|
||||
this.response = this.layer.protocol.read(
|
||||
OpenLayers.Util.applyDefaults({
|
||||
filter: this.createFilter(),
|
||||
filter: evt.filter,
|
||||
callback: this.merge,
|
||||
scope: this
|
||||
}, options));
|
||||
|
||||
@@ -88,7 +88,7 @@ OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
|
||||
*/
|
||||
load: function(options) {
|
||||
var layer = this.layer;
|
||||
layer.events.triggerEvent("loadstart");
|
||||
layer.events.triggerEvent("loadstart", {filter: layer.filter});
|
||||
layer.protocol.read(OpenLayers.Util.applyDefaults({
|
||||
callback: OpenLayers.Function.bind(this.merge, this,
|
||||
layer.map.getProjectionObject()),
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
function test_events(t) {
|
||||
|
||||
t.plan(6);
|
||||
t.plan(7);
|
||||
|
||||
var log = [];
|
||||
|
||||
@@ -141,6 +141,7 @@
|
||||
|
||||
t.eq(log.length, 2, "2 events logged");
|
||||
t.eq(log[0].type, "loadstart", "loadstart first");
|
||||
t.ok(log[0].filter.type === OpenLayers.Filter.Spatial.BBOX, "loadstart includes filter used");
|
||||
t.eq(log[1].type, "loadend", "loadend second");
|
||||
t.ok(log[1].response == response, "loadend includes response");
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
function test_events(t) {
|
||||
|
||||
t.plan(6);
|
||||
t.plan(7);
|
||||
|
||||
var log = [];
|
||||
|
||||
@@ -70,6 +70,11 @@
|
||||
|
||||
var map = new OpenLayers.Map("map");
|
||||
var layer = new OpenLayers.Layer.Vector(null, {
|
||||
filter: new OpenLayers.Filter.Comparison({
|
||||
type: '==',
|
||||
property: 'foo',
|
||||
value: 'bar'
|
||||
}),
|
||||
strategies: [new OpenLayers.Strategy.Fixed()],
|
||||
protocol: new OpenLayers.Protocol({
|
||||
read: function(config) {
|
||||
@@ -92,6 +97,7 @@
|
||||
|
||||
t.eq(log.length, 2, "2 events logged");
|
||||
t.eq(log[0].type, "loadstart", "loadstart first");
|
||||
t.eq(log[0].filter, layer.filter, "filter passed on as argument to loadstart");
|
||||
t.eq(log[1].type, "loadend", "loadend second");
|
||||
t.ok(log[1].response == response, "loadend includes response");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user