aboutsummaryrefslogtreecommitdiff
path: root/js/panels/properties.reel
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/properties.reel')
-rwxr-xr-xjs/panels/properties.reel/properties.html5
-rwxr-xr-xjs/panels/properties.reel/properties.js48
-rwxr-xr-xjs/panels/properties.reel/sections/three-d-view.reel/three-d-view.js95
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
14exports.Properties = Montage.create(Component, { 14exports.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 {