aboutsummaryrefslogtreecommitdiff
path: root/js/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers')
-rwxr-xr-xjs/controllers/document-controller.js26
-rwxr-xr-xjs/controllers/elements/body-controller.js4
-rwxr-xr-xjs/controllers/elements/component-controller.js4
-rwxr-xr-xjs/controllers/elements/element-controller.js102
-rwxr-xr-xjs/controllers/elements/shapes-controller.js103
5 files changed, 175 insertions, 64 deletions
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js
index a90375af..a3ebac24 100755
--- a/js/controllers/document-controller.js
+++ b/js/controllers/document-controller.js
@@ -174,9 +174,9 @@ exports.DocumentController = Montage.create(Component, {
174 handleExecuteSaveAll: { 174 handleExecuteSaveAll: {
175 value: function(event) { 175 value: function(event) {
176 // 176 //
177 if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){ 177 if((typeof this.currentDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){
178 // 178 //
179 this.activeDocument.model.saveAll(); 179 this.currentDocument.model.saveAll();
180 } else { 180 } else {
181 //TODO: Add error handling 181 //TODO: Add error handling
182 } 182 }
@@ -186,9 +186,9 @@ exports.DocumentController = Montage.create(Component, {
186 handleExecuteSaveAs: { 186 handleExecuteSaveAs: {
187 value: function(event) { 187 value: function(event) {
188 var saveAsSettings = event._event.settings || {}; 188 var saveAsSettings = event._event.settings || {};
189 if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){ 189 if((typeof this.currentDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){
190 saveAsSettings.fileName = this.activeDocument.model.file.name; 190 saveAsSettings.fileName = this.currentDocument.model.file.name;
191 saveAsSettings.folderUri = this.activeDocument.model.file.uri.substring(0, this.activeDocument.model.file.uri.lastIndexOf("/")); 191 saveAsSettings.folderUri = this.currentDocument.model.file.uri.substring(0, this.currentDocument.model.file.uri.lastIndexOf("/"));
192 saveAsSettings.callback = this.saveAsCallback.bind(this); 192 saveAsSettings.callback = this.saveAsCallback.bind(this);
193 this.application.ninja.newFileController.showSaveAsDialog(saveAsSettings); 193 this.application.ninja.newFileController.showSaveAsDialog(saveAsSettings);
194 } 194 }
@@ -204,9 +204,9 @@ exports.DocumentController = Montage.create(Component, {
204 //TODO: Is this used, should be cleaned up 204 //TODO: Is this used, should be cleaned up
205 handleExecuteFileCloseAll:{ 205 handleExecuteFileCloseAll:{
206 value: function(event) { 206 value: function(event) {
207 if(this.activeDocument && this.application.ninja.coreIoApi.cloudAvailable()){ 207 if(this.currentDocument && this.application.ninja.coreIoApi.cloudAvailable()){
208 while(this._documents.length > 0){ 208 while(this.currentDocument.length > 0){
209 this.closeDocument(this._documents[this._documents.length -1].uuid); 209 this.closeDocument(this.currentDocument[this.currentDocument.length -1].uuid);
210 } 210 }
211 } 211 }
212 } 212 }
@@ -291,19 +291,19 @@ exports.DocumentController = Montage.create(Component, {
291 value:function(saveAsDetails){ 291 value:function(saveAsDetails){
292 var fileUri = null, filename = saveAsDetails.filename, destination = saveAsDetails.destination; 292 var fileUri = null, filename = saveAsDetails.filename, destination = saveAsDetails.destination;
293 //update document metadata 293 //update document metadata
294 this.activeDocument.name = ""+filename; 294 this.currentDocument.model.file.name = ""+filename;
295 //prepare new file uri 295 //prepare new file uri
296 if(destination && (destination.charAt(destination.length -1) !== "/")){ 296 if(destination && (destination.charAt(destination.length -1) !== "/")){
297 destination = destination + "/"; 297 destination = destination + "/";
298 } 298 }
299 fileUri = destination+filename; 299 fileUri = destination+filename;
300 300
301 this.activeDocument.uri = fileUri; 301 this.currentDocument.model.file.uri = fileUri;
302 //save a new file 302 //save a new file
303 //use the ioMediator.fileSaveAll when implemented 303 //use the ioMediator.fileSaveAll when implemented
304 this.activeDocument.model.file.name = filename; 304 this.currentDocument.model.file.name = filename;
305 this.activeDocument.model.file.uri = fileUri; 305 this.currentDocument.model.file.uri = fileUri;
306 this.activeDocument.model.save(); 306 this.currentDocument.model.save();
307 } 307 }
308 }, 308 },
309 309
diff --git a/js/controllers/elements/body-controller.js b/js/controllers/elements/body-controller.js
index 7a3a66f5..9c427c62 100755
--- a/js/controllers/elements/body-controller.js
+++ b/js/controllers/elements/body-controller.js
@@ -71,7 +71,7 @@ exports.BodyController = Montage.create(ElementController, {
71 71
72 getPerspectiveDist: { 72 getPerspectiveDist: {
73 value: function(el) { 73 value: function(el) {
74 if(el.elementModel && el.elementModel.props3D && el.elementModel.props3D.perspectiveDist) { 74 if(el.elementModel.props3D && el.elementModel.props3D.perspectiveDist) {
75 return el.elementModel.props3D.perspectiveDist; 75 return el.elementModel.props3D.perspectiveDist;
76 } else { 76 } else {
77 var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, true); 77 var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, true);
@@ -83,7 +83,7 @@ exports.BodyController = Montage.create(ElementController, {
83 83
84 getMatrix: { 84 getMatrix: {
85 value: function(el) { 85 value: function(el) {
86 if(el.elementModel && el.elementModel.props3D && el.elementModel.props3D.matrix3d) 86 if(el.elementModel.props3D && el.elementModel.props3D.matrix3d)
87 { 87 {
88 return el.elementModel.props3D.matrix3d.slice(0); 88 return el.elementModel.props3D.matrix3d.slice(0);
89 } 89 }
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/element-controller.js b/js/controllers/elements/element-controller.js
index 01e132d7..4a02e9a3 100755
--- a/js/controllers/elements/element-controller.js
+++ b/js/controllers/elements/element-controller.js
@@ -5,7 +5,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
5</copyright> */ 5</copyright> */
6 6
7var Montage = require("montage/core/core").Montage, 7var 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
10exports.ElementController = Montage.create(Component, { 11exports.ElementController = Montage.create(Component, {
11 12
@@ -36,7 +37,7 @@ exports.ElementController = Montage.create(Component, {
36 // Remove the element from the DOM and clear the GLWord. 37 // Remove the element from the DOM and clear the GLWord.
37 removeElement: { 38 removeElement: {
38 value: function(el) { 39 value: function(el) {
39 if(el.elementModel && el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) { 40 if(el.elementModel.shapeModel && el.elementModel.shapeModel.GLWorld) {
40 el.elementModel.shapeModel.GLWorld.clearTree(); 41 el.elementModel.shapeModel.GLWorld.clearTree();
41 } 42 }
42 el.parentNode.removeChild(el); 43 el.parentNode.removeChild(el);
@@ -162,28 +163,12 @@ exports.ElementController = Montage.create(Component, {
162 el.elementModel.stroke = null; 163 el.elementModel.stroke = null;
163 return; 164 return;
164 case 'gradient': 165 case 'gradient':
165 if(color.borderInfo) {
166 if(color.borderInfo.borderWidth) {
167 this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits);
168 }
169 if(color.borderInfo.borderStyle) {
170 this.setProperty(el, "border-style", color.borderInfo.borderStyle);
171 }
172 }
173 this.setGradientBorder(el, color.color.gradientMode, color.color.css); 166 this.setGradientBorder(el, color.color.gradientMode, color.color.css);
174 break; 167 break;
175 default: 168 default:
176 this.setProperty(el, "border-image", "none"); 169 this.setProperty(el, "border-image", "none");
177 this.setProperty(el, "border-image-slice", ""); 170 this.setProperty(el, "border-image-slice", "");
178 this.setProperty(el, "border-color", color.color.css); 171 this.setProperty(el, "border-color", color.color.css);
179 if(color.borderInfo) {
180 if(color.borderInfo.borderWidth) {
181 this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits);
182 }
183 if(color.borderInfo.borderStyle) {
184 this.setProperty(el, "border-style", color.borderInfo.borderStyle);
185 }
186 }
187 } 172 }
188 } 173 }
189 el.elementModel.stroke = color; 174 el.elementModel.stroke = color;
@@ -211,25 +196,88 @@ exports.ElementController = Montage.create(Component, {
211 }, 196 },
212 197
213 getStroke: { 198 getStroke: {
214 value: function(el) { 199 value: function(el, stroke) {
215 // TODO - Need to figure out which border side user wants 200 var strokeInfo = {},
216 return this.application.ninja.stylesController.getElementStyle(el, "border"); 201 color,
202 borderWidth,
203 border;
204 if(stroke.colorInfo) {
205 strokeInfo.colorInfo = {};
206 color = this.getColor(el, false);
207 if(color && color.color) {
208 strokeInfo.colorInfo.mode = color.mode;
209 strokeInfo.colorInfo.color = color.color;
210 } else {
211