aboutsummaryrefslogtreecommitdiff
path: root/js/panels/binding-panel.reel/binding-panel.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/binding-panel.reel/binding-panel.js')
-rw-r--r--js/panels/binding-panel.reel/binding-panel.js78
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 @@
1var Montage = require("montage/core/core").Montage,
2 Component = require("montage/ui/component").Component;
3
4
5exports.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