From 20d74810ab511e9ab61039f3c42818606d500480 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Thu, 12 Dec 2013 15:08:09 -0700 Subject: [PATCH] Export a getKey method on ol.ObjectEvent --- examples/device-orientation.js | 4 ++-- src/ol/object.exports | 3 +++ src/ol/object.js | 14 ++++++++++++-- test/spec/ol/object.test.js | 24 ++++++++++++------------ 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/examples/device-orientation.js b/examples/device-orientation.js index e70f419630..318dc6468d 100644 --- a/examples/device-orientation.js +++ b/examples/device-orientation.js @@ -26,8 +26,8 @@ var track = new ol.dom.Input(document.getElementById('track')); track.bindTo('checked', deviceOrientation, 'tracking'); deviceOrientation.on('propertychange', function(event) { - // event.key is the changed property name - var key = event.key; + // event.getKey() is the changed property name + var key = event.getKey(); var element = document.getElementById(key); if (element) { element.innerHTML = deviceOrientation.get(key); diff --git a/src/ol/object.exports b/src/ol/object.exports index 89426170a5..3b9b0d2900 100644 --- a/src/ol/object.exports +++ b/src/ol/object.exports @@ -7,3 +7,6 @@ @exportProperty ol.Object.prototype.setValues @exportProperty ol.Object.prototype.unbind @exportProperty ol.Object.prototype.unbindAll + +@exportSymbol ol.ObjectEvent +@exportProperty ol.ObjectEvent.prototype.getKey diff --git a/src/ol/object.js b/src/ol/object.js index 96ef0bcb5c..a918f8df06 100644 --- a/src/ol/object.js +++ b/src/ol/object.js @@ -41,13 +41,23 @@ ol.ObjectEvent = function(type, key) { /** * The name of the property whose value is changing. * @type {string} + * @private */ - this.key = key; + this.key_ = key; }; goog.inherits(ol.ObjectEvent, goog.events.Event); +/** + * Get the name of the property associated with this event. + * @return {string} Object property name. + */ +ol.ObjectEvent.prototype.getKey = function() { + return this.key_; +}; + + /** * @constructor @@ -286,7 +296,7 @@ ol.Object.prototype.createBeforeChangeListener_ = function(key, targetKey) { * @this {ol.Object} */ return function(event) { - if (event.key === targetKey) { + if (event.getKey() === targetKey) { this.dispatchEvent( new ol.ObjectEvent(ol.ObjectEventType.BEFOREPROPERTYCHANGE, key)); } diff --git a/test/spec/ol/object.test.js b/test/spec/ol/object.test.js index 78938d8bbc..f82bb37a9e 100644 --- a/test/spec/ol/object.test.js +++ b/test/spec/ol/object.test.js @@ -125,7 +125,7 @@ describe('ol.Object', function() { var args = listener2.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('k'); + expect(event.getKey()).to.be('k'); }); it('dispatches events to bound objects', function() { @@ -165,7 +165,7 @@ describe('ol.Object', function() { var args = listener2.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('k'); + expect(event.getKey()).to.be('k'); }); it('dispatches beforechange events to object', function() { @@ -173,7 +173,7 @@ describe('ol.Object', function() { var oldValue; var beforeListener = sinon.spy(function(event) { - oldValue = o2.get(event.key); + oldValue = o2.get(event.getKey()); }); o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); @@ -201,7 +201,7 @@ describe('ol.Object', function() { var args = listener2.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('k'); + expect(event.getKey()).to.be('k'); }); it('dispatches beforechange before changing bound objects', function() { @@ -209,7 +209,7 @@ describe('ol.Object', function() { var oldValue; var beforeListener = sinon.spy(function(event) { - oldValue = o2.get(event.key); + oldValue = o2.get(event.getKey()); }); o.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); @@ -218,7 +218,7 @@ describe('ol.Object', function() { var args = beforeListener.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('k'); + expect(event.getKey()).to.be('k'); expect(oldValue).to.be(1); }); @@ -232,7 +232,7 @@ describe('ol.Object', function() { var oldValue; var beforeListener = sinon.spy(function(event) { - oldValue = object.get(event.key); + oldValue = object.get(event.getKey()); }); object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); @@ -241,7 +241,7 @@ describe('ol.Object', function() { var args = beforeListener.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('foo'); + expect(event.getKey()).to.be('foo'); expect(oldValue).to.be('original value'); expect(object.get('foo')).to.be('new value'); @@ -256,7 +256,7 @@ describe('ol.Object', function() { var oldValue; var beforeListener = sinon.spy(function(event) { - oldValue = object.get(event.key); + oldValue = object.get(event.getKey()); }); object.on(ol.ObjectEventType.BEFOREPROPERTYCHANGE, beforeListener); @@ -265,7 +265,7 @@ describe('ol.Object', function() { var args = beforeListener.firstCall.args; expect(args).to.have.length(1); var event = args[0]; - expect(event.key).to.be('bar'); + expect(event.getKey()).to.be('bar'); expect(oldValue).to.be('original value'); expect(object.get('bar')).to.be('new value'); @@ -365,7 +365,7 @@ describe('ol.Object', function() { expect(listener.calledOnce).to.be(true); var call = listener.firstCall; expect(call.args).to.have.length(1); - expect(call.args[0].key).to.be('foo'); + expect(call.args[0].getKey()).to.be('foo'); object.unbind('foo'); target.set('foo', 'another new value'); @@ -400,7 +400,7 @@ describe('ol.Object', function() { expect(listener.callCount).to.be(3); var lastCall = listener.getCall(2); expect(lastCall.args).to.have.length(1); - expect(lastCall.args[0].key).to.be('bar'); + expect(lastCall.args[0].getKey()).to.be('bar'); }); });