Merge pull request #4394 from openlayers/silent-update

Allow ol.Object property update without notification.
This commit is contained in:
Tim Schaub
2015-11-11 12:59:06 -07:00

View File

@@ -197,12 +197,17 @@ ol.Object.prototype.notify = function(key, oldValue) {
* Sets a value.
* @param {string} key Key name.
* @param {*} value Value.
* @param {boolean=} opt_silent Update without triggering an event.
* @api stable
*/
ol.Object.prototype.set = function(key, value) {
ol.Object.prototype.set = function(key, value, opt_silent) {
if (opt_silent) {
this.values_[key] = value;
} else {
var oldValue = this.values_[key];
this.values_[key] = value;
this.notify(key, oldValue);
}
};
@@ -210,12 +215,13 @@ ol.Object.prototype.set = function(key, value) {
* Sets a collection of key-value pairs. Note that this changes any existing
* properties and adds new ones (it does not remove any existing properties).
* @param {Object.<string, *>} values Values.
* @param {boolean=} opt_silent Update without triggering an event.
* @api stable
*/
ol.Object.prototype.setProperties = function(values) {
ol.Object.prototype.setProperties = function(values, opt_silent) {
var key;
for (key in values) {
this.set(key, values[key]);
this.set(key, values[key], opt_silent);
}
};
@@ -223,12 +229,15 @@ ol.Object.prototype.setProperties = function(values) {
/**
* Unsets a property.
* @param {string} key Key name.
* @param {boolean=} opt_silent Unset without triggering an event.
* @api stable
*/
ol.Object.prototype.unset = function(key) {
ol.Object.prototype.unset = function(key, opt_silent) {
if (key in this.values_) {
var oldValue = this.values_[key];
delete this.values_[key];
if (!opt_silent) {
this.notify(key, oldValue);
}
}
};