diff options
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/color-controller.js | 5 | ||||
-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 | 45 | ||||
-rwxr-xr-x | js/controllers/selection-controller.js | 12 |
5 files changed, 72 insertions, 17 deletions
diff --git a/js/controllers/color-controller.js b/js/controllers/color-controller.js index 53573baf..8e000b19 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) { |
@@ -228,14 +227,14 @@ exports.ColorController = Montage.create(Component, { | |||
228 | // | 227 | // |
229 | this.fill = color; | 228 | this.fill = color; |
230 | // | 229 | // |
231 | if(e._event.wasSetByCode) return; | 230 | if(e._event.wasSetByCode && mode !== 'nocolor') return; |
232 | // | 231 | // |
233 | this.setColor(mode, color, true); | 232 | this.setColor(mode, color, true); |
234 | } else if (input === 'stroke') { | 233 | } else if (input === 'stroke') { |
235 | // | 234 | // |
236 | this.stroke = color; | 235 | this.stroke = color; |
237 | // | 236 | // |
238 | if(e._event.wasSetByCode) return; | 237 | if(e._event.wasSetByCode && mode !== 'nocolor') return; |
239 | 238 | ||
240 | this.setColor(mode, color, false); | 239 | this.setColor(mode, color, false); |
241 | } | 240 | } |
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index 7d982a62..d5556fa8 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -64,22 +64,29 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
64 | 64 | ||
65 | this.eventManager.addEventListener("styleSheetDirty", this, false); | 65 | this.eventManager.addEventListener("styleSheetDirty", this, false); |
66 | 66 | ||
67 | this.eventManager.addEventListener("addComponentFirstDraw", this, false); | ||
67 | } | 68 | } |
68 | }, | 69 | }, |
69 | 70 | ||
70 | 71 | handleAddComponentFirstDraw: { | |
72 | value: function (e) { | ||
73 | //TODO: Add logic to reparse the document for dynamically added styles | ||
74 | console.log(e); | ||
75 | } | ||
76 | }, | ||
71 | 77 | ||
72 | 78 | ||
73 | 79 | ||
74 | 80 | ||
75 | 81 | ||
76 | //////////////////////////////////////////////////////////////////// | 82 | //////////////////////////////////////////////////////////////////// |
77 | // | 83 | // |
78 | handleWebRequest: { | 84 | handleWebRequest: { |
79 | value: function (request) { | 85 | value: function (request) { |
80 | //TODO: Check if frameId is proper | 86 | //TODO: Check if frameId is proper |
81 | if (this._hackRootFlag && request.parentFrameId !== -1) { | 87 | if (this._hackRootFlag && request.parentFrameId !== -1) { |
82 | //TODO: Optimize creating string | 88 | //TODO: Optimize creating string |
89 | //console.log(request); | ||
83 | //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1], request.url); | 90 | //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1], request.url); |
84 | //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]}; | 91 | //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]}; |
85 | 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]}; | 92 | 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]}; |
@@ -103,6 +110,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
103 | }, | 110 | }, |
104 | //////////////////////////////////////////////////////////////////// | 111 | //////////////////////////////////////////////////////////////////// |
105 | 112 | ||
113 | |||
106 | 114 | ||
107 | 115 | ||
108 | 116 | ||
diff --git a/js/controllers/elements/component-controller.js b/js/controllers/elements/component-controller.js index fbe9a995..d902e4a1 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": |
@@ -20,18 +22,20 @@ exports.ComponentController = Montage.create(ElementController, { | |||
20 | case "width": | 22 | case "width": |
21 | case "height": | 23 | case "height": |
22 | if(el.nodeName === "IMG" && (prop === "width" || prop === "height")) { | 24 | if(el.nodeName === "IMG" && (prop === "width" || prop === "height")) { |
23 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | 25 | return component[prop]; |
24 | } else { | 26 | } else { |
25 | return ElementController.getProperty(el, prop, true); | 27 | return ElementController.getProperty(el, prop, true); |
26 | } | 28 | } |
27 | default: | 29 | default: |
28 | return this.application.ninja.currentDocument.getComponentFromElement(el)[prop]; | 30 | return component[prop]; |
29 | } | 31 | } |
30 | } | 32 | } |
31 | }, | 33 | }, |
32 | 34 | ||
33 | setProperty: { | 35 | setProperty: { |
34 | value: function(el, p, value) { | 36 | value: function(el, p, value) { |
37 | var component = el.controller || this.application.ninja.currentDocument.getComponentFromElement(el); | ||
38 | |||
35 | switch(p) { | 39 | switch(p) { |
36 | case "id": | 40 | case "id": |
37 | case "class": | 41 | case "class": |
@@ -41,15 +45,14 @@ exports.ComponentController = Montage.create(ElementController, { | |||
41 | case "width": | 45 | case "width": |
42 | case "height": | 46 | case "height": |
43 | if(el.nodeName === "IMG" && (p === "width" || p === "height")) { | 47 | if(el.nodeName === "IMG" && (p === "width" || p === "height")) { |
44 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | 48 | component[p] = value; |
45 | } else { | 49 | } else { |
46 | ElementController.setProperty(el, p, value); | 50 | ElementController.setProperty(el, p, value); |
47 | } | 51 | } |
48 | break; | 52 | break; |
49 | default: | 53 | default: |
50 | if(p === "min" || p === "max") value = parseFloat(value); | 54 | if(p === "min" || p === "max") value = parseFloat(value); |
51 | 55 | component[p] = value; | |
52 | this.application.ninja.currentDocument.getComponentFromElement(el)[p] = value; | ||
53 | break; | 56 | break; |
54 | 57 | ||
55 | } | 58 | } |
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index 689bc421..3f8f27d3 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": |
@@ -489,14 +504,15 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
489 | var sm, | 504 | var sm, |
490 | fm, | 505 | fm, |
491 | world, | 506 | world, |
492 | worldData = el.elementModel.shapeModel.GLWorld.export(); | 507 | worldData = el.elementModel.shapeModel.GLWorld.exportJSON(); |
493 | if(worldData) | 508 | if(worldData) |
494 | { | 509 | { |
510 | worldData = this.flip3DSense (worldData ); | ||
495 | world = new World(el, true); | 511 | world = new World(el, true); |
496 | el.elementModel.shapeModel.GLWorld = world; | 512 | el.elementModel.shapeModel.GLWorld = world; |
497 | el.elementModel.shapeModel.useWebGl = true; | 513 | el.elementModel.shapeModel.useWebGl = true; |
498 | el.elementModel.controller.setProperty(el, "-webkit-transform-style", "preserve-3d"); | 514 | el.elementModel.controller.setProperty(el, "-webkit-transform-style", "preserve-3d"); |
499 | world.import(worldData, true); | 515 | world.importJSON(worldData); |