diff options
Diffstat (limited to 'js/stage')
-rwxr-xr-x | js/stage/stage-view.reel/stage-view.js | 103 |
1 files changed, 58 insertions, 45 deletions
diff --git a/js/stage/stage-view.reel/stage-view.js b/js/stage/stage-view.reel/stage-view.js index c0b0b83e..bb77b3de 100755 --- a/js/stage/stage-view.reel/stage-view.js +++ b/js/stage/stage-view.reel/stage-view.js | |||
@@ -28,7 +28,12 @@ exports.StageView = Montage.create(Component, { | |||
28 | templateDidLoad: { | 28 | templateDidLoad: { |
29 | value: function() { | 29 | value: function() { |
30 | this.eventManager.addEventListener("appLoaded", this, false); | 30 | this.eventManager.addEventListener("appLoaded", this, false); |
31 | //console.log(this.application.ninja.documentController._documents); | 31 | } |
32 | }, | ||
33 | |||
34 | didDraw:{ | ||
35 | value: function() { | ||
36 | if(!this.application.ninja.documentController._textHolder) this.application.ninja.documentController._textHolder = this.element; | ||
32 | } | 37 | } |
33 | }, | 38 | }, |
34 | 39 | ||
@@ -46,6 +51,28 @@ exports.StageView = Montage.create(Component, { | |||
46 | } | 51 | } |
47 | }, | 52 | }, |
48 | 53 | ||
54 | /** | ||
55 | * Creates a text area which will contain the content of the opened text document. | ||
56 | */ | ||
57 | createTextAreaElement: { | ||
58 | value: function(uuid) { | ||
59 | |||
60 | |||
61 | var codeMirrorDiv = document.createElement("div"); | ||
62 | codeMirrorDiv.id = "codeMirror_" + uuid; | ||
63 | codeMirrorDiv.style.display = "block"; | ||
64 | this.element.appendChild(codeMirrorDiv); | ||
65 | |||
66 | var textArea = document.createElement("textarea"); | ||
67 | textArea.id = "code"; | ||
68 | textArea.name = "code"; | ||
69 | |||
70 | codeMirrorDiv.appendChild(textArea); | ||
71 | |||
72 | return textArea; | ||
73 | } | ||
74 | }, | ||
75 | |||
49 | // Temporary function to create a Codemirror text view | 76 | // Temporary function to create a Codemirror text view |
50 | createTextView: { | 77 | createTextView: { |
51 | value: function(doc) { | 78 | value: function(doc) { |
@@ -58,8 +85,6 @@ exports.StageView = Montage.create(Component, { | |||
58 | this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe | 85 | this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe |
59 | this.application.ninja.documentController.activeDocument = doc; | 86 | this.application.ninja.documentController.activeDocument = doc; |
60 | 87 | ||
61 | this.element.appendChild(doc.textArea); | ||
62 | |||
63 | var type; | 88 | var type; |
64 | 89 | ||
65 | switch(doc.documentType) { | 90 | switch(doc.documentType) { |
@@ -71,13 +96,16 @@ exports.StageView = Montage.create(Component, { | |||
71 | break; | 96 | break; |
72 | } | 97 | } |
73 | 98 | ||
74 | //remove any previous Codemirror div | 99 | //hide other Codemirror divs |
75 | var codemirrorDiv = this.element.querySelector(".CodeMirror"); | 100 | this.hideOtherCodeView(doc.uuid); |
76 | if(!!codemirrorDiv){ | ||
77 | codemirrorDiv.parentNode.removeChild(codemirrorDiv); | ||
78 | } | ||
79 | 101 | ||
80 | var codeM = CodeMirror.fromTextArea(doc.textArea, { | 102 | |
103 | //fix hack | ||
104 | document.getElementById("codeMirror_"+doc.uuid).style.display="block"; | ||
105 | |||
106 | |||
107 | |||
108 | doc.editor = CodeMirror.fromTextArea(doc.textArea, { | ||
81 | lineNumbers: true, | 109 | lineNumbers: true, |
82 | mode: type, | 110 | mode: type, |
83 | onCursorActivity: function() { | 111 | onCursorActivity: function() { |
@@ -95,6 +123,11 @@ exports.StageView = Montage.create(Component, { | |||
95 | 123 | ||
96 | switchCodeView:{ | 124 | switchCodeView:{ |
97 | value: function(doc){ | 125 | value: function(doc){ |
126 | |||
127 | //if dirty SAVE codemirror into textarea | ||
128 | //doc.editor.save(); | ||
129 | |||
130 | |||
98 | var documentController = this.application.ninja.documentController; | 131 | var documentController = this.application.ninja.documentController; |
99 | this.application.ninja.documentController._hideCurrentDocument(); | 132 | this.application.ninja.documentController._hideCurrentDocument(); |
100 | 133 | ||
@@ -102,36 +135,7 @@ exports.StageView = Montage.create(Component, { | |||
102 | 135 | ||
103 | this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe | 136 | this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe |
104 | 137 | ||
105 | 138 | this.application.ninja.documentController._showCurrentDocument(); | |
106 | |||
107 | //remove any previous Codemirror div | ||
108 | var codemirrorDiv = this.element.querySelector(".CodeMirror"); | ||
109 | if(!!codemirrorDiv){ | ||
110 | codemirrorDiv.parentNode.removeChild(codemirrorDiv); | ||
111 | } | ||
112 | |||
113 | var type; | ||
114 | |||
115 | switch(doc.documentType) { | ||
116 | case "css" : | ||
117 | type = "css"; | ||
118 | break; | ||
119 | case "js" : | ||
120 | type = "javascript"; | ||
121 | break; | ||
122 | } | ||
123 | |||
124 | var codeM = CodeMirror.fromTextArea(doc.textArea, { | ||
125 | lineNumbers: true, | ||
126 | mode: type, | ||
127 | onCursorActivity: function() { | ||
128 | //documentController._codeEditor.editor.setLineClass(documentController._codeEditor.hline, null); | ||
129 | //documentController._codeEditor.hline = documentController._codeEditor.editor.setLineClass(documentController._codeEditor.editor.getCursor().line, "activeline"); | ||
130 | } | ||
131 | }); | ||
132 | |||
133 | //this.application.ninja.documentController._codeEditor.hline = this.application.ninja.documentController._codeEditor.editor.setLineClass(0, "activeline"); | ||
134 | |||
135 | } | 139 | } |
136 | }, | 140 | }, |
137 | refreshCodeDocument:{ | 141 | refreshCodeDocument:{ |
@@ -161,12 +165,21 @@ exports.StageView = Montage.create(Component, { | |||
161 | }); | 165 | }); |
162 | } | 166 | } |
163 | }, | 167 | }, |
164 | removeCodeDocument:{ | 168 | hideCodeDocument:{ |
165 | value:function(){ | 169 | value:function(docUuid){ |
166 | //remove any previous Codemirror div | 170 | //hide the previous Codemirror div |
167 | var codemirrorDiv = this.element.querySelector(".CodeMirror"); | 171 | |
168 | if(!!codemirrorDiv){ | 172 | } |
169 | codemirrorDiv.parentNode.removeChild(codemirrorDiv); | 173 | }, |
174 | hideOtherCodeView:{ | ||
175 | value:function(docUuid){ | ||
176 | var i=0; | ||
177 | if(this.element.hasChildNodes()){ | ||
178 | for(i=0;i<this.element.childNodes.length;i++){ | ||
179 | if(this.element.childNodes[i].id !== ("codeMirror_"+docUuid)){ | ||
180 | this.element.childNodes[i].style.display = "none"; | ||
181 | } | ||
182 | } | ||
170 | } | 183 | } |
171 | } | 184 | } |
172 | } | 185 | } |