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/panels/Splitter.js | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 js/panels/Splitter.js (limited to 'js/panels/Splitter.js') diff --git a/js/panels/Splitter.js b/js/panels/Splitter.js new file mode 100644 index 00000000..9f5b4de7 --- /dev/null +++ b/js/panels/Splitter.js @@ -0,0 +1,127 @@ +/* +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.Splitter = Montage.create(Component, { + + hasTemplate: { + value: false + }, + + _panel: { + value: null, + enumerable:true + }, + + panel: { + get: function() { + return this._panel; + }, + set: function(value) { + this._panel = value; + } + }, + + _resizeBar: { + value: null + }, + + resizeBar: { + get: function() { + return this._resizeBar; + }, + set: function(val) { + this._resizeBar = val; + } + }, + + _collapsed : { + value: false, + enumerable:true + }, + + collapsed: { + get: function() { + return this._collapsed; + }, + set: function(value) + { + this._collapsed = value; + this.application.ninja.settings.setSetting(this.element.id, "collapsed", this.collapsed); + } + }, + + prepareForDraw: { + value: function() { + //Get Setting from SettingManager + this.application.ninja.settings.getSetting(this.element.id, "collapsed"); + lapsed = false; + if (lapsed != null) this._collapsed = lapsed; + this.element.addEventListener("click", this, false); + } + }, + + draw: { + value: function() { + if(this.collapsed) { + + if(this.panel.element) this.panel.element.classList.add("collapsed"); + else this.panel.classList.add("collapsed"); + this.element.classList.add("collapsed"); + if(this._resizeBar != null) this.resizeBar.classList.add("collapsed"); + } + else { + if(this.panel.element) this.panel.element.classList.remove("collapsed"); + else this.panel.classList.remove("collapsed"); + this.element.classList.remove("collapsed"); + if(this._resizeBar != null) this.resizeBar.classList.remove("collapsed"); + } + } + }, + + handleClick : { + value: function() { + if (!this.disabled) { + this.panel.addEventListener("webkitTransitionEnd", this, false); + this.collapsed = !this.collapsed; + this.needsDraw = true; + } + } + }, + + handleWebkitTransitionEnd: { + value: function() { + this.panel.removeEventListener("webkitTransitionEnd", this, false); + this.application.ninja.stage.resizeCanvases = true; + } + }, + + _disabled: { + value: null + }, + + disabled: { + get: function() { + return this._disabled; + }, + set: function(val) { + if (val && !this.element.classList.contains("disabled")) { + this.element.classList.add("disabled"); + } else { + this.element.classList.remove("disabled"); + } + this._disabled = val; + } + }, + + toggle: { + value: function() { + this.handleClick(); + } + } +}); -- cgit v1.2.3