Dispatch an 'updatefeature' from the vector source

This commit is contained in:
Frederic Junod
2014-09-23 16:19:00 +02:00
parent fb01814384
commit 79b8ef3a53
2 changed files with 21 additions and 0 deletions

View File

@@ -28,6 +28,14 @@ ol.source.VectorEventType = {
* @api stable * @api stable
*/ */
ADDFEATURE: 'addfeature', ADDFEATURE: 'addfeature',
/**
* Triggered when a feature is updated.
* @event ol.source.VectorEvent#updatefeature
* @api
*/
UPDATEFEATURE: 'updatefeature',
/** /**
* Triggered when a feature is removed from the source. * Triggered when a feature is removed from the source.
* @event ol.source.VectorEvent#removefeature * @event ol.source.VectorEvent#removefeature
@@ -437,6 +445,8 @@ ol.source.Vector.prototype.handleFeatureChange_ = function(event) {
} }
} }
this.changed(); this.changed();
this.dispatchEvent(new ol.source.VectorEvent(
ol.source.VectorEventType.UPDATEFEATURE, feature));
}; };

View File

@@ -242,6 +242,17 @@ describe('ol.source.Vector', function() {
expect(listener).to.be.called(); expect(listener).to.be.called();
}); });
it('fires a updatefeature event when updating a feature', function() {
var feature = new ol.Feature(new ol.geom.Point([1, 1]));
vectorSource.addFeature(feature);
var listener = sinon.spy(function(event) {
expect(event.feature).to.be(feature);
});
vectorSource.on('updatefeature', listener);
feature.setStyle(null);
expect(listener).to.be.called();
});
}); });
describe('#getFeatureById()', function() { describe('#getFeatureById()', function() {