aboutsummaryrefslogtreecommitdiff
path: root/js/stage/objects-tray.reel/objects-tray.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/stage/objects-tray.reel/objects-tray.js')
-rw-r--r--js/stage/objects-tray.reel/objects-tray.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/js/stage/objects-tray.reel/objects-tray.js b/js/stage/objects-tray.reel/objects-tray.js
new file mode 100644
index 00000000..190abf57
--- /dev/null
+++ b/js/stage/objects-tray.reel/objects-tray.js
@@ -0,0 +1,98 @@
1/* <copyright>
2 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */
6
7/**
8 @requires montage/core/core
9 @requires montage/ui/component
10 */
11var Montage = require("montage/core/core").Montage,
12 Component = require("montage/ui/component").Component;
13
14exports.ObjectsTray = Montage.create(Component, {
15 hideClass : { value: 'hide-objects-tray'},
16 _empty : { value: null },
17 _workspaceMode : { value: null },
18 workspaceMode : {
19 get : function() { return this._workspaceMode; },
20 set : function(value) {
21 if(value === this._workspaceMode) { return; }
22
23 var toHide = (value !== 'binding');
24
25 setTimeout(function() {
26 this.hide = toHide;
27 }.bind(this), 200);
28
29 this._workspaceMode = value;
30
31 this.needsDraw = true;
32 }
33 },
34
35 _objects: { value: null },
36 objects: {
37 get: function() {
38 return this._objects;
39 },
40 set: function(value) {
41 this._objects = value;
42 this.needsDraw = true;
43 }
44 },
45
46 _hide : { value: null },
47 hide : {
48 get : function() { return this._hide; },
49 set : function(value) {
50 if(value === this._hide) { return; }
51
52 this._hide = value;
53
54 this.needsDraw = true;
55 }
56 },
57
58
59 templateDidLoad: {
60 value: function() {
61 console.log('objects panel loaded');
62 }
63 },
64
65 prepareForDraw : {
66 value: function() {
67
68 Object.defineBinding(this, 'workspaceMode', {
69 "boundObject": this.application.ninja,
70 "boundObjectPropertyPath": "workspaceMode",
71 "oneway": true
72 });
73
74 Object.defineBinding(this, 'objects', {
75 "boundObject": this.application.ninja.objectsController,
76 "boundObjectPropertyPath": "objects",
77 "oneway": true
78 });
79
80 if(this.objects) {
81 this.empty = !this.objects.length;
82 } else {
83 this.empty = true;
84 }
85
86 }
87 },
88 draw : {
89 value: function() {
90 if(this.hide || this._empty) {
91 this.element.classList.add(this.hideClass);
92 } else {
93 this.element.classList.remove(this.hideClass);
94 }
95 }
96 }
97
98}); \ No newline at end of file