aboutsummaryrefslogtreecommitdiff
path: root/js/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers')
-rwxr-xr-xjs/controllers/color-controller.js5
-rwxr-xr-xjs/controllers/document-controller.js14
-rwxr-xr-xjs/controllers/elements/component-controller.js13
-rwxr-xr-xjs/controllers/elements/shapes-controller.js45
-rwxr-xr-xjs/controllers/selection-controller.js12
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);
500