diff options
Diffstat (limited to 'js/panels/properties.reel')
-rwxr-xr-x | js/panels/properties.reel/properties.html | 5 | ||||
-rwxr-xr-x | js/panels/properties.reel/properties.js | 48 | ||||
-rwxr-xr-x | js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js | 95 |
3 files changed, 76 insertions, 72 deletions
diff --git a/js/panels/properties.reel/properties.html b/js/panels/properties.reel/properties.html index ac0dab5a..b9aa206b 100755 --- a/js/panels/properties.reel/properties.html +++ b/js/panels/properties.reel/properties.html | |||
@@ -56,7 +56,10 @@ | |||
56 | } | 56 | } |
57 | }, | 57 | }, |
58 | "threeDProperties": { | 58 | "threeDProperties": { |
59 | "prototype": "js/panels/properties.reel/sections/three-d-view.reel[ThreeD]" | 59 | "prototype": "js/panels/properties.reel/sections/three-d-view.reel[ThreeD]", |
60 | "bindings": { | ||
61 | "currentDocument": {"<-": "@owner.currentDocument"} | ||
62 | } | ||
60 | }, | 63 | }, |
61 | 64 | ||
62 | "CustomSections": { | 65 | "CustomSections": { |
diff --git a/js/panels/properties.reel/properties.js b/js/panels/properties.reel/properties.js index 84b0d589..d05fb058 100755 --- a/js/panels/properties.reel/properties.js +++ b/js/panels/properties.reel/properties.js | |||
@@ -13,6 +13,33 @@ var ElementsMediator = require("js/mediators/element-mediator").ElementMediator; | |||
13 | 13 | ||
14 | exports.Properties = Montage.create(Component, { | 14 | exports.Properties = Montage.create(Component, { |
15 | 15 | ||
16 | _currentDocument: { | ||
17 | value : null | ||
18 | }, | ||
19 | |||
20 | currentDocument : { | ||
21 | get : function() { | ||
22 | return this._currentDocument; | ||
23 | }, | ||
24 | set : function(value) { | ||
25 | if (value === this._currentDocument) { | ||
26 | return; | ||
27 | } | ||
28 | |||
29 | this._currentDocument = value; | ||
30 | |||
31 | if(!value) { | ||
32 | this.clear(); | ||
33 | } else if(this._currentDocument.currentView === "design") { | ||
34 | // Save a reference of the pi inside the document view to be able to clear | ||
35 | this._currentDocument.model.views.design.propertiesPanel = this; | ||
36 | |||
37 | // Display the default document root PI | ||
38 | this.displayElementProperties(this._currentDocument.model.documentRoot); | ||
39 | } | ||
40 | } | ||
41 | }, | ||
42 | |||
16 | elementName: { | 43 | elementName: { |
17 | value: null | 44 | value: null |
18 | }, | 45 | }, |
@@ -46,9 +73,8 @@ exports.Properties = Montage.create(Component, { | |||
46 | 73 | ||
47 | prepareForDraw: { | 74 | prepareForDraw: { |
48 | value : function() { | 75 | value : function() { |
49 | this.eventManager.addEventListener("openDocument", this, false); | 76 | this.eventManager.addEventListener("elementChange", this, false); |
50 | this.eventManager.addEventListener("selectionChange", this, false); | 77 | this.eventManager.addEventListener("selectionChange", this, false); |
51 | this.eventManager.addEventListener("closeDocument", this, false); | ||
52 | 78 | ||
53 | // This will be a toggle option | 79 | // This will be a toggle option |
54 | if(this.application.ninja.appData.PILiveUpdate) { | 80 | if(this.application.ninja.appData.PILiveUpdate) { |
@@ -65,24 +91,6 @@ exports.Properties = Montage.create(Component, { | |||
65 | } | 91 | } |
66 | }, | 92 | }, |
67 | 93 | ||
68 | handleOpenDocument: { | ||
69 | value: function() { | ||
70 | this.eventManager.addEventListener( "elementChange", this, false); | ||
71 | |||
72 | // Save a reference of the pi inside the document view to be able to clear | ||
73 | this.application.ninja.currentDocument.model.views.design.propertiesPanel = this; | ||
74 | |||
75 | // Display the default document root PI | ||
76 | this.displayElementProperties(this.application.ninja.currentDocument.model.documentRoot); | ||
77 | } | ||
78 | }, | ||
79 | |||
80 | handleCloseDocument: { | ||
81 | value: function(){ | ||
82 | this.clear(); | ||
83 | } | ||
84 | }, | ||
85 | |||
86 | /** | 94 | /** |
87 | * Blur and Key up to handle change in the Element ID field. | 95 | * Blur and Key up to handle change in the Element ID field. |
88 | */ | 96 | */ |
diff --git a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js index e16e3509..49907c9d 100755 --- a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js +++ b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js | |||
@@ -26,8 +26,7 @@ exports.ThreeD = Montage.create(Component, { | |||
26 | set: function(value) { | 26 | set: function(value) { |
27 | this._axisMode = value; | 27 | this._axisMode = value; |
28 | 28 | ||
29 | if(value === 0) | 29 | if(value === 0) { |
30 | { | ||
31 | this.inGlobalMode = false; | 30 | this.inGlobalMode = false; |
32 | this.x3D = 0; | 31 | this.x3D = 0; |
33 | this.y3D = 0; | 32 | this.y3D = 0; |
@@ -36,13 +35,10 @@ exports.ThreeD = Montage.create(Component, { | |||
36 | this.xAngle = 0; | 35 | this.xAngle = 0; |
37 | this.yAngle = 0; | 36 | this.yAngle = 0; |
38 | this.zAngle = 0; | 37 | this.zAngle = 0; |
39 | } | 38 | } else { |
40 | else | ||
41 | { | ||
42 | this.inGlobalMode = true; | 39 | this.inGlobalMode = true; |
43 | var item = this.item; | 40 | var item = this.item; |
44 | if(item) | 41 | if(item) { |
45 | { | ||
46 | this.x3D = item.elementModel.props3D.x3D; | 42 | this.x3D = item.elementModel.props3D.x3D; |
47 | this.y3D = item.elementModel.props3D.y3D; | 43 | this.y3D = item.elementModel.props3D.y3D; |
48 | this.z3D = item.elementModel.props3D.z3D; | 44 | this.z3D = item.elementModel.props3D.z3D; |
@@ -114,8 +110,7 @@ exports.ThreeD = Montage.create(Component, { | |||
114 | handleAction: { | 110 | handleAction: { |
115 | value: function(event) { | 111 | value: function(event) { |
116 | if(event.currentTarget.identifier === "flatten") { | 112 | if(event.currentTarget.identifier === "flatten") { |
117 | this.application.ninja.elementMediator.setProperty([this.item], | 113 | this.application.ninja.elementMediator.setProperty([this.item], "-webkit-transform-style", |
118 | "-webkit-transform-style", | ||
119 | event.currentTarget.checked ? ["flat"] : ["preserve-3d"]); | 114 | event.currentTarget.checked ? ["flat"] : ["preserve-3d"]); |
120 | } | 115 | } |
121 | } | 116 | } |
@@ -127,11 +122,7 @@ exports.ThreeD = Montage.create(Component, { | |||
127 | return; | 122 | return; |
128 | } | 123 | } |
129 | 124 | ||
130 | this.apply3DProperties(event.currentTarget.identifier, | 125 | this.apply3DProperties(event.currentTarget.identifier, event.currentTarget, this.item, this.inGlobalMode, false); |
131 | event.currentTarget, | ||
132 | this.item, | ||
133 | this.inGlobalMode, | ||
134 | false); | ||
135 | 126 | ||
136 | this._curMat = null; | 127 | this._curMat = null; |
137 | this._curProp = null; | 128 | this._curProp = null; |
@@ -144,28 +135,24 @@ exports.ThreeD = Montage.create(Component, { | |||
144 | return; | 135 | return; |
145 | } | 136 | } |
146 | 137 | ||
147 | this.apply3DProperties(event.currentTarget.identifier, | 138 | this.apply3DProperties(event.currentTarget.identifier, event.currentTarget, this.item, this.inGlobalMode, true); |
148 | event.currentTarget, | ||
149 | this.item, | ||
150 | this.inGlobalMode, | ||
151 | true); | ||
152 | } | 139 | } |
153 | }, | 140 | }, |
154 | 141 | ||
155 | apply3DProperties : { | 142 | apply3DProperties : { |
156 | value : function(prop, value, item, inGlobalMode, isChanging){ | 143 | value : function(prop, value, item, inGlobalMode, isChanging){ |
157 | if(!this._curMat) | 144 | if(!this._curMat) { |
158 | { | ||
159 | this._curMat = this.application.ninja.elementMediator.getMatrix(item); | 145 | this._curMat = this.application.ninja.elementMediator.getMatrix(item); |
160 | } | 146 | } |
147 | |||
161 | var curMat = this._curMat; | 148 | var curMat = this._curMat; |
162 | var delta = value.value; | 149 | var delta = value.value; |
163 | if(inGlobalMode) | 150 | if(inGlobalMode) { |
164 | { | 151 | |
165 | if(!this._curProp) | 152 | if(!this._curProp) { |
166 | { | ||
167 | this._curProp = this.application.ninja.elementMediator.get3DProperty(item, prop); | 153 | this._curProp = this.application.ninja.elementMediator.get3DProperty(item, prop); |
168 | } | 154 | } |
155 | |||
169 | delta -= this._curProp; | 156 | delta -= this._curProp; |
170 | } | 157 | } |
171 | 158 | ||
@@ -193,31 +180,51 @@ exports.ThreeD = Montage.create(Component, { | |||
193 | } | 180 | } |
194 | 181 | ||
195 | var mat = []; | 182 | var mat = []; |
196 | if(inGlobalMode) | 183 | if(inGlobalMode) { |
197 | { | ||
198 | glmat4.multiply(xFormMat, curMat, mat); | 184 | glmat4.multiply(xFormMat, curMat, mat); |
199 | } | 185 | } else { |