From 1e0ce96e9f8addd0d89a6cd50bd0c173b7a24e75 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 19 Feb 2014 09:53:43 +0100 Subject: [PATCH 1/4] Remove 'valueAsNumber' property from observable list The property was removed in a0bea641d1fcbec64caf6483c88c9ddb3bea814f --- src/ol/dom/input.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ol/dom/input.js b/src/ol/dom/input.js index e93fdc7c0c..6bf1f5c4ce 100644 --- a/src/ol/dom/input.js +++ b/src/ol/dom/input.js @@ -30,8 +30,6 @@ ol.dom.InputProperty = { * @param {Element} target Target element. * @todo stability experimental * @todo observable value {string} the value of the Input - * @todo observable valueAsNumber {number} the value of the Input, converted to - * a number if possible * @todo observable checked {boolean} the checked state of the Input */ ol.dom.Input = function(target) { From c9e9cbc7c8195e300575bb17eda1294f1793b044 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 19 Feb 2014 10:07:46 +0100 Subject: [PATCH 2/4] Change ol.dom.Input target param from Element to HTMLInputElement --- src/ol/dom/input.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/dom/input.js b/src/ol/dom/input.js index 6bf1f5c4ce..004fcae5f2 100644 --- a/src/ol/dom/input.js +++ b/src/ol/dom/input.js @@ -37,9 +37,9 @@ ol.dom.Input = function(target) { /** * @private - * @type {Element} + * @type {HTMLInputElement} */ - this.target_ = target; + this.target_ = /** @type {HTMLInputElement} */ (target); goog.events.listen(this.target_, goog.events.EventType.CHANGE, this.handleInputChanged_, false, this); @@ -127,7 +127,7 @@ ol.dom.Input.prototype.handleInputChanged_ = function() { * @private */ ol.dom.Input.prototype.handleCheckedChanged_ = function() { - this.target_.checked = this.getChecked(); + this.target_.checked = /** @type {boolean} */ (this.getChecked()); }; @@ -135,5 +135,5 @@ ol.dom.Input.prototype.handleCheckedChanged_ = function() { * @private */ ol.dom.Input.prototype.handleValueChanged_ = function() { - this.target_.value = this.getValue(); + this.target_.value = /** @type {string} */ (this.getValue()); }; From 4e7d697273280ef0b57d6bb8c7370a551e17bd7e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 19 Feb 2014 10:22:52 +0100 Subject: [PATCH 3/4] Add missing function arguments --- src/ol/dom/input.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ol/dom/input.js b/src/ol/dom/input.js index 004fcae5f2..d8d38fc3ca 100644 --- a/src/ol/dom/input.js +++ b/src/ol/dom/input.js @@ -1,6 +1,7 @@ goog.provide('ol.dom.Input'); goog.provide('ol.dom.InputProperty'); +goog.require('goog.asserts'); goog.require('goog.events'); goog.require('goog.events.EventType'); goog.require('ol.Object'); @@ -111,9 +112,11 @@ goog.exportProperty( /** + * @param {goog.events.BrowserEvent} browserEvent Browser event. * @private */ -ol.dom.Input.prototype.handleInputChanged_ = function() { +ol.dom.Input.prototype.handleInputChanged_ = function(browserEvent) { + goog.asserts.assert(browserEvent.currentTarget == this.target_); var target = this.target_; if (target.type === 'checkbox' || target.type === 'radio') { this.setChecked(target.checked); @@ -124,16 +127,18 @@ ol.dom.Input.prototype.handleInputChanged_ = function() { /** + * @param {goog.events.Event} event Change event. * @private */ -ol.dom.Input.prototype.handleCheckedChanged_ = function() { +ol.dom.Input.prototype.handleCheckedChanged_ = function(event) { this.target_.checked = /** @type {boolean} */ (this.getChecked()); }; /** + * @param {goog.events.Event} event Change event. * @private */ -ol.dom.Input.prototype.handleValueChanged_ = function() { +ol.dom.Input.prototype.handleValueChanged_ = function(event) { this.target_.value = /** @type {string} */ (this.getValue()); }; From 03b979c30a709f62f858072fa69d47e5532256d4 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 19 Feb 2014 10:34:25 +0100 Subject: [PATCH 4/4] Listen to 'input' and 'change' events --- src/ol/dom/input.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ol/dom/input.js b/src/ol/dom/input.js index d8d38fc3ca..45ab97ff5b 100644 --- a/src/ol/dom/input.js +++ b/src/ol/dom/input.js @@ -42,7 +42,8 @@ ol.dom.Input = function(target) { */ this.target_ = /** @type {HTMLInputElement} */ (target); - goog.events.listen(this.target_, goog.events.EventType.CHANGE, + goog.events.listen(this.target_, + [goog.events.EventType.CHANGE, goog.events.EventType.INPUT], this.handleInputChanged_, false, this); goog.events.listen(this,