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 --- .../layout/bread-crumb.reel/bread-crumb.js | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 js/components/layout/bread-crumb.reel/bread-crumb.js (limited to 'js/components/layout/bread-crumb.reel/bread-crumb.js') diff --git a/js/components/layout/bread-crumb.reel/bread-crumb.js b/js/components/layout/bread-crumb.reel/bread-crumb.js new file mode 100644 index 00000000..9782d9d1 --- /dev/null +++ b/js/components/layout/bread-crumb.reel/bread-crumb.js @@ -0,0 +1,110 @@ +/* + 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, + Component = require("montage/ui/component").Component; + +exports.Breadcrumb = Montage.create(Component, { + + _container:{ + value:null + }, + + + container: { + set: function(value) { + if(this._container !== value) { + this._container = value; + this.createContainerElements(); + } + }, + get: function() { + return this._container; + } + }, + + containerElements: { + value: [] + }, + + deserializedFromTemplate : { + value: function() { + this.eventManager.addEventListener( "appLoaded", this, false); + this.eventManager.addEventListener( "openDocument", this, false); + this.eventManager.addEventListener( "breadCrumbTrail", this, false); + } + }, + + handleAppLoaded : { + value: function() { + + Object.defineBinding(this, "container", { + boundObject: this.application.ninja, + boundObjectPropertyPath: "currentSelectedContainer", + oneway: false + }); + } + }, + + createContainerElements: { + value: function() { + var parentNode; + + while(this.containerElements.pop()){ + // To empty the array to get the new parentNode of the new currentLevel + } + + if(this.container.id === "UserContent") { + this.containerElements.push({selected:false,element:this.container}); + } else { + + parentNode = this.container; + + while(parentNode.id !== "UserContent") { + this.containerElements.unshift ({selected:false,element:parentNode}); + parentNode = parentNode.parentNode; + } + + this.containerElements.unshift({selected:false,element:parentNode}); + + } + + NJevent('layerBinding',this.container); + } + }, + + + handleBreadCrumbTrail: { + value: function(event) { + var newLength, revaluatedLength, tmpvalue, i=0; + + newLength = this.containerElements.length; + + while(i < newLength ) { + if(this.containerElements[i].selected){ + tmpvalue = i ; + break; + } + + i++; + } + + for(i = newLength -1 ; i >= 1 ; i--) { + if(tmpvalue!==i) { + this.containerElements.pop(); + } else { + break; + } + } + + revaluatedLength = this.containerElements.length; + this.application.ninja.currentSelectedContainer = this.containerElements[revaluatedLength-1].element; + + } + } + + +}); -- cgit v1.2.3