diff options
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/block-controller.js | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/canvas-controller.js | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/component-controller.js | 44 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/controller-factory.js | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/element-controller.js | 16 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/image-controller.js | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/shapes-controller.js | 42 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/stage-controller.js | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | js/controllers/elements/video-controller.js | 0 |
9 files changed, 100 insertions, 12 deletions
diff --git a/js/controllers/elements/block-controller.js b/js/controllers/elements/block-controller.js index 395a1a4d..395a1a4d 100644..100755 --- a/js/controllers/elements/block-controller.js +++ b/js/controllers/elements/block-controller.js | |||
diff --git a/js/controllers/elements/canvas-controller.js b/js/controllers/elements/canvas-controller.js index b5df3911..b5df3911 100644..100755 --- a/js/controllers/elements/canvas-controller.js +++ b/js/controllers/elements/canvas-controller.js | |||
diff --git a/js/controllers/elements/component-controller.js b/js/controllers/elements/component-controller.js index 458e6b46..83450d0f 100644..100755 --- a/js/controllers/elements/component-controller.js +++ b/js/controllers/elements/component-controller.js | |||
@@ -9,4 +9,48 @@ var Montage = require("montage/core/core").Montage, | |||
9 | 9 | ||
10 | exports.ComponentController = Montage.create(ElementController, { | 10 | exports.ComponentController = Montage.create(ElementController, { |
11 | 11 | ||
12 | getProperty: { | ||
13 | value: function(el, prop) { | ||
14 | switch(prop) { | ||
15 | case "id": | ||
16 | case "class": | ||
17 | case "left": | ||
18 | case "top": | ||
19 | case "width": | ||
20 | case "height": | ||
21 | if(el.nodeName === "IMG" && (prop === "width" || prop === "height")) { | ||
22 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | ||
23 | } else { | ||
24 | return ElementController.getProperty(el, prop, true); | ||
25 | } | ||
26 | default: | ||
27 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | ||
28 | } | ||
29 | } | ||
30 | }, | ||
31 | |||
32 | setProperty: { | ||
33 | value: function(el, p, value) { | ||
34 | switch(p) { | ||
35 | case "id": | ||
36 | case "class": | ||
37 | case "left": | ||
38 | case "top": | ||
39 | case "width": | ||
40 | case "height": | ||
41 | if(el.nodeName === "IMG" && (p === "width" || p === "height")) { | ||
42 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | ||
43 | } else { | ||
44 | ElementController.setProperty(el, p, value); | ||
45 | } | ||
46 | break; | ||
47 | default: | ||
48 | if(p === "min" || p === "max") value = parseFloat(value); | ||
49 | |||
50 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | ||
51 | break; | ||
52 | |||
53 | } | ||
54 | } | ||
55 | } | ||
12 | }); | 56 | }); |
diff --git a/js/controllers/elements/controller-factory.js b/js/controllers/elements/controller-factory.js index a772eb16..a772eb16 100644..100755 --- a/js/controllers/elements/controller-factory.js +++ b/js/controllers/elements/controller-factory.js | |||
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js index 65d26bdd..46e82ace 100644..100755 --- a/js/controllers/elements/element-controller.js +++ b/js/controllers/elements/element-controller.js | |||
@@ -12,6 +12,9 @@ var ElementController = exports.ElementController = Montage.create(NJComponent, | |||
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 - | ||
16 | // TODO make sure the CSS is correct before nesting elements | ||
17 | // this.application.ninja.currentSelectedContainer.appendChild(el); | ||
15 | this.application.ninja.stylesController.setElementStyles(el, styles); | 18 | this.application.ninja.stylesController.setElementStyles(el, styles); |
16 | } | 19 | } |
17 | }, | 20 | }, |
@@ -115,6 +118,7 @@ var ElementController = exports.ElementController = Montage.create(NJComponent, | |||
115 | } | 118 | } |
116 | else | 119 | else |
117 | { | 120 | { |
121 | // TODO - Need to update border style and width also | ||
118 | el.elementModel.stroke = colorObj; | 122 | el.elementModel.stroke = colorObj; |
119 | } | 123 | } |
120 | 124 | ||
@@ -159,10 +163,22 @@ var ElementController = exports.ElementController = Montage.create(NJComponent, | |||
159 | case 'gradient': | 163 | case 'gradient': |
160 | this.setProperty(el, "border-image", color.color.css); | 164 | this.setProperty(el, "border-image", color.color.css); |
161 | this.setProperty(el, "border-color", "none"); | 165 | this.setProperty(el, "border-color", "none"); |
166 | if(color.borderInfo) | ||
167 | { | ||
168 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + | ||
169 | color.borderInfo.borderUnits); | ||
170 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
171 | } | ||
162 | break; | 172 | break; |
163 | default: | 173 | default: |
164 | this.setProperty(el, "border-image", "none"); | 174 | this.setProperty(el, "border-image", "none"); |
165 | this.setProperty(el, "border-color", color.color.css); | 175 | this.setProperty(el, "border-color", color.color.css); |
176 | if(color.borderInfo) | ||
177 | { | ||
178 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + | ||
179 | color.borderInfo.borderUnits); | ||
180 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
181 | } | ||
166 | } | 182 | } |
167 | } | 183 | } |
168 | el.elementModel.stroke = color; | 184 | el.elementModel.stroke = color; |
diff --git a/js/controllers/elements/image-controller.js b/js/controllers/elements/image-controller.js index 5abce13e..25ca8da6 100644..100755 --- a/js/controllers/elements/image-controller.js +++ b/js/controllers/elements/image-controller.js | |||
@@ -19,7 +19,7 @@ exports.ImageController = Montage.create(ElementController, { | |||
19 | return el.getAttribute(prop); | 19 | return el.getAttribute(prop); |
20 | break; | 20 | break; |
21 | default: | 21 | default: |
22 | return ElementController.getProperty(el, prop); | 22 | return ElementController.getProperty(el, prop, true); |
23 | } | 23 | } |
24 | } | 24 | } |
25 | }, | 25 | }, |
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index b9c033aa..e0bff70c 100644..100755 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -59,6 +59,7 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
59 | break; | 59 | break; |
60 | case "useWebGl": | 60 | case "useWebGl": |
61 | var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); | 61 | var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); |
62 | canvas.setAttribute("data-RDGE-id", njModule.NJUtils.generateRandom()); | ||
62 | canvas.width = el.width; | 63 | canvas.width = el.width; |
63 | canvas.height = el.height; | 64 | canvas.height = el.height; |
64 | this.application.ninja.elementMediator.replaceElement(el, canvas); | 65 | this.application.ninja.elementMediator.replaceElement(el, canvas); |
@@ -249,6 +250,10 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
249 | setColor: { | 250 | setColor: { |
250 | value: function(el, color, isFill) { | 251 | value: function(el, color, isFill) { |
251 | var webGl = color.webGlColor || color.color.webGlColor; | 252 | var webGl = color.webGlColor || color.color.webGlColor; |
253 | if(!webGl) | ||
254 | { | ||
255 | webGl = this.application.ninja.colorController.colorModel.colorToWebGl(color.color); | ||
256 | } | ||
252 | if(isFill) | 257 | if(isFill) |
253 | { | 258 | { |
254 | el.elementModel.shapeModel.GLGeomObj.setFillColor(webGl); | 259 | el.elementModel.shapeModel.GLGeomObj.setFillColor(webGl); |
@@ -260,6 +265,14 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
260 | el.elementModel.shapeModel.GLGeomObj.setStrokeColor(webGl); | 265 | el.elementModel.shapeModel.GLGeomObj.setStrokeColor(webGl); |
261 | this.setShapeProperty(el, "stroke", webGl); | 266 | this.setShapeProperty(el, "stroke", webGl); |
262 | this.setShapeProperty(el, "border", color); | 267 | this.setShapeProperty(el, "border", color); |
268 | if(color.strokeInfo) | ||
269 | { | ||
270 | var strokeWidth = this.GetValueInPixels(color.strokeInfo.strokeSize, | ||
271 | color.strokeInfo.strokeUnits); | ||
272 | el.elementModel.shapeModel.GLGeomObj.setStrokeWidth(strokeWidth); | ||
273 | this.setShapeProperty(el, "strokeSize", color.strokeInfo.strokeSize + " " | ||
274 | + color.strokeInfo.strokeUnits); | ||
275 | } | ||
263 | } | 276 | } |
264 | el.elementModel.shapeModel.GLWorld.render(); | 277 | el.elementModel.shapeModel.GLWorld.render(); |
265 | } | 278 | } |
@@ -346,19 +359,24 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
346 | { | 359 | { |
347 | world = new GLWorld(el, true); | 360 | world = new GLWorld(el, true); |
348 | el.elementModel.shapeModel.GLWorld = world; | 361 | el.elementModel.shapeModel.GLWorld = world; |
349 | el.elementModel.shapeModel.GLGeomObj.setWorld(world); | ||
350 | el.elementModel.shapeModel.useWebGl = true; | 362 | el.elementModel.shapeModel.useWebGl = true; |
363 | world.import(worldData); | ||
364 | el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); | ||
365 | |||
351 | sm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); | 366 | sm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); |
352 | fm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); | 367 | if(sm) |
353 | if(sm && fm) | ||
354 | { | 368 | { |
355 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); | 369 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); |
356 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); | ||
357 | el.elementModel.shapeModel.strokeMaterial = sm; | 370 | el.elementModel.shapeModel.strokeMaterial = sm; |
371 | } | ||
372 | fm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); | ||
373 | // TODO - Use consts after GL code is converted to object literal notation | ||
374 | // if( fm && (el.elementModel.shapeModel.GLGeomObj.geomType() !== GLGeomObj.GEOM_TYPE_LINE) ) | ||
375 | if( fm && (el.elementModel.shapeModel.GLGeomObj.geomType() !== 3) ) | ||
376 | { | ||
377 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); | ||
358 | el.elementModel.shapeModel.fillMaterial = fm; | 378 | el.elementModel.shapeModel.fillMaterial = fm; |
359 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |