add "refresh" event to Layer.Vector, r=tschaub (closes #1695)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@7959 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -69,11 +69,14 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
* - *afterfeaturemodified* Triggered when a feature is finished being modified.
|
* - *afterfeaturemodified* Triggered when a feature is finished being modified.
|
||||||
* Listeners will receive an object with a *feature* property referencing
|
* Listeners will receive an object with a *feature* property referencing
|
||||||
* the modified feature.
|
* the modified feature.
|
||||||
|
* - *refresh* Triggered when something wants a strategy to ask the protocol
|
||||||
|
* for a new set of features.
|
||||||
*/
|
*/
|
||||||
EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
|
EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
|
||||||
"beforefeatureremoved", "featureremoved", "featuresremoved",
|
"beforefeatureremoved", "featureremoved", "featuresremoved",
|
||||||
"beforefeatureselected", "featureselected", "featureunselected",
|
"beforefeatureselected", "featureselected", "featureunselected",
|
||||||
"beforefeaturemodified", "featuremodified", "afterfeaturemodified"],
|
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
|
||||||
|
"refresh"],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* APIProperty: isBaseLayer
|
* APIProperty: isBaseLayer
|
||||||
@@ -265,6 +268,21 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
|||||||
OpenLayers.Layer.prototype.destroy.apply(this, arguments);
|
OpenLayers.Layer.prototype.destroy.apply(this, arguments);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method: refresh
|
||||||
|
* Ask the layer to request features again and redraw them. Triggers
|
||||||
|
* the refresh event if the layer is in range and visible.
|
||||||
|
*
|
||||||
|
* Parameters:
|
||||||
|
* obj - {Object} Optional object with properties for any listener of
|
||||||
|
* the refresh event.
|
||||||
|
*/
|
||||||
|
refresh: function(obj) {
|
||||||
|
if(this.inRange && this.visibility) {
|
||||||
|
this.events.triggerEvent("refresh", obj);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method: assignRenderer
|
* Method: assignRenderer
|
||||||
* Iterates through the available renderer implementations and selects
|
* Iterates through the available renderer implementations and selects
|
||||||
|
|||||||
@@ -21,6 +21,41 @@
|
|||||||
"setLayer was called on strategies");
|
"setLayer was called on strategies");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_Layer_Vector_refresh(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var obj = {"an": "object"};
|
||||||
|
|
||||||
|
var layer = new OpenLayers.Layer.Vector(name, {
|
||||||
|
eventListeners: {
|
||||||
|
refresh: function(o) {
|
||||||
|
t.ok(o == obj,
|
||||||
|
"refresh listener called with correct arg");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 0 test
|
||||||
|
layer.inRange = false;
|
||||||
|
layer.visibility = false;
|
||||||
|
layer.refresh(obj);
|
||||||
|
|
||||||
|
// 0 test
|
||||||
|
layer.inRange = true;
|
||||||
|
layer.visibility = false;
|
||||||
|
layer.refresh(obj);
|
||||||
|
|
||||||
|
// 0 test
|
||||||
|
layer.inRange = false;
|
||||||
|
layer.visibility = true;
|
||||||
|
layer.refresh(obj);
|
||||||
|
|
||||||
|
// 1 test
|
||||||
|
layer.inRange = true;
|
||||||
|
layer.visibility = true;
|
||||||
|
layer.refresh(obj);
|
||||||
|
}
|
||||||
|
|
||||||
function test_Layer_Vector_addFeatures(t) {
|
function test_Layer_Vector_addFeatures(t) {
|
||||||
t.plan(8);
|
t.plan(8);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user