From 1fae8b14621970680ca51c2a4a5f4f8006e1aee2 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Wed, 25 Jul 2012 00:04:22 -0700 Subject: design/code view switching for stage and menu Signed-off-by: Valerio Virgillito --- js/stage/stage.reel/stage.js | 13 +++++++++++-- js/ui/menu/menu-controller.js | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/js/stage/stage.reel/stage.js b/js/stage/stage.reel/stage.js index 39336b57..883f1526 100755 --- a/js/stage/stage.reel/stage.js +++ b/js/stage/stage.reel/stage.js @@ -349,6 +349,9 @@ exports.Stage = Montage.create(Component, { //call configure false with the old document on the selected tool to tear down down any temp. stuff this.application.ninja.toolsData.selectedToolInstance._configure(false); + + // Remove the change listener + this._currentDocument.removePropertyChangeListener("model.currentViewIdentifier", this, false); } else if(this.currentDocument && (this.currentDocument.currentView === "code")) { this.switchedFromCodeDoc = true; // Switching from code document affects stage's size and scrollbar } @@ -369,7 +372,7 @@ exports.Stage = Montage.create(Component, { this.clearAllCanvas(); this.initWithDocument(); - this._currentDocument.addPropertyChangeListener("model.currentView", this, false); + this._currentDocument.addPropertyChangeListener("model.currentViewIdentifier", this, false); } else { this.collapseAllPanels(); this.hideCanvas(true); @@ -381,6 +384,9 @@ exports.Stage = Montage.create(Component, { handleDocumentViewChange: { value: function() { if(this.currentDocument.model.currentView.identifier === "design-code") { + drawUtils._eltArray.length = 0; + drawUtils._planesArray.length = 0; + this.collapseAllPanels(); this.hideRulers(); this.hideCanvas(true); @@ -388,6 +394,9 @@ exports.Stage = Montage.create(Component, { this.restoreAllPanels(true); this.hideCanvas(false); this.showRulers(); + + this.clearAllCanvas(); + this.initWithDocument(); } } }, @@ -600,7 +609,7 @@ exports.Stage = Montage.create(Component, { drawUtils.drawXZ = false; this.updatedStage = true; } - } else if(notification.currentPropertyPath === "model.currentView") { + } else if(notification.currentPropertyPath === "model.currentViewIdentifier") { this.handleDocumentViewChange(); } /* diff --git a/js/ui/menu/menu-controller.js b/js/ui/menu/menu-controller.js index c80745f4..ebffddf1 100644 --- a/js/ui/menu/menu-controller.js +++ b/js/ui/menu/menu-controller.js @@ -56,6 +56,7 @@ exports.MenuController = Montage.create(Component, { if(this._currentDocument && this._currentDocument.currentView === "design") { document.application.model.show3dGrid = this._currentDocument.model.draw3DGrid; this.topLevelMenu[2].entries[5].checked = this._currentDocument.model.draw3DGrid; + this._currentDocument.addPropertyChangeListener("model.currentViewIdentifier", this, false); } if(!this._currentDocument) { @@ -85,6 +86,22 @@ exports.MenuController = Montage.create(Component, { } }, + handleChange: { + value: function(notification) { + if(notification.currentPropertyPath === "model.currentViewIdentifier") { + if(this.currentDocument.model.currentView.identifier === "design-code") { + this.designDocumentEnabledItems.forEach(function(index) { + index.enabled = false; + }); + } else { + this.designDocumentEnabledItems.forEach(function(index) { + index.enabled = true; + }); + } + } + } + }, + didCreate: { value: function() { var self = this; -- cgit v1.2.3