diff options
author | Armen Kesablyan | 2012-06-20 13:07:31 -0700 |
---|---|---|
committer | Armen Kesablyan | 2012-06-20 13:07:31 -0700 |
commit | 409e4821d34886199a2106ea854fca6aab6d39c3 (patch) | |
tree | ca2967965c54269492176b1c3c93acbca6131c1f /js/stage/binding-view.reel/binding-hud.reel | |
parent | 5c770b772179cc2c3a0455f67025978b44e4b547 (diff) | |
parent | 8ac2ce1566995c91fe4721df2b121ed6437b9e1c (diff) | |
download | ninja-409e4821d34886199a2106ea854fca6aab6d39c3.tar.gz |
Merge branch 'refs/heads/binding_eric' into binding
Diffstat (limited to 'js/stage/binding-view.reel/binding-hud.reel')
-rwxr-xr-x | js/stage/binding-view.reel/binding-hud.reel/binding-hud.js | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/js/stage/binding-view.reel/binding-hud.reel/binding-hud.js b/js/stage/binding-view.reel/binding-hud.reel/binding-hud.js index 0893e8d8..dd88bef7 100755 --- a/js/stage/binding-view.reel/binding-hud.reel/binding-hud.js +++ b/js/stage/binding-view.reel/binding-hud.reel/binding-hud.js | |||
@@ -52,17 +52,35 @@ exports.BindingHud = Montage.create(Component, { | |||
52 | return this._userComponent; | 52 | return this._userComponent; |
53 | }, | 53 | }, |
54 | set: function(val) { | 54 | set: function(val) { |
55 | if (typeof(val) !== "undefined") { | 55 | if(!val) { return; } |
56 | this._userComponent = val; | 56 | |
57 | var controller = this.application.ninja.objectsController, | ||
58 | bindingView = this.parentComponent.parentComponent, | ||
59 | isOffStage, icon, iconOffsets; | ||
60 | |||
61 | this._userComponent = val; | ||
62 | this.properties = controller.getPropertiesFromObject(val, true); | ||
63 | |||
64 | controller.getObjectBindings(this.userComponent).forEach(function(obj) { | ||
65 | this.boundProperties.push(obj.sourceObjectPropertyPath); | ||
66 | }, this); | ||
67 | |||
68 | isOffStage = controller.isOffStageObject(val); | ||
69 | |||
70 | if(isOffStage) { | ||
71 | icon = bindingView.getOffStageIcon(val); | ||
72 | iconOffsets = this.getElementOffsetToParent(icon.element, bindingView.element); | ||
73 | this.title = icon.name; | ||
74 | this.x = iconOffsets.x; | ||
75 | this.y = iconOffsets.y - 80; | ||
76 | } else { | ||
57 | this.title = val.identifier; | 77 | this.title = val.identifier; |
58 | this.x = val.element.offsetLeft; | 78 | this.x = val.element.offsetLeft; |
59 | this.y = val.element.offsetTop; | 79 | this.y = val.element.offsetTop; |
60 | this.properties = this.application.ninja.objectsController.getPropertiesFromObject(val, true); | ||
61 | this.application.ninja.objectsController.getObjectBindings(this.userComponent).forEach(function(obj) { | ||
62 | this.boundProperties.push(obj.sourceObjectPropertyPath); | ||
63 | }.bind(this)); | ||
64 | this.needsDraw = true; | ||
65 | } | 80 | } |
81 | |||
82 | this.needsDraw = true; | ||
83 | |||
66 | } | 84 | } |
67 | }, | 85 | }, |
68 | 86 | ||
@@ -111,6 +129,18 @@ exports.BindingHud = Montage.create(Component, { | |||
111 | } | 129 | } |
112 | }, | 130 | }, |
113 | 131 | ||
132 | getElementOffsetToParent : { | ||
133 | value: function(element, parent) { | ||
134 | var nodeToPage = webkitConvertPointFromNodeToPage(element, new WebKitPoint(0, 0)), | ||
135 | parentToPage = webkitConvertPointFromNodeToPage(parent, new WebKitPoint(0, 0)); | ||
136 | |||
137 | return { | ||
138 | x : nodeToPage.x - parentToPage.x, | ||
139 | y : nodeToPage.y - parentToPage.y | ||
140 | } | ||
141 | } | ||
142 | }, | ||
143 | |||
114 | _x: { | 144 | _x: { |
115 | value: 20 | 145 | value: 20 |
116 | }, | 146 | }, |