diff options
author | Valerio Virgillito | 2012-07-24 16:56:52 -0700 |
---|---|---|
committer | Valerio Virgillito | 2012-07-24 16:56:52 -0700 |
commit | 8f4a3e260622cd51dfa93b8dfd765f764c80fa6b (patch) | |
tree | 7f5004c61a3486cc0f547cf1e2d3d11183a1e36e /js/controllers | |
parent | 5454cc462903c83a8c3651065b03cc1855db125e (diff) | |
download | ninja-8f4a3e260622cd51dfa93b8dfd765f764c80fa6b.tar.gz |
adding a viewIdentifier to the model to enable design/code switch
Todo:
- Cleanup and remove listeners
- Finish stage reload
- Add remaining bindings.
Signed-off-by: Valerio Virgillito <valerio@motorola.com>
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/document-controller.js | 18 | ||||
-rwxr-xr-x | js/controllers/styles-controller.js | 34 |
2 files changed, 52 insertions, 0 deletions
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index ee7ca82c..83c1f58c 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -80,6 +80,7 @@ exports.DocumentController = Montage.create(Component, { | |||
80 | } else if(this._currentDocument.currentView === "design") { | 80 | } else if(this._currentDocument.currentView === "design") { |
81 | document.getElementById("codeViewContainer").style.display = "none"; | 81 | document.getElementById("codeViewContainer").style.display = "none"; |
82 | document.getElementById("iframeContainer").style.display = "block"; | 82 | document.getElementById("iframeContainer").style.display = "block"; |
83 | this._currentDocument.addPropertyChangeListener("model.currentViewIdentifier", this, false); | ||
83 | if (this._currentDocument.model.currentView) this._currentDocument.model.currentView.show(); | 84 | if (this._currentDocument.model.currentView) this._currentDocument.model.currentView.show(); |
84 | this._currentDocument.model.views.design._liveNodeList = this._currentDocument.model.documentRoot.getElementsByTagName('*'); | 85 | this._currentDocument.model.views.design._liveNodeList = this._currentDocument.model.documentRoot.getElementsByTagName('*'); |
85 | } else { | 86 | } else { |
@@ -91,6 +92,23 @@ exports.DocumentController = Montage.create(Component, { | |||
91 | } | 92 | } |
92 | }, | 93 | }, |
93 | 94 | ||
95 | handleChange: { | ||
96 | value: function(notification) { | ||
97 | if(notification.currentPropertyPath === "model.currentViewIdentifier") { | ||
98 | if(this.currentDocument.model.currentView.identifier === "design-code") { | ||
99 | // document.getElementById("iframeContainer").style.display = "none"; | ||
100 | // this._currentDocument.model.parentContainer.style["display"] = "block"; | ||
101 | // if (this._currentDocument.model.currentView) this._currentDocument.model.currentView.show(); | ||
102 | } else { | ||
103 | document.getElementById("codeViewContainer").style.display = "none"; | ||
104 | document.getElementById("iframeContainer").style.display = "block"; | ||
105 | if (this._currentDocument.model.currentView) this._currentDocument.model.currentView.show(); | ||
106 | this._currentDocument.model.views.design._liveNodeList = this._currentDocument.model.documentRoot.getElementsByTagName('*'); | ||
107 | } | ||
108 | } | ||
109 | } | ||
110 | }, | ||
111 | |||
94 | deserializedFromTemplate: { | 112 | deserializedFromTemplate: { |
95 | value: function() { //TODO: Add event naming consistency (save, fileOpen and newFile should be consistent, all file events should be executeFile[operation name]) | 113 | value: function() { //TODO: Add event naming consistency (save, fileOpen and newFile should be consistent, all file events should be executeFile[operation name]) |
96 | this.eventManager.addEventListener("appLoaded", this, false); | 114 | this.eventManager.addEventListener("appLoaded", this, false); |
diff --git a/js/controllers/styles-controller.js b/js/controllers/styles-controller.js index 21321f6d..0e1df1e9 100755 --- a/js/controllers/styles-controller.js +++ b/js/controllers/styles-controller.js | |||
@@ -99,6 +99,8 @@ var stylesController = exports.StylesController = Montage.create(Component, { | |||
99 | ///// setting document via binding | 99 | ///// setting document via binding |
100 | this._currentDocument = document; | 100 | this._currentDocument = document; |
101 | 101 | ||
102 | this._currentDocument.addPropertyChangeListener("model.currentViewIdentifier", this, false); | ||
103 | |||
102 | ///// Stage stylesheet should always be found | 104 | ///// Stage stylesheet should always be found |
103 | this._stageStylesheet = this.getSheetFromElement(this.CONST.STAGE_SHEET_ID); | 105 | this._stageStylesheet = this.getSheetFromElement(this.CONST.STAGE_SHEET_ID); |
104 | // Returns null if sheet not found (as in non-ninja projects) | 106 | // Returns null if sheet not found (as in non-ninja projects) |
@@ -126,6 +128,38 @@ var stylesController = exports.StylesController = Montage.create(Component, { | |||
126 | enumerable : false | 128 | enumerable : false |
127 | }, | 129 | }, |
128 | 130 | ||
131 | handleChange: { | ||
132 | value: function(notification) { | ||
133 | if(notification.currentPropertyPath === "model.currentViewIdentifier") { | ||
134 | if(this.currentDocument.model.currentView.identifier === "design") { | ||
135 | ///// Stage stylesheet should always be found | ||
136 | this._stageStylesheet = this.getSheetFromElement(this.CONST.STAGE_SHEET_ID); | ||
137 | // Returns null if sheet not found (as in non-ninja projects) | ||
138 | // Setter will handle null case | ||
139 | this.defaultStylesheet = this.getSheetFromElement(this.CONST.DEFAULT_SHEET_ID); | ||
140 | |||
141 | this.userStyleSheets = nj.toArray(this.currentDocument.model.views.design.document.styleSheets).filter(function(sheet) { | ||
142 | if(sheet === this._stageStylesheet) { return false; } | ||
143 | |||
144 | var media = sheet.ownerNode.getAttribute('media'); | ||
145 | |||
146 | ///// If the media attribute contains a query, we'll watch for changes in media | ||
147 | if(/\([0-9A-Za-z-: ]+\)/.test(media)) { | ||
148 | this.watchMedia(media); | ||
149 | } | ||
150 | |||
151 | return true; | ||
152 | |||
153 | }, this); | ||
154 | |||
155 | this.initializeRootStyles(); | ||
156 | |||
157 | NJevent('styleSheetsReady', this); | ||
158 | } | ||
159 | } | ||
160 | } | ||
161 | }, | ||
162 | |||
129 | _mediaList : { | 163 | _mediaList : { |
130 | value: [] | 164 | value: [] |
131 | }, | 165 | }, |