From 13ae16997d4bbca14e255d5989d1c44a76eac72c Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Wed, 16 May 2012 15:23:48 -0700 Subject: montage v.0.10 integration Signed-off-by: Valerio Virgillito --- .../montage/ui/token-field/token.reel/token.js | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 node_modules/montage/ui/token-field/token.reel/token.js (limited to 'node_modules/montage/ui/token-field/token.reel/token.js') diff --git a/node_modules/montage/ui/token-field/token.reel/token.js b/node_modules/montage/ui/token-field/token.reel/token.js new file mode 100644 index 00000000..15216c3f --- /dev/null +++ b/node_modules/montage/ui/token-field/token.reel/token.js @@ -0,0 +1,91 @@ +/* + 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").Montage, + Component = require("ui/component").Component; + +exports.Token = Montage.create(Component, { + + text: {value: null}, + + allowAdHocValues: {value: null}, + + value: { + get: function() { + return this._value; + }, + set: function(aValue) { + this._adHoc = false; + if(aValue) { + this._value = aValue; + if(this.textPropertyPath) { + if(typeof aValue[this.textPropertyPath] == 'undefined' && this.allowAdHocValues) { + this.text = aValue; + this._adHoc = true; + } else { + this.text = this.value[this.textPropertyPath]; + } + } else { + this.text = this.value; + } + } + } + }, + + textPropertyPath: {value: null}, + + tokensController: {value: null}, + + // private + + __adHoc: {value: null}, + _adHoc: { + get: function() { + return this.__adHoc; + }, + set: function(value) { + this.__adHoc = value; + this.needsDraw = true; + } + }, + + _deleteEl: {value: null}, + + prepareForDraw: { + value: function() { + if(window.Touch) { + this._deleteEl.addEventListener('touchend', this); + } else { + this._deleteEl.addEventListener('click', this); + } + } + }, + + draw: { + value: function() { + this.element.classList[this._adHoc ? 'add' : 'remove']('montage-token-adhoc'); + } + }, + + // Event handling + + removeSelf: { + value: function() { + this.tokensController.removeObjects(this.value); + } + }, + + handleClick: { + value: function(event) { + this.removeSelf(); + } + }, + handleTouchend: { + value: function(event) { + this.removeSelf(); + } + } + +}); -- cgit v1.2.3