Dispatch generic changed events when any ol.Object property changes
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
goog.provide('ol.Object');
|
||||
goog.provide('ol.ObjectEventType');
|
||||
|
||||
goog.require('goog.array');
|
||||
goog.require('goog.events');
|
||||
@@ -13,6 +14,14 @@ goog.require('goog.events.EventTarget');
|
||||
goog.require('goog.object');
|
||||
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
ol.ObjectEventType = {
|
||||
CHANGED: 'changed'
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
@@ -192,6 +201,7 @@ ol.Object.prototype.notify = function(key) {
|
||||
ol.Object.prototype.notifyInternal_ = function(key) {
|
||||
var eventType = ol.Object.getChangedEventType(key);
|
||||
this.dispatchEvent(eventType);
|
||||
this.dispatchEvent(ol.ObjectEventType.CHANGED);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -46,16 +46,19 @@ describe('ol.Object', function() {
|
||||
|
||||
describe('notify', function() {
|
||||
|
||||
var listener1, listener2;
|
||||
var listener1, listener2, listener3;
|
||||
|
||||
beforeEach(function() {
|
||||
listener1 = jasmine.createSpy();
|
||||
goog.events.listen(o, 'k_changed', listener1);
|
||||
|
||||
listener2 = jasmine.createSpy();
|
||||
goog.events.listen(o, 'changed', listener2);
|
||||
|
||||
var o2 = new ol.Object();
|
||||
o2.bindTo('k', o);
|
||||
listener2 = jasmine.createSpy();
|
||||
goog.events.listen(o2, 'k_changed', listener2);
|
||||
listener3 = jasmine.createSpy();
|
||||
goog.events.listen(o2, 'k_changed', listener3);
|
||||
});
|
||||
|
||||
it('dispatches events', function() {
|
||||
@@ -63,24 +66,32 @@ describe('ol.Object', function() {
|
||||
expect(listener1).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches events to bound objects', function() {
|
||||
it('dispatches generic change events to bound objects', function() {
|
||||
o.notify('k');
|
||||
expect(listener2).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches events to bound objects', function() {
|
||||
o.notify('k');
|
||||
expect(listener3).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('set', function() {
|
||||
|
||||
var listener1, o2, listener2;
|
||||
var listener1, o2, listener2, listener3;
|
||||
|
||||
beforeEach(function() {
|
||||
listener1 = jasmine.createSpy();
|
||||
goog.events.listen(o, 'k_changed', listener1);
|
||||
|
||||
listener2 = jasmine.createSpy();
|
||||
goog.events.listen(o, 'changed', listener2);
|
||||
|
||||
o2 = new ol.Object();
|
||||
o2.bindTo('k', o);
|
||||
listener2 = jasmine.createSpy();
|
||||
goog.events.listen(o2, 'k_changed', listener2);
|
||||
listener3 = jasmine.createSpy();
|
||||
goog.events.listen(o2, 'k_changed', listener3);
|
||||
});
|
||||
|
||||
it('dispatches events to object', function() {
|
||||
@@ -88,15 +99,25 @@ describe('ol.Object', function() {
|
||||
expect(listener1).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches events to bound object', function() {
|
||||
it('dispatches generic change events to object', function() {
|
||||
o.set('k', 1);
|
||||
expect(listener2).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches events to bound object', function() {
|
||||
o.set('k', 1);
|
||||
expect(listener3).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches events to object bound to', function() {
|
||||
o2.set('k', 2);
|
||||
expect(listener1).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('dispatches generic change events to object bound to', function() {
|
||||
o2.set('k', 2);
|
||||
expect(listener2).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('bind', function() {
|
||||
|
||||
Reference in New Issue
Block a user