Merge pull request #1724 from fredj/ol.dom.input

ol.dom.Input cleanups
This commit is contained in:
Frédéric Junod
2014-02-19 15:14:11 +01:00
+14 -10
View File
@@ -1,6 +1,7 @@
goog.provide('ol.dom.Input'); goog.provide('ol.dom.Input');
goog.provide('ol.dom.InputProperty'); goog.provide('ol.dom.InputProperty');
goog.require('goog.asserts');
goog.require('goog.events'); goog.require('goog.events');
goog.require('goog.events.EventType'); goog.require('goog.events.EventType');
goog.require('ol.Object'); goog.require('ol.Object');
@@ -30,8 +31,6 @@ ol.dom.InputProperty = {
* @param {Element} target Target element. * @param {Element} target Target element.
* @todo stability experimental * @todo stability experimental
* @todo observable value {string} the value of the Input * @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 * @todo observable checked {boolean} the checked state of the Input
*/ */
ol.dom.Input = function(target) { ol.dom.Input = function(target) {
@@ -39,11 +38,12 @@ ol.dom.Input = function(target) {
/** /**
* @private * @private
* @type {Element} * @type {HTMLInputElement}
*/ */
this.target_ = 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); this.handleInputChanged_, false, this);
goog.events.listen(this, goog.events.listen(this,
@@ -113,9 +113,11 @@ goog.exportProperty(
/** /**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @private * @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_; var target = this.target_;
if (target.type === 'checkbox' || target.type === 'radio') { if (target.type === 'checkbox' || target.type === 'radio') {
this.setChecked(target.checked); this.setChecked(target.checked);
@@ -126,16 +128,18 @@ ol.dom.Input.prototype.handleInputChanged_ = function() {
/** /**
* @param {goog.events.Event} event Change event.
* @private * @private
*/ */
ol.dom.Input.prototype.handleCheckedChanged_ = function() { ol.dom.Input.prototype.handleCheckedChanged_ = function(event) {
this.target_.checked = this.getChecked(); this.target_.checked = /** @type {boolean} */ (this.getChecked());
}; };
/** /**
* @param {goog.events.Event} event Change event.
* @private * @private
*/ */
ol.dom.Input.prototype.handleValueChanged_ = function() { ol.dom.Input.prototype.handleValueChanged_ = function(event) {
this.target_.value = this.getValue(); this.target_.value = /** @type {string} */ (this.getValue());
}; };