aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValerio Virgillito2012-05-18 00:21:56 -0700
committerValerio Virgillito2012-05-18 00:21:56 -0700
commit7a94696e19b14e15261df516e2ba75e693b1313d (patch)
treeccb3cdff79be3ae5221779787bfbdcc5ca3d8e77
parentf227015e14b505dbd3fc4b030ca17cb6c50c5d88 (diff)
downloadninja-7a94696e19b14e15261df516e2ba75e693b1313d.tar.gz
enabling basic document switching
Signed-off-by: Valerio Virgillito <valerio@motorola.com>
-rwxr-xr-xjs/components/layout/document-entry.reel/document-entry.js4
-rwxr-xr-xjs/controllers/document-controller.js37
-rwxr-xr-xjs/controllers/selection-controller.js4
-rwxr-xr-xjs/document/document-html.js20
-rwxr-xr-xjs/document/html-document.js78
-rwxr-xr-xjs/document/models/base.js2
-rwxr-xr-xjs/ninja.reel/ninja.js17
-rwxr-xr-xjs/panels/properties.reel/properties.js16
-rwxr-xr-xjs/stage/stage-deps.js13
-rwxr-xr-xjs/stage/stage-view.reel/stage-view.js22
10 files changed, 59 insertions, 154 deletions
diff --git a/js/components/layout/document-entry.reel/document-entry.js b/js/components/layout/document-entry.reel/document-entry.js
index ad0236c6..50b3624c 100755
--- a/js/components/layout/document-entry.reel/document-entry.js
+++ b/js/components/layout/document-entry.reel/document-entry.js
@@ -121,8 +121,8 @@ exports.DocumentEntry = Montage.create(Component, {
121 if(event._event.target.nodeName === "IMG") { 121 if(event._event.target.nodeName === "IMG") {
122 this.application.ninja.documentController.closeFile(this.application.ninja.documentController._findDocumentByUUID(this._uuid)); 122 this.application.ninja.documentController.closeFile(this.application.ninja.documentController._findDocumentByUUID(this._uuid));
123 } else { 123 } else {
124 if(!this._document.isActive) { 124 if(!this.active) {
125 this.application.ninja.stage.stageView.switchDocument(this.application.ninja.documentController._findDocumentByUUID(this._uuid)); 125 this.application.ninja.documentController.switchDocuments(this.application.ninja.currentDocument, this.application.ninja.documentController._findDocumentByUUID(this._uuid));
126 } 126 }
127 } 127 }
128 } 128 }
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js
index 50874725..fc1f2c0f 100755
--- a/js/controllers/document-controller.js
+++ b/js/controllers/document-controller.js
@@ -459,16 +459,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
459 // There is a document currently opened 459 // There is a document currently opened
460 currentDocument = this.activeDocument; 460 currentDocument = this.activeDocument;
461 461
462 //this.application.ninja.stage.stageView.showCodeViewBar(false);
463 //this.application.ninja.stage.stageView.restoreAllPanels(); 462 //this.application.ninja.stage.stageView.restoreAllPanels();
464
465 //this.activeDocument.saveAppState();
466
467 // TODO: Do we need this?
468 //this.application.ninja.stage.hideCanvas(true);
469 //this.application.ninja.stage.stageView.hideRulers();
470
471 //this.activeDocument.restoreAppState();
472 } else { 463 } else {
473 // There is no document opened 464 // There is no document opened
474 465
@@ -480,7 +471,6 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
480 this.application.ninja.stage.hideCanvas(false); 471 this.application.ninja.stage.hideCanvas(false);
481 } 472 }
482 473
483
484 // Set the active document 474 // Set the active document
485 this.activeDocument = doc; 475 this.activeDocument = doc;
486 476
@@ -489,22 +479,27 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
489 // Flag to stop stylesheet dirty event 479 // Flag to stop stylesheet dirty event
490 this._hackInitialStyles = false; 480 this._hackInitialStyles = false;
491 481
492 this.switchDocuments(currentDocument, doc); 482 this.switchDocuments(currentDocument, doc, true);
493
494 NJevent("onOpenDocument", doc);
495
496 //Setting opacity to be viewable after load
497 //doc.model.views.design.iframe.style.opacity = 1;
498
499 } 483 }
500 }, 484 },
501 485
502 switchDocuments: { 486 switchDocuments: {
503 value: function(current, newDocument) { 487 value: function(currentDocument, newDocument, didCreate) {
504 newDocument.model.views.design.iframe.style.opacity = 1; 488
489 if(currentDocument) {
490 currentDocument.serializeDocument();
505 491
506 if(current) { 492 currentDocument.model.views.design.hide();
507 current.model.views.design.hide(); 493 }
494
495 if(didCreate) {
496 newDocument.model.views.design.iframe.style.opacity = 1;
497 NJevent("onOpenDocument", newDocument);
498 } else {
499 this.activeDocument = newDocument;
500 newDocument.model.views.design.show();
501 newDocument.deserializeDocument();
502 NJevent("switchDocument");
508 } 503 }
509 } 504 }
510 }, 505 },
diff --git a/js/controllers/selection-controller.js b/js/controllers/selection-controller.js
index 6e40abb5..1092615a 100755
--- a/js/controllers/selection-controller.js
+++ b/js/controllers/selection-controller.js
@@ -81,10 +81,10 @@ exports.SelectionController = Montage.create(Component, {
81 81
82 handleSwitchDocument: { 82 handleSwitchDocument: {
83 value: function() { 83 value: function() {
84 if(this.application.ninja.documentController.activeDocument.currentView === "design"){ 84// if(this.application.ninja.documentController.activeDocument.currentView === "design"){
85 this._isDocument = this.application.ninja.selectedElements.length === 0; 85 this._isDocument = this.application.ninja.selectedElements.length === 0;
86 NJevent("selectionChange", {"elements": this.application.ninja.selectedElements, "isDocument": this._isDocument} ); 86 NJevent("selectionChange", {"elements": this.application.ninja.selectedElements, "isDocument": this._isDocument} );
87 } 87// }
88 } 88 }
89 }, 89 },
90 90
diff --git a/js/document/document-html.js b/js/document/document-html.js
index c77ed7bc..0037c94d 100755
--- a/js/document/document-html.js
+++ b/js/document/document-html.js
@@ -134,7 +134,7 @@ exports.HtmlDocument = Montage.create(Component, {
134 // 134 //
135 serializeDocument: { 135 serializeDocument: {
136 value: function () { 136 value: function () {
137 // There are not needed for now ssince we cannot change them 137 // There are not needed for now since we cannot change them
138 //this.gridHorizontalSpacing = this.application.ninja.stage.drawUtils.gridHorizontalSpacing; 138 //this.gridHorizontalSpacing = this.application.ninja.stage.drawUtils.gridHorizontalSpacing;
139 //this.gridVerticalSpacing = this.application.ninja.stage.drawUtils.gridVerticalSpacing; 139 //this.gridVerticalSpacing = this.application.ninja.stage.drawUtils.gridVerticalSpacing;
140 140
@@ -150,13 +150,29 @@ exports.HtmlDocument = Montage.create(Component, {
150 150
151 // Pause the videos 151 // Pause the videos
152 this.model.views.design.pauseVideos(); 152 this.model.views.design.pauseVideos();
153
154 this.model.isActive = false;
153 } 155 }
154 }, 156 },
155 //////////////////////////////////////////////////////////////////// 157 ////////////////////////////////////////////////////////////////////
156 // 158 //
157 deserializeDocument: { 159 deserializeDocument: {
158 value: function () { 160 value: function () {
159 //TODO: Import functionality 161 // There are not needed for now since we cannot change them
162 //this.application.ninja.stage.drawUtils.gridHorizontalSpacing = this.gridHorizontalSpacing;
163 //this.application.ninja.stage.drawUtils.gridVerticalSpacing = this.gridVerticalSpacing;
164
165 // Deserialize the current scroll position
166 // TODO: Implement
167
168 this.application.ninja.selectedElements = this.model.selection.slice(0);
169
170 this.application.ninja.appModel.show3dGrid = this.draw3DGrid;
171
172 // Serialize the undo
173 // TODO: Save the montage undo queue
174
175 this.model.isActive = true;
160 } 176 }
161 } 177 }
162 //////////////////////////////////////////////////////////////////// 178 ////////////////////////////////////////////////////////////////////
diff --git a/js/document/html-document.js b/js/document/html-document.js
index 68c2a9fb..bcf2b5c2 100755
--- a/js/document/html-document.js
+++ b/js/document/html-document.js
@@ -454,55 +454,6 @@ exports.HTMLDocument = Montage.create(TextDocument, {
454 } 454 }
455 }, 455 },
456 456
457 /**
458 * Return the specified inline attribute from the element.
459 */
460 GetElementAttribute: {
461 value: function(element, attribute) {
462
463 var value;
464
465 if(attribute === "src") {
466 return element[attribute].replace(window.location.href, '');
467 }
468
469 value = element[attribute];
470
471 if(value !== undefined) return value;
472// if(value || value === false) return [value, "inline"];
473
474 // 3.
475 //value = this._document.defaultView.getComputedStyle(element,null).getPropertyValue(attribute);
476 //if(value) return value;
477
478 return null;
479 }
480 },
481
482 GetElementStyle: {
483 value: function(element, style) {
484// return this._queryStylesheets(element, style);
485 }
486 },
487
488 SetStyle: {
489 value: function(type, selector, style, value) {
490 try {
491 for(var j=0; j<this._stylesheets.length;j++){
492 for(var i=0; i<this._stylesheets[j].cssRules.length;i++) {
493 if(this._stylesheets[j].cssRules[i].selectorText === type + selector) {
494 this._stylesheets[j].cssRules[i].style[style] = value;
495
496 return true;
497 }
498 }
499 }
500 } catch(err) {
501 console.log("Cannot change the style of selector: " + selector + " " + err);
502 }
503 }
504 },
505
506 GetElementFromPoint: { 457 GetElementFromPoint: {
507 value: function(x,