From ad81ae4c61eb5857cd444ef0caf5b0b33e8072ba Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Sun, 29 Jan 2012 00:26:20 -0800 Subject: Moved the ninja components out of the Montage folder Signed-off-by: Valerio Virgillito --- .../flow-controller.reel/flow-controller.js | 288 +++++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 node_modules/ninja-components/flow-controller.reel/flow-controller.js (limited to 'node_modules/ninja-components/flow-controller.reel/flow-controller.js') diff --git a/node_modules/ninja-components/flow-controller.reel/flow-controller.js b/node_modules/ninja-components/flow-controller.reel/flow-controller.js new file mode 100644 index 00000000..0ce12473 --- /dev/null +++ b/node_modules/ninja-components/flow-controller.reel/flow-controller.js @@ -0,0 +1,288 @@ +/* +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.FlowController = Montage.create(Component, { + + templateDidLoad: { + value: function() { +// this.spacing = this.offsetController.scale; +// this.animation = this.path2; +// this.hasMomentum = this.scrollController.hasMomentum; + } + }, + + scrollController: { + enumerable: true, + serializable: true, + value: null + }, + + offsetController: { + enumerable: true, + serializable: true, + value: null + }, + + flowComponent: { + enumerable: true, + serializable: true, + value: null + }, + + + + // ------------------------------------------------------------------------ + // Forwarding these properties to their equivalents in Scroll + _speed: { + enumerable: true, + serializable: true, + value: 1 + }, + + speed: { + get: function() { + return this._speed; + }, + set: function(value) { + if(this._speed !== value) + { + if( this.scrollController && (this.scrollController.pointerSpeedMultiplier !== value) ) + { + this._speed = value; + this.scrollController.pointerSpeedMultiplier = value; + this.needsDraw = true; + } + } + } + }, + + hasMomentum: { + get: function() { + if(this.scrollController) + { + return this.scrollController.hasMomentum; + } + }, + set: function(value) { + if( this.scrollController && (this.scrollController.hasMomentum !== value) ) + { + this.scrollController.hasMomentum = value; + this.needsDraw = true; + } + } + }, + + hasBouncing: { + get: function() { + if(this.scrollController) + { + return this.scrollController.hasBouncing; + } + }, + set: function(value) { + if( this.scrollController && (this.scrollController.hasBouncing !== value) ) + { + this.scrollController.hasBouncing = value; + this.needsDraw = true; + } + } + }, + + momentumDuration: { + get: function() { + if(this.scrollController) + { + return this.scrollController.momentumDuration; + } + }, + set: function(value) { + if( this.scrollController && (this.scrollController.momentumDuration !== value) ) + { + this.scrollController.momentumDuration = value; + this.needsDraw = true; + } + } + }, + + bouncingDuration: { + get: function() { + if(this.scrollController) + { + return this.scrollController.bouncingDuration; + } + }, + set: function(value) { + if( this.scrollController && (this.scrollController.bouncingDuration !== value) ) + { + this.scrollController.bouncingDuration = value; + this.needsDraw = true; + } + } + }, + // ------------------------------------------------------------------------ + + + + // ------------------------------------------------------------------------ + // Forwarding these properties to their equivalents in FlowOffset + _spacing: { + enumerable: true, + serializable: true, + value: 350 + }, + + spacing: { + get: function() { + return this._spacing; + }, + set: function(scale) { +// if( this.offsetController && (this.offsetController.scale !== scale) ) +// { +// this.offsetController.scale = scale; +// this.needsDraw = true; +// } + if(this._spacing !== scale) + { + if( this.offsetController && (this.offsetController.scale !== scale) ) + { + this._spacing = scale; + this.offsetController.scale = scale; + this.needsDraw = true; + } + } + } + }, + // ------------------------------------------------------------------------ + + + + // ------------------------------------------------------------------------ + // Some paths definitions and necessary values + interpValue: { + enumerable: true, + serializable: true, + value: 1 + }, + + slideShow: { + value: { + value: function (slide) { + var path={ + translateX: 10+slide.time + }; + return path; + } + } + }, + // ------------------------------------------------------------------------ + + + + // ------------------------------------------------------------------------ + // Forwarding these properties to their equivalents in Flow + + // TODO - hard-coding values for demo + _src: { + enumerable: true, + serializable: true, + value: "" + }, + + src: { + get: function() { + return this._src; + }, + set: function(value) { + this.images = this.imagesForDemo; + this._src = "images"; + this.needsDraw = true; + } + }, + + images: { + enumerable: true, + serializable: true, + value: [] + }, + + imagesForDemo: { + enumerable: true, + serializable: true, + value: [ + {"src": "images/0.jpg", "text": "We win together"}, + {"src": "images/1.jpg", "text": "We do the right thing"}, + {"src": "images/2.jpg", "text": "We are passionate about what we do"}, + {"src": "images/3.jpg", "text": "We are obsessed with product superiority"}, + {"src": "images/4.jpg", "text": "We make things simple"}, + {"src": "images/5.jpg", "text": "We are customer centric"}, + {"src": "images/6.jpg", "text": "Lorem Ipsum 0"}, + {"src": "images/7.jpg", "text": "Lorem Ipsum 1"}, + {"src": "images/8.jpg", "text": "Lorem Ipsum 2"}, + {"src": "images/9.jpg", "text": "Lorem Ipsum 3"}, + {"src": "images/10.jpg", "text": "Lorem Ipsum 4"}, + {"src": "images/11.jpg", "text": "Lorem Ipsum 5"}, + {"src": "images/12.jpg", "text": "Lorem Ipsum 6"}, + {"src": "images/13.jpg", "text": "Lorem Ipsum 7"}, + {"src": "images/14.jpg", "text": "Lorem Ipsum 8"} + ] + }, + + _animation: { + enumerable: true, + serializable: true, + value: this.path2 + }, + + animation: { + get: function() { + return this._animation; + }, + set: function(value) { + if(this._animation !== value) + { + if( this.flowComponent && (this.flowComponent.path !== value) ) + { + this._animation = value; + switch(value) + { + case "slideshow": + this.flowComponent.path = this.slideShow; + this.offsetController.scale = 350; + this.scrollController.pointerSpeedMultiplier = 1; + break; + case "carousel": + this.flowComponent.path = this.path2.path; + this.offsetController.scale = 320; + this.scrollController.pointerSpeedMultiplier = 1; + break; + case "cover-flow": + this.flowComponent.path = this.path3.path; + this.offsetController.scale = 1000; + this.scrollController.pointerSpeedMultiplier = 3; + break; + case "wave": + this.flowComponent.path = this.path4.path; + this.offsetController.scale = 320; + this.scrollController.pointerSpeedMultiplier = 1; + break; + case "explosion": + this.flowComponent.path = this.path1.path; + this.offsetController.scale = 320; + this.scrollController.pointerSpeedMultiplier = 1; + break; + default: + } + this.flowComponent.needsDraw = true; + } + } + } + } + // ------------------------------------------------------------------------ + +}); -- cgit v1.2.3