aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/elements
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-xjs/controllers/elements/body-controller.js9
-rwxr-xr-xjs/controllers/elements/controller-factory.js4
-rwxr-xr-xjs/controllers/elements/element-controller.js102
-rwxr-xr-xjs/controllers/elements/shapes-controller.js103
4 files changed, 165 insertions, 53 deletions
diff --git a/js/controllers/elements/body-controller.js b/js/controllers/elements/body-controller.js
index 7a3a66f5..0dc11b82 100755
--- a/js/controllers/elements/body-controller.js
+++ b/js/controllers/elements/body-controller.js
@@ -30,7 +30,8 @@ exports.BodyController = Montage.create(ElementController, {
30 value: function(el, p) { 30 value: function(el, p) {
31 switch(p) { 31 switch(p) {
32 case "background" : 32 case "background" :
33 return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el, "background-color", false, true)); 33 case "background-color":
34 return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el, "background-color"));
34 case "border": 35 case "border":
35 return 0; 36 return 0;
36 case "height": 37 case "height":
@@ -47,8 +48,8 @@ exports.BodyController = Montage.create(ElementController, {
47 setProperty: { 48 setProperty: {
48 value: function(el, p, value) { 49 value: function(el, p, value) {
49 switch(p) { 50 switch(p) {
50 case "body-background":
51 case "background": 51 case "background":
52 case "background-color":
52 this.application.ninja.stylesController.setElementStyle(el, "background-color", value); 53 this.application.ninja.stylesController.setElementStyle(el, "background-color", value);
53 break; 54 break;
54 case "overflow": 55 case "overflow":
@@ -71,7 +72,7 @@ exports.BodyController = Montage.create(ElementController, {
71 72
72 getPerspectiveDist: { 73 getPerspectiveDist: {
73 value: function(el) { 74 value: function(el) {
74 if(el.elementModel && el.elementModel.props3D && el.elementModel.props3D.perspectiveDist) { 75 if(el.elementModel.props3D && el.elementModel.props3D.perspectiveDist) {
75 return el.elementModel.props3D.perspectiveDist; 76 return el.elementModel.props3D.perspectiveDist;
76 } else { 77 } else {
77 var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, true); 78 var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, true);
@@ -83,7 +84,7 @@ exports.BodyController = Montage.create(ElementController, {
83 84
84 getMatrix: { 85 getMatrix: {
85 value: function(el) { 86 value: function(el) {
86 if(el.elementModel && el.elementModel.props3D && el.elementModel.props3D.matrix3d) 87 if(el.elementModel.props3D && el.elementModel.props3D.matrix3d)
87 { 88 {
88 return el.elementModel.props3D.matrix3d.slice(0); 89 return el.elementModel.props3D.matrix3d.slice(0);
89 } 90 }
diff --git a/js/controllers/elements/controller-factory.js b/js/controllers/elements/controller-factory.js
index 3ac3fe14..2d2a5cd1 100755
--- a/js/controllers/elements/controller-factory.js
+++ b/js/controllers/elements/controller-factory.js
@@ -8,7 +8,6 @@ var Montage = require("montage/core/core").Montage;
8 8
9var BodyController = require("js/controllers/elements/body-controller").BodyController, 9var BodyController = require("js/controllers/elements/body-controller").BodyController,
10 BlockController = require("js/controllers/elements/block-controller").BlockController, 10 BlockController = require("js/controllers/elements/block-controller").BlockController,
11 StageController = require("js/controllers/elements/stage-controller").StageController,
12 ShapesController = require("js/controllers/elements/shapes-controller").ShapesController, 11 ShapesController = require("js/controllers/elements/shapes-controller").ShapesController,
13 ImageController = require("js/controllers/elements/image-controller").ImageController, 12 ImageController = require("js/controllers/elements/image-controller").ImageController,
14 VideoController = require("js/controllers/elements/video-controller").VideoController, 13 VideoController = require("js/controllers/elements/video-controller").VideoController,
@@ -27,7 +26,8 @@ exports.ControllerFactory = Montage.create(Montage, {
27 if(value.indexOf("block") !== -1) { 26 if(value.indexOf("block") !== -1) {
28 return BlockController; 27 return BlockController;
29 } else if(value.indexOf("stage") !== -1) { 28 } else if(value.indexOf("stage") !== -1) {
30 return StageController; 29// return StageController;
30 alert("Calling the stage controller. Should not be calling this object");
31 } else if(value.indexOf("body") !== -1) { 31 } else if(value.indexOf("body") !== -1) {
32 return BodyController; 32 return BodyController;
33 } else if(value.indexOf("shape") !== -1) { 33 } else if(value.indexOf("shape") !== -1) {
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js
index 01e132d7..4a02e9a3 100755
--- a/js/controllers/elements/element-controller.js
+++ b/js/controllers/elements/element-controller.js
@@ -5,7 +5,8 @@ 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 Component = require("montage/ui/component").Component; 8 Component = require("montage/ui/component").Component,
9 njModule = require("js/lib/NJUtils");
9 10
10exports.ElementController = Montage.create(Component, { 11exports.ElementController = Montage.create(Component, {
11 12
@@ -36,7 +37,7 @@ exports.ElementController = Montage.create(Component, {
36 // Remove the element from the DOM and clear the GLWord. 37 // Remove the element from the DOM and clear the GLWord.
37 removeElement: { 38 removeElement: {
38 value: function(el) { 39 value: function(el) {
39 if(el.elementModel && el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) { 40 if(el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) {
40 el.elementModel.shapeModel.GLWorld.clearTree(); 41 el.elementModel.shapeModel.GLWorld.clearTree();
41 } 42 }
42 el.parentNode.removeChild(el); 43 el.parentNode.removeChild(el);
@@ -162,28 +163,12 @@ exports.ElementController = Montage.create(Component, {
162 el.elementModel.stroke = null; 163 el.elementModel.stroke = null;
163 return; 164 return;
164 case 'gradient': 165 case 'gradient':
165 if(color.borderInfo) {
166 if(color.borderInfo.borderWidth) {
167 this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits);
168 }
169 if(color.borderInfo.borderStyle) {
170 this.setProperty(el, "border-style", color.borderInfo.borderStyle);
171 }
172 }
173 this.setGradientBorder(el, color.color.gradientMode, color.color.css); 166 this.setGradientBorder(el, color.color.gradientMode, color.color.css);
174 break; 167 break;
175 default: 168 default:
176 this.setProperty(el, "border-image", "none"); 169 this.setProperty(el, "border-image", "none");
177 this.setProperty(el, "border-image-slice", ""); 170 this.setProperty(el, "border-image-slice", "");
178 this.setProperty(el, "border-color", color.color.css); 171 this.setProperty(el, "border-color", color.color.css);
179 if(color.borderInfo) {
180 if(color.borderInfo.borderWidth) {
181 this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits);
182 }
183 if(color.borderInfo.borderStyle) {
184 this.setProperty(el, "border-style", color.borderInfo.borderStyle);
185 }
186 }
187 } 172 }
188 } 173 }
189 el.elementModel.stroke = color; 174 el.elementModel.stroke = color;
@@ -211,25 +196,88 @@ exports.ElementController = Montage.create(Component, {
211 }, 196 },
212 197
213 getStroke: { 198 getStroke: {
214 value: function(el) { 199 value: function(el, stroke) {
215 // TODO - Need to figure out which border side user wants 200 var strokeInfo = {},
216 return this.application.ninja.stylesController.getElementStyle(el, "border"); 201 color,
202 borderWidth,
203 border;
204 if(stroke.colorInfo) {
205 strokeInfo.colorInfo = {};
206 color = this.getColor(el, false);
207 if(color && color.color) {
208 strokeInfo.colorInfo.mode = color.mode;
209 strokeInfo.colorInfo.color = color.color;
210 } else {
211 strokeInfo.colorInfo.mode = "nocolor";
212 strokeInfo.colorInfo.color = null;
213 }
214 }
215 if(stroke.borderInfo) {
216 // TODO - Need to figure out which border side user wants
217 strokeInfo.borderInfo = {};
218 if(stroke.borderInfo.borderWidth) {
219 borderWidth = this.getProperty(el, "border-width");
220 if(borderWidth) {
221 border = njModule.NJUtils.getValueAndUnits(borderWidth);
222 strokeInfo.borderInfo.borderWidth = border[0];
223 strokeInfo.borderInfo.borderUnits = border[1];
224 }
225 }
226 if(stroke.borderInfo.borderStyle) {
227 strokeInfo.borderInfo.borderStyle = this.getProperty(el, "border-style");
228 }
229 }
230 return strokeInfo;
217 } 231 }
218 }, 232 },
219 233
220 setStroke: { 234 setStroke: {
221 value: function(el, stroke) { 235 value: function(el, stroke) {
222 this.application.ninja.stylesController.setElementStyle(el, "border-width", stroke.borderWidth + stroke.borderUnits); 236 if(stroke.borderInfo) {
223 this.application.ninja.stylesController.setElementStyle(el, "border-style", stroke.borderStyle); 237 if(stroke.borderInfo.borderWidth) {
224 this.setColor(el, stroke.color, false); 238 this.application.ninja.stylesController.setElementStyle(el, "border-width", stroke.borderInfo.borderWidth + stroke.borderInfo.borderUnits);
239 }
240 if(stroke.borderInfo.borderStyle) {
241 this.application.ninja.stylesController.setElementStyle(el, "border-style", stroke.borderInfo.borderStyle);
242 }
243 }
244 if(stroke.colorInfo) {
245 this.setColor(el, stroke.colorInfo, false);
246 }
225 } 247 }
226 }, 248 },
227 249
250 getFill: {
251 value: function(el, fill) {
252 var fillInfo = {},
253 color;
254 if(fill.colorInfo) {
255 fillInfo.colorInfo = {};
256 color = this.getColor(el, true);
257 if(color && color.color) {
258 fillInfo.colorInfo.mode = color.mode;