diff options
Diffstat (limited to 'js/panels/binding-panel.reel/binding-panel.js')
-rw-r--r-- | js/panels/binding-panel.reel/binding-panel.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/js/panels/binding-panel.reel/binding-panel.js b/js/panels/binding-panel.reel/binding-panel.js new file mode 100644 index 00000000..0641ecf5 --- /dev/null +++ b/js/panels/binding-panel.reel/binding-panel.js | |||
@@ -0,0 +1,78 @@ | |||
1 | var Montage = require("montage/core/core").Montage, | ||
2 | Component = require("montage/ui/component").Component; | ||
3 | |||
4 | |||
5 | exports.BindingPanel = Montage.create(Component, { | ||
6 | |||
7 | bindings : { value: null }, | ||
8 | editView : { value: null }, | ||
9 | _editing: { value: null }, | ||
10 | editing: { | ||
11 | get: function() { | ||
12 | return this._editing; | ||
13 | }, | ||
14 | set: function(value) { | ||
15 | if(value === this._editing) { return; } | ||
16 | this._editing = value; | ||
17 | this.needsDraw = true; | ||
18 | } | ||
19 | }, | ||
20 | _translateDistance : { | ||
21 | value: null | ||
22 | }, | ||
23 | |||
24 | displayEditView : { | ||
25 | value: function(bindingArgs) { | ||
26 | this.editView.bindingArgs = bindingArgs; | ||
27 | this.editing = true; | ||
28 | } | ||
29 | }, | ||
30 | |||
31 | /* ------------------------- | ||
32 | Toolbar Button Actions | ||
33 | ------------------------- */ | ||
34 | |||
35 | handleAddAction : { | ||
36 | value: function(e) { | ||
37 | var newBindingArgs = { | ||
38 | sourceObject : this.application.ninja.objectsController.currentObject | ||
39 | }; | ||
40 | |||
41 | this.displayEditView(newBindingArgs); | ||
42 | } | ||
43 | }, | ||
44 | |||
45 | |||
46 | |||
47 | templateDidLoad : { | ||
48 | value: function() { | ||
49 | Object.defineBinding(this, 'bindings', { | ||
50 | boundObject: this.application.ninja.objectsController, | ||
51 | boundObjectPropertyPath: "currentObjectBindings", | ||
52 | oneway: true | ||
53 | }); | ||
54 | } | ||
55 | }, | ||
56 | |||
57 | willDraw: { | ||
58 | value: function() { | ||
59 | if(this.editing) { | ||
60 | this._translateDistance = this.element.offsetWidth; | ||
61 | } | ||
62 | } | ||
63 | }, | ||
64 | |||
65 | draw : { | ||
66 | value: function() { | ||
67 | var transStr = '-webkit-transform'; | ||
68 | |||
69 | if(this.editing) { | ||
70 | this.editView.element.style.setProperty(transStr, 'translate3d(-'+ this._translateDistance + 'px,0,0)'); | ||
71 | this.editView.element.style.setProperty('box-shadow', '0 0 10px rgba(0,0,0,0.2)') | ||
72 | } else { | ||
73 | this.editView.element.style.removeProperty(transStr); | ||
74 | this.editView.element.style.removeProperty('box-shadow'); | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | }); \ No newline at end of file | ||