diff options
Diffstat (limited to 'js/stage/objects-tray.reel/objects-tray.js')
-rw-r--r-- | js/stage/objects-tray.reel/objects-tray.js | 98 |
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 | */ | ||
11 | var Montage = require("montage/core/core").Montage, | ||
12 | Component = require("montage/ui/component").Component; | ||
13 | |||
14 | exports.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 | ||