aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xjs/document/document-text.js59
-rwxr-xr-xjs/document/views/code.js56
-rwxr-xr-xjs/document/views/design.js6
-rw-r--r--js/io/system/ninjalibrary.js135
4 files changed, 112 insertions, 144 deletions
diff --git a/js/document/document-text.js b/js/document/document-text.js
index bb63f5f8..811cc8ce 100755
--- a/js/document/document-text.js
+++ b/js/document/document-text.js
@@ -6,17 +6,16 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
6 6
7//////////////////////////////////////////////////////////////////////// 7////////////////////////////////////////////////////////////////////////
8// 8//
9var Montage = require("montage/core/core").Montage, 9var Montage = require("montage/core/core").Montage,
10 Component = require("montage/ui/component").Component, 10 Component = require("montage/ui/component").Component,
11 TextDocumentModel = require("js/document/models/text").TextDocumentModel, 11 TextDocumentModel = require("js/document/models/text").TextDocumentModel,
12 CodeDocumentView = require("js/document/views/code").CodeDocumentView; 12 CodeDocumentView = require("js/document/views/code").CodeDocumentView;
13//////////////////////////////////////////////////////////////////////// 13////////////////////////////////////////////////////////////////////////
14// 14//
15exports.TextDocument = Montage.create(Component, { 15exports.TextDocument = Montage.create(Component, {
16 //////////////////////////////////////////////////////////////////// 16 ////////////////////////////////////////////////////////////////////
17 // 17 //
18 hasTemplate: { 18 hasTemplate: {
19 enumerable: false,
20 value: false 19 value: false
21 }, 20 },
22 //////////////////////////////////////////////////////////////////// 21 ////////////////////////////////////////////////////////////////////
@@ -26,45 +25,47 @@ exports.TextDocument = Montage.create(Component, {
26 }, 25 },
27 //////////////////////////////////////////////////////////////////// 26 ////////////////////////////////////////////////////////////////////
28 // 27 //
29
30 init:{ 28 init:{
31 enumerable: false, 29 value: function(file, context, callback, view){
32 value : function(file, context, callback, view){ 30 //
33 var codeDocumentView = CodeDocumentView.create(), container = null; 31 var codeDocumentView = CodeDocumentView.create(), container = null; //TODO: Why is this initilzied to null?
34
35 //Creating instance of Text Document Model 32 //Creating instance of Text Document Model
36 this.model = Montage.create(TextDocumentModel,{ 33 this.model = Montage.create(TextDocumentModel,{
37 file: {value: file}, 34 file: {value: file},
38 parentContainer: {value: document.getElementById("codeViewContainer")}, 35 parentContainer: {value: document.getElementById("codeViewContainer")}, //TODO: Remove reference to this element, should be dynamic
39 views: {value: {'code': codeDocumentView, 'design': null}} 36 views: {value: {'code': codeDocumentView, 'design': null}} //TODO: Add check if file might have design view, if so, then create it
40 }); 37 });
41 38 //TODO: Add design view logic
39 //Initilizing view(s)
42 codeDocumentView.initialize(this.model.parentContainer); 40 codeDocumentView.initialize(this.model.parentContainer);
43 41 //Checking for view specified
44 codeDocumentView.textArea.value = file.content;
45 codeDocumentView.initializeTextView(file, this);
46
47 if (view === 'code') { 42 if (view === 'code') {
48 //TODO: Remove reference and use as part of model 43 //TODO: Remove reference and use as part of model
49 this.currentView = 'code'; 44 this.currentView = 'code';
50 //Setting current view object to design 45 //Setting current view object to design
51 this.model.currentView = this.model.views.code; 46 this.model.currentView = this.model.views.code;
47 //Rendering view
48 codeDocumentView.textArea.value = file.content;
49 codeDocumentView.initializeTextView(file, this);
50 } else {
51 //Other view(s) logic goes here
52 } 52 }
53 53 //Checking if callback is needed
54 54 if (callback) callback.call(context, this);
55 callback.call(context, this);
56 } 55 }
57 }, 56 },
58//////////////////////////////////////////////////////////////////// 57 ////////////////////////////////////////////////////////////////////
59 // 58 //
60 closeDocument: { 59 closeDocument: {
61 value: function (context, callback) { 60 value: function (context, callback) {
62 var closed = this.model.close(null); 61 //Closing document and getting outcome
63 62 var closed = this.model.close(null);
64 callback.call(context, this); 63 //Making callback if specified
65 } 64 if (callback) callback.call(context, this);
66 } 65 }
67//////////////////////////////////////////////////////////////////// 66 }
67 ////////////////////////////////////////////////////////////////////
68 ////////////////////////////////////////////////////////////////////
68}); 69});
69//////////////////////////////////////////////////////////////////////// 70////////////////////////////////////////////////////////////////////////
70//////////////////////////////////////////////////////////////////////// \ No newline at end of file 71//////////////////////////////////////////////////////////////////////// \ No newline at end of file
diff --git a/js/document/views/code.js b/js/document/views/code.js
index 66d1c702..0a0ff5c1 100755
--- a/js/document/views/code.js
+++ b/js/document/views/code.js
@@ -10,15 +10,13 @@ var Montage = require("montage/core/core").Montage,
10 Component = require("montage/ui/component").Component, 10 Component = require("montage/ui/component").Component,
11 BaseDocumentView = require("js/document/views/base").BaseDocumentView; 11 BaseDocumentView = require("js/document/views/base").BaseDocumentView;
12//////////////////////////////////////////////////////////////////////// 12////////////////////////////////////////////////////////////////////////
13// 13//
14var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentView, { 14exports.CodeDocumentView = Montage.create(BaseDocumentView, {
15 //////////////////////////////////////////////////////////////////// 15 ////////////////////////////////////////////////////////////////////
16 // 16 //
17 hasTemplate: { 17 hasTemplate: {
18 enumerable: false,
19 value: false 18 value: false
20 }, 19 },
21
22 //////////////////////////////////////////////////////////////////// 20 ////////////////////////////////////////////////////////////////////
23 // 21 //
24 _editor: { 22 _editor: {
@@ -28,7 +26,7 @@ var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentVie
28 // 26 //
29 editor: { 27 editor: {
30 get: function() {return this._editor;}, 28 get: function() {return this._editor;},
31 set: function(value) {this._editor= value;} 29 set: function(value) {this._editor = value;}
32 }, 30 },
33 //////////////////////////////////////////////////////////////////// 31 ////////////////////////////////////////////////////////////////////
34 // 32 //
@@ -39,7 +37,7 @@ var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentVie
39 // 37 //
40 textArea: { 38 textArea: {
41 get: function() {return this._textArea;}, 39 get: function() {return this._textArea;},
42 set: function(value) {this._textArea= value;} 40 set: function(value) {this._textArea = value;}
43 }, 41 },
44 //////////////////////////////////////////////////////////////////// 42 ////////////////////////////////////////////////////////////////////
45 // 43 //
@@ -50,14 +48,10 @@ var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentVie
50 // 48 //
51 textViewContainer: { 49 textViewContainer: {
52 get: function() {return this._textViewContainer;}, 50 get: function() {return this._textViewContainer;},
53 set: function(value) {this._textViewContainer= value;} 51 set: function(value) {this._textViewContainer = value;}
54 }, 52 },
55 //////////////////////////////////////////////////////////////////// 53 ////////////////////////////////////////////////////////////////////
56 // 54 //
57
58 /**
59 * Public method
60 */
61 initialize:{ 55 initialize:{
62 value: function(parentContainer){ 56 value: function(parentContainer){
63 //create contianer 57 //create contianer
@@ -65,42 +59,35 @@ var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentVie
65 //this.textViewContainer.id = "codemirror_" + uuid; 59 //this.textViewContainer.id = "codemirror_" + uuid;
66 this.textViewContainer.style.display = "block"; 60 this.textViewContainer.style.display = "block";
67 parentContainer.appendChild(this.textViewContainer); 61 parentContainer.appendChild(this.textViewContainer);
68
69 //create text area 62 //create text area
70 this.textArea = this.createTextAreaElement(); 63 this.textArea = this.createTextAreaElement();
71 } 64 }
72 }, 65 },
73 66 ////////////////////////////////////////////////////////////////////
74 /** 67 //Creates a textarea element which will contain the content of the opened text document
75 * Public method
76 * Creates a textarea element which will contain the content of the opened text document.
77 */
78 createTextAreaElement: { 68 createTextAreaElement: {
79 value: function() { 69 value: function() {
80 var textArea = document.createElement("textarea"); 70 var textArea = document.createElement("textarea");
81// textArea.id = "code"; 71 //textArea.id = "code";
82// textArea.name = "code"; 72 //textArea.name = "code";
83 this.textViewContainer.appendChild(textArea); 73 this.textViewContainer.appendChild(textArea);
84 74 //Returns textarea element
85 return textArea; 75 return textArea;
86 } 76 }
87 }, 77 },
88 //////////////////////////////////////////////////////////////////// 78 ////////////////////////////////////////////////////////////////////
89 // 79 //Creates a new instance of a code editor
90 /**
91 * Public method
92 * Creates a new instance of a code editor
93 */
94 initializeTextView: { 80 initializeTextView: {
95 value: function(file, textDocument) { 81 value: function(file, textDocument) {
82 //
96 var type; 83 var type;
97 84 //
98 if(this.activeDocument) { 85 if(this.activeDocument) {
99 //need to hide only if another document was open before 86 //need to hide only if another document was open before
100// this.application.ninja.documentController._hideCurrentDocument(); 87 //this.application.ninja.documentController._hideCurrentDocument();
101// this.hideOtherDocuments(doc.uuid); 88 //this.hideOtherDocuments(doc.uuid);
102 } 89 }
103 90 //
104 switch(file.extension) { 91 switch(file.extension) {
105 case "css" : 92 case "css" :
106 type = "css"; 93 type = "css";
@@ -130,18 +117,18 @@ var CodeDocumentView = exports.CodeDocumentView = Montage.create(BaseDocumentVie
130 type = "xml"; 117 type = "xml";
131 break; 118 break;
132