diff options
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/color-controller.js | 1 | ||||
-rwxr-xr-x | js/controllers/document-controller.js | 14 | ||||
-rwxr-xr-x | js/controllers/elements/component-controller.js | 13 | ||||
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 47 | ||||
-rw-r--r-- | js/controllers/presets-controller.js | 108 | ||||
-rwxr-xr-x | js/controllers/selection-controller.js | 12 |
6 files changed, 181 insertions, 14 deletions
diff --git a/js/controllers/color-controller.js b/js/controllers/color-controller.js index 53573baf..c6d664cf 100755 --- a/js/controllers/color-controller.js +++ b/js/controllers/color-controller.js | |||
@@ -198,7 +198,6 @@ exports.ColorController = Montage.create(Component, { | |||
198 | handleChange: { | 198 | handleChange: { |
199 | enumerable: true, | 199 | enumerable: true, |
200 | value: function (e) { | 200 | value: function (e) { |
201 | |||
202 | // | 201 | // |
203 | var actionEvent, color, input = e._event.input, panelMode, mode = e._event.mode; | 202 | var actionEvent, color, input = e._event.input, panelMode, mode = e._event.mode; |
204 | if (this.colorView) { | 203 | if (this.colorView) { |
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index 4363e440..a308f191 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -73,22 +73,29 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
73 | 73 | ||
74 | this.eventManager.addEventListener("styleSheetDirty", this, false); | 74 | this.eventManager.addEventListener("styleSheetDirty", this, false); |
75 | 75 | ||
76 | this.eventManager.addEventListener("addComponentFirstDraw", this, false); | ||
76 | } | 77 | } |
77 | }, | 78 | }, |
78 | 79 | ||
79 | 80 | handleAddComponentFirstDraw: { | |
81 | value: function (e) { | ||
82 | //TODO: Add logic to reparse the document for dynamically added styles | ||
83 | console.log(e); | ||
84 | } | ||
85 | }, | ||
80 | 86 | ||
81 | 87 | ||
82 | 88 | ||
83 | 89 | ||
84 | 90 | ||
85 | //////////////////////////////////////////////////////////////////// | 91 | //////////////////////////////////////////////////////////////////// |
86 | // | 92 | // |
87 | handleWebRequest: { | 93 | handleWebRequest: { |
88 | value: function (request) { | 94 | value: function (request) { |
89 | //TODO: Check if frameId is proper | 95 | //TODO: Check if frameId is proper |
90 | if (this._hackRootFlag && request.parentFrameId !== -1) { | 96 | if (this._hackRootFlag && request.parentFrameId !== -1) { |
91 | //TODO: Optimize creating string | 97 | //TODO: Optimize creating string |
98 | //console.log(request); | ||
92 | //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1], request.url); | 99 | //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1], request.url); |
93 | //return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]}; | 100 | //return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]}; |
94 | return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split(chrome.extension.getURL('js/document/templates/montage-html/'))[1]}; | 101 | return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split(chrome.extension.getURL('js/document/templates/montage-html/'))[1]}; |
@@ -112,6 +119,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
112 | }, | 119 | }, |
113 | //////////////////////////////////////////////////////////////////// | 120 | //////////////////////////////////////////////////////////////////// |
114 | 121 | ||
122 | |||
115 | 123 | ||
116 | 124 | ||
117 | 125 | ||
diff --git a/js/controllers/elements/component-controller.js b/js/controllers/elements/component-controller.js index 83450d0f..260ee8a0 100755 --- a/js/controllers/elements/component-controller.js +++ b/js/controllers/elements/component-controller.js | |||
@@ -11,6 +11,8 @@ 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.getComponentFromElement(el); | ||
15 | |||
14 | switch(prop) { | 16 | switch(prop) { |
15 | case "id": | 17 | case "id": |
16 | case "class": | 18 | case "class": |
@@ -19,18 +21,20 @@ exports.ComponentController = Montage.create(ElementController, { | |||
19 | case "width": | 21 | case "width": |
20 | case "height": | 22 | case "height": |
21 | if(el.nodeName === "IMG" && (prop === "width" || prop === "height")) { | 23 | if(el.nodeName === "IMG" && (prop === "width" || prop === "height")) { |
22 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | 24 | return component[prop]; |
23 | } else { | 25 | } else { |
24 | return ElementController.getProperty(el, prop, true); | 26 | return ElementController.getProperty(el, prop, true); |
25 | } | 27 | } |
26 | default: | 28 | default: |
27 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | 29 | return component[prop]; |
28 | } | 30 | } |
29 | } | 31 | } |
30 | }, | 32 | }, |
31 | 33 | ||
32 | setProperty: { | 34 | setProperty: { |
33 | value: function(el, p, value) { | 35 | value: function(el, p, value) { |
36 | var component = el.controller || this.application.ninja.currentDocument.getComponentFromElement(el); | ||
37 | |||
34 | switch(p) { | 38 | switch(p) { |
35 | case "id": | 39 | case "id": |
36 | case "class": | 40 | case "class": |
@@ -39,15 +43,14 @@ exports.ComponentController = Montage.create(ElementController, { | |||
39 | case "width": | 43 | case "width": |
40 | case "height": | 44 | case "height": |
41 | if(el.nodeName === "IMG" && (p === "width" || p === "height")) { | 45 | if(el.nodeName === "IMG" && (p === "width" || p === "height")) { |
42 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | 46 | component[p] = value; |
43 | } else { | 47 | } else { |
44 | ElementController.setProperty(el, p, value); | 48 | ElementController.setProperty(el, p, value); |
45 | } | 49 | } |
46 | break; | 50 | break; |
47 | default: | 51 | default: |
48 | if(p === "min" || p === "max") value = parseFloat(value); | 52 | if(p === "min" || p === "max") value = parseFloat(value); |
49 | 53 | component[p] = value; | |
50 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | ||
51 | break; | 54 | break; |
52 | 55 | ||
53 | } | 56 | } |
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index b3ac9ddb..f0e9458b 100755 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -105,6 +105,20 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
105 | case "editFillMaterial": | 105 | case "editFillMaterial": |
106 | NJevent("showMaterialPopup",{materialId : el.elementModel.shapeModel.fillMaterial.getName()}); | 106 | NJevent("showMaterialPopup",{materialId : el.elementModel.shapeModel.fillMaterial.getName()}); |
107 | break; | 107 | break; |
108 | case "animate": | ||
109 | if(value) | ||
110 | { | ||
111 | el.elementModel.shapeModel.animate = true; | ||
112 | el.elementModel.shapeModel.GLWorld._previewAnimation = true; | ||
113 | el.elementModel.shapeModel.GLWorld.restartRenderLoop(); | ||
114 | } | ||
115 | else | ||
116 | { | ||
117 | el.elementModel.shapeModel.animate = false; | ||
118 | el.elementModel.shapeModel.GLWorld._previewAnimation = false; | ||
119 | el.elementModel.shapeModel.GLWorld._canvas.task.stop(); | ||
120 | } | ||
121 | break; | ||
108 | default: | 122 | default: |
109 | CanvasController.setProperty(el, p, value); | 123 | CanvasController.setProperty(el, p, value); |
110 | } | 124 | } |
@@ -123,6 +137,7 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
123 | case "border": | 137 | case "border": |
124 | case "background": | 138 | case "background": |
125 | case "useWebGl": | 139 | case "useWebGl": |
140 | case "animate": | ||
126 | return this.getShapeProperty(el, p); | 141 | return this.getShapeProperty(el, p); |
127 | case "strokeMaterial": | 142 | case "strokeMaterial": |
128 | case "fillMaterial": | 143 | case "fillMaterial": |
@@ -259,6 +274,10 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
259 | color = this.getShapeProperty(el, "stroke"); | 274 | color = this.getShapeProperty(el, "stroke"); |
260 | } | 275 | } |
261 | 276 | ||
277 | if(!css) { | ||
278 | return null; | ||
279 | } | ||
280 | |||
262 | css = this.application.ninja.colorController.colorModel.webGlToCss(color); | 281 | css = this.application.ninja.colorController.colorModel.webGlToCss(color); |
263 | return this.application.ninja.colorController.getColorObjFromCss(css); | 282 | return this.application.ninja.colorController.getColorObjFromCss(css); |
264 | } | 283 | } |
@@ -489,13 +508,14 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
489 | var sm, | 508 | var sm, |
490 | fm, | 509 | fm, |
491 | world, | 510 | world, |
492 | worldData = el.elementModel.shapeModel.GLWorld.export(); | 511 | worldData = el.elementModel.shapeModel.GLWorld.exportJSON(); |
493 | if(worldData) | 512 | if(worldData) |
494 | { | 513 | { |
514 | worldData = this.flip3DSense (worldData ); | ||
495 | world = new World(el, true); | 515 | world = new World(el, true); |
496 | el.elementModel.shapeModel.GLWorld = world; | 516 | el.elementModel.shapeModel.GLWorld = world; |
497 | el.elementModel.shapeModel.useWebGl = true; | 517 | el.elementModel.shapeModel.useWebGl = true; |
498 | world.import(worldData); | 518 | world.importJSON(worldData); |
499 | el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); | 519 | el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); |
500 | 520 | ||
501 | sm = Object.create(MaterialsModel.getMaterial("FlatMaterial")); | 521 | sm = Object.create(MaterialsModel.getMaterial("FlatMaterial")); |
@@ -525,13 +545,14 @@ exports.ShapesController = Montage.create(CanvasController, { | |||