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