diff options
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-x | js/controllers/elements/body-controller.js | 9 | ||||
-rwxr-xr-x | js/controllers/elements/component-controller.js | 4 | ||||
-rwxr-xr-x | js/controllers/elements/controller-factory.js | 4 | ||||
-rwxr-xr-x | js/controllers/elements/element-controller.js | 136 | ||||
-rwxr-xr-x | js/controllers/elements/element-controller.js.orig | 393 | ||||
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 107 |
6 files changed, 588 insertions, 65 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/component-controller.js b/js/controllers/elements/component-controller.js index 5b0aaeac..dd0766df 100755 --- a/js/controllers/elements/component-controller.js +++ b/js/controllers/elements/component-controller.js | |||
@@ -11,7 +11,7 @@ exports.ComponentController = Montage.create(ElementController, { | |||
11 | 11 | ||
12 | getProperty: { | 12 | getProperty: { |
13 | value: function(el, prop) { | 13 | value: function(el, prop) { |
14 | var component = el.controller || this.application.ninja.currentDocument.model.getComponentFromElement(el); | 14 | var component = el.controller; |
15 | 15 | ||
16 | switch(prop) { | 16 | switch(prop) { |
17 | case "id": | 17 | case "id": |
@@ -34,7 +34,7 @@ exports.ComponentController = Montage.create(ElementController, { | |||
34 | 34 | ||
35 | setProperty: { | 35 | setProperty: { |
36 | value: function(el, p, value) { | 36 | value: function(el, p, value) { |
37 | var component = el.controller || this.application.ninja.currentDocument.model.getComponentFromElement(el); | 37 | var component = el.controller; |
38 | 38 | ||
39 | switch(p) { | 39 | switch(p) { |
40 | case "id": | 40 | case "id": |
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 | ||
9 | var BodyController = require("js/controllers/elements/body-controller").BodyController, | 9 | var 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 da8afbaa..3d71c52d 100755 --- a/js/controllers/elements/element-controller.js +++ b/js/controllers/elements/element-controller.js | |||
@@ -5,12 +5,16 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot | |||
5 | </copyright> */ | 5 | </copyright> */ |
6 | 6 | ||
7 | var Montage = require("montage/core/core").Montage, | 7 | var 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 | ||
10 | exports.ElementController = Montage.create(Component, { | 11 | exports.ElementController = Montage.create(Component, { |
11 | 12 | ||
12 | addElement: { | 13 | addElement: { |
13 | value: function(el, styles) { | 14 | value: function(el, styles) { |
15 | |||
16 | if (el.getAttribute) el.setAttribute('data-ninja-node', 'true'); | ||
17 | |||
14 | // Updated to use new methods in TimelinePanel. JR. | 18 | // Updated to use new methods in TimelinePanel. JR. |
15 | var insertionIndex = this.application.ninja.timeline.getInsertionIndex(); | 19 | var insertionIndex = this.application.ninja.timeline.getInsertionIndex(); |
16 | if (insertionIndex === false) { | 20 | if (insertionIndex === false) { |
@@ -53,7 +57,7 @@ exports.ElementController = Montage.create(Component, { | |||
53 | // Remove the element from the DOM and clear the GLWord. | 57 | // Remove the element from the DOM and clear the GLWord. |
54 | removeElement: { | 58 | removeElement: { |
55 | value: function(el) { | 59 | value: function(el) { |
56 | if(el.elementModel && el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) { | 60 | if(el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) { |
57 | el.elementModel.shapeModel.GLWorld.clearTree(); | 61 | el.elementModel.shapeModel.GLWorld.clearTree(); |
58 | } | 62 | } |
59 | el.parentNode.removeChild(el); | 63 | el.parentNode.removeChild(el); |
@@ -179,32 +183,12 @@ exports.ElementController = Montage.create(Component, { | |||
179 | el.elementModel.stroke = null; | 183 | el.elementModel.stroke = null; |
180 | return; | 184 | return; |
181 | case 'gradient': | 185 | case 'gradient': |
182 | this.setProperty(el, "border-image", color.color.css); | 186 | this.setGradientBorder(el, color.color.gradientMode, color.color.css); |
183 | this.setProperty(el, "border-color", "none"); | ||
184 | if(color.borderInfo) { | ||
185 | if(color.borderInfo.borderWidth) { | ||
186 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); | ||
187 | } | ||
188 | if(color.borderInfo.borderStyle) { | ||
189 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
190 | } | ||
191 | } | ||
192 | break; | 187 | break; |
193 | default: | 188 | default: |
194 | if(borderSide){ | 189 | this.setProperty(el, "border-image", "none"); |
195 | this.setProperty(el,"border-"+borderSide+"-color",color.color.css); | 190 | this.setProperty(el, "border-image-slice", ""); |
196 | }else{ | 191 | this.setProperty(el, "border-color", color.color.css); |
197 | this.setProperty(el, "border-image", "none"); | ||
198 | this.setProperty(el, "border-color", color.color.css); | ||
199 | } | ||
200 | if(color.borderInfo) { | ||
201 | if(color.borderInfo.borderWidth) { | ||
202 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); | ||
203 | } | ||
204 | if(color.borderInfo.borderStyle) { | ||
205 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
206 | } | ||
207 | } | ||
208 | } | 192 | } |
209 | } | 193 | } |
210 | el.elementModel.stroke = color; | 194 | el.elementModel.stroke = color; |
@@ -212,26 +196,108 @@ exports.ElementController = Montage.create(Component, { | |||
212 | } | 196 | } |
213 | }, | 197 | }, |
214 | 198 | ||
199 | setGradientBorder: { | ||
200 | value: function(el, gradientMode, css) { | ||
201 | if(gradientMode === "radial") { | ||
202 | this.setProperty(el, "border-image", css.replace("ellipse", "circle")); | ||
203 | } else { | ||
204 | this.setProperty(el, "border-image", css); | ||
205 | } | ||
206 | this.setProperty(el, "border-color", "none"); | ||
207 | // gradient slice = borderWidth/totalWidth | ||
208 | var b = parseInt(this.getProperty(el, "border-left-width", true)), | ||
209 | w = parseInt(this.getProperty(el, "width", true)), | ||
210 | h = parseInt(this.getProperty(el, "height", true)); | ||
211 | if(h > w) { | ||
212 | w = h; | ||
213 | } | ||
214 | this.setProperty(el, "border-image-slice", Math.floor(b/(w+b+b) * 100) + "%"); | ||
215 | } | ||
216 | }, | ||
217 | |||
215 | getStroke: { | 218 | getStroke: { |
216 | value: function(el) { | 219 | value: function(el, stroke) { |
217 | // TODO - Need to figure out which border side user wants | 220 | var strokeInfo = {}, |
218 | return this.application.ninja.stylesController.getElementStyle(el, "border"); | 221 |