From b89a7ee8b956c96a1dcee995ea840feddc5d4b27 Mon Sep 17 00:00:00 2001 From: Pierre Frisch Date: Thu, 22 Dec 2011 07:25:50 -0800 Subject: First commit of Ninja to ninja-internal Signed-off-by: Valerio Virgillito --- js/components/textfield.reel/textfield.js | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 js/components/textfield.reel/textfield.js (limited to 'js/components/textfield.reel/textfield.js') diff --git a/js/components/textfield.reel/textfield.js b/js/components/textfield.reel/textfield.js new file mode 100644 index 00000000..5e22fcc7 --- /dev/null +++ b/js/components/textfield.reel/textfield.js @@ -0,0 +1,88 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + +var Montage = require("montage/core/core").Montage; +var Component = require("montage/ui/component").Component; + +exports.TextField = Montage.create(Component, { + + _valueSyncedWithInputField: { + enumerable: false, + value: false + }, + + _value: { + enumerable: false, + value: "" + }, + + value: { + enumerable: true, + serializable: true, + get: function() { + return this._value; + }, + set: function(value) { + this._value = value; + this.needsDraw = true; + } + }, + + handleKeyup: { + value: function(event) { + if(event.keyCode === 13) { + this.element.blur(); + } + } + }, + + handleBlur: { + value: function(event) { + this._value = this.element.value; + this._valueSyncedWithInputField = true; + + var e = document.createEvent("CustomEvent"); + e.initEvent("change", true, true); + e.type = "change"; + e.value = this._value; + this.dispatchEvent(e); + } + }, + /* + handleChange: + { + value:function(event) + { + this._value = this.element.value; + this._valueSyncedWithInputField = true; + + var e = document.createEvent("CustomEvent"); + e.initEvent("change", true, true); + e.type = "change"; + e.value = this._value; + this.dispatchEvent(e); + } + }, + */ + + draw: { + value: function() { + if(!this._valueSyncedWithInputField) + { + this.element.value = this._value; + this._valueSyncedWithInputField = true; + } + } + }, + + prepareForDraw: { + value: function() { + //this.element.addEventListener("change", this, false); + this.element.addEventListener("blur", this, false); + this.element.addEventListener("keyup", this, false); + } + } +}); \ No newline at end of file -- cgit v1.2.3