aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/elements
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-xjs/controllers/elements/element-controller.js15
-rwxr-xr-xjs/controllers/elements/shapes-controller.js67
2 files changed, 75 insertions, 7 deletions
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js
index b35251ad..efb33292 100755
--- a/js/controllers/elements/element-controller.js
+++ b/js/controllers/elements/element-controller.js
@@ -5,22 +5,27 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
5</copyright> */ 5</copyright> */
6 6
7var Montage = require("montage/core/core").Montage, 7var Montage = require("montage/core/core").Montage,
8 NJComponent = require("js/lib/nj-base").NJComponent; 8 Component = require("montage/ui/component").Component;
9 9
10var ElementController = exports.ElementController = Montage.create(NJComponent, { 10exports.ElementController = Montage.create(Component, {
11 11
12 addElement: { 12 addElement: {
13 value: function(el, styles) { 13 value: function(el, styles) {
14 this.application.ninja.currentDocument.documentRoot.appendChild(el); 14 this.application.ninja.currentDocument.documentRoot.appendChild(el);
15 // Nested elements - 15 // Nested elements - TODO make sure the CSS is correct before nesting elements
16 // TODO make sure the CSS is correct before nesting elements
17 // this.application.ninja.currentSelectedContainer.appendChild(el); 16 // this.application.ninja.currentSelectedContainer.appendChild(el);
18 this.application.ninja.stylesController.setElementStyles(el, styles); 17 if(styles) {
18 this.application.ninja.stylesController.setElementStyles(el, styles);
19 }
19 } 20 }
20 }, 21 },
21 22
23 // Remove the element from the DOM and clear the GLWord.
22 removeElement: { 24 removeElement: {
23 value: function(el) { 25 value: function(el) {
26 if(el.elementModel && el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) {
27 el.elementModel.shapeModel.GLWorld.clearTree();
28 }
24 el.parentNode.removeChild(el); 29 el.parentNode.removeChild(el);
25 } 30 }
26 }, 31 },
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js
index f0e9458b..c9164e3e 100755
--- a/js/controllers/elements/shapes-controller.js
+++ b/js/controllers/elements/shapes-controller.js
@@ -72,8 +72,9 @@ exports.ShapesController = Montage.create(CanvasController, {
72 canvas.setAttribute("data-RDGE-id", njModule.NJUtils.generateRandom()); 72 canvas.setAttribute("data-RDGE-id", njModule.NJUtils.generateRandom());
73 canvas.width = el.width; 73 canvas.width = el.width;
74 canvas.height = el.height; 74 canvas.height = el.height;
75 this.application.ninja.elementMediator.replaceElement(el, canvas); 75 canvas.elementModel = el.elementModel;
76 NJevent("elementDeleted", el); 76 this.application.ninja.currentDocument.documentRoot.replaceChild(canvas, el);
77 NJevent("elementsRemoved", el);
77 el = canvas; 78 el = canvas;
78 this.toggleWebGlMode(el, value); 79 this.toggleWebGlMode(el, value);
79 el.elementModel.shapeModel.GLWorld.render(); 80 el.elementModel.shapeModel.GLWorld.render();
@@ -119,6 +120,31 @@ exports.ShapesController = Montage.create(CanvasController, {
119 el.elementModel.shapeModel.GLWorld._canvas.task.stop(); 120 el.elementModel.shapeModel.GLWorld._canvas.task.stop();
120 } 121 }
121 break; 122 break;
123 case "strokeHardness":
124 this.setShapeProperty(el, "strokeHardness", value);
125 el.elementModel.shapeModel.GLGeomObj.setStrokeHardness(val);
126 el.elementModel.shapeModel.GLWorld.render();
127 break;
128 case "strokeSmoothing":
129 this.setShapeProperty(el, "strokeSmoothing", value);
130 el.elementModel.shapeModel.GLGeomObj.setSmoothingAmount(val);
131 el.elementModel.shapeModel.GLWorld.render();
132 break;
133 case "doSmoothing":
134 this.setShapeProperty(el, "doSmoothing", value);
135 el.elementModel.shapeModel.GLGeomObj.setDoSmoothing(value);
136 el.elementModel.shapeModel.GLWorld.render();
137 break;
138 case "isCalligraphic":
139 this.setShapeProperty(el, "isCalligraphic", value);
140 el.elementModel.shapeModel.GLGeomObj.setStrokeUseCalligraphic(value);
141 el.elementModel.shapeModel.GLWorld.render();
142 break;
143 case "strokeAngle":
144 this.setShapeProperty(el, "strokeAngle", value);
145 el.elementModel.shapeModel.GLGeomObj.setStrokeAngle(Math.PI * val/180);
146 el.elementModel.shapeModel.GLWorld.render();
147 break;
122 default: 148 default:
123 CanvasController.setProperty(el, p, value); 149 CanvasController.setProperty(el, p, value);
124 } 150 }
@@ -139,6 +165,43 @@ exports.ShapesController = Montage.create(CanvasController, {
139 case "useWebGl": 165 case "useWebGl":
140 case "animate": 166 case "animate":
141 return this.getShapeProperty(el, p); 167 return this.getShapeProperty(el, p);
168 case "strokeHardness":
169 if (el.elementModel && el.elementModel.shapeModel){
170 return el.elementModel.shapeModel.GLGeomObj.getStrokeHardness();
171 } else {
172 return null;
173 }
174 break;
175 case "doSmoothing":
176 if (el.elementModel && el.elementModel.shapeModel){
177 return el.elementModel.shapeModel.GLGeomObj.getDoSmoothing();
178 } else {
179 return null;
180 }
181 break;
182 case "strokeSmoothing":
183 if (el.elementModel && el.elementModel.shapeModel){
184 return el.elementModel.shapeModel.GLGeomObj.getSmoothingAmount();
185 } else {
186 return null;
187 }
188 break;
189 case "isCalligraphic":
190 if (el.elementModel && el.elementModel.shapeModel){
191 return el.elementModel.shapeModel.GLGeomObj.getStrokeUseCalligraphic();
192 } else {
193 return null;
194 }
195 break;
196 case "strokeAngle":
197 if (el.elementModel && el.elementModel.shapeModel){
198 return 180*el.elementModel.shapeModel.GLGeomObj.getStrokeAngle()/Math.PI;
199 } else {
200 return null;
201 }
202 break;
203
204
142 case "strokeMaterial": 205 case "strokeMaterial":
143 case "fillMaterial": 206 case "fillMaterial":
144 var m = this.getShapeProperty(el, p); 207 var m = this.getShapeProperty(el, p);