aboutsummaryrefslogtreecommitdiff
path: root/js/ninja.reel/ninja.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/ninja.reel/ninja.js')
-rwxr-xr-xjs/ninja.reel/ninja.js187
1 files changed, 160 insertions, 27 deletions
diff --git a/js/ninja.reel/ninja.js b/js/ninja.reel/ninja.js
index 4127e59a..f1825b9a 100755
--- a/js/ninja.reel/ninja.js
+++ b/js/ninja.reel/ninja.js
@@ -15,22 +15,172 @@ var NjUtils = require("js/lib/NJUtils").NJUtils;
15 15
16exports.Ninja = Montage.create(Component, { 16exports.Ninja = Montage.create(Component, {
17 17
18 ninjaVersion: { 18 // SERIALIZABLE Properties
19 value: null 19 //////////////////////////////
20 rulerTop: {
21 value: null,
22 serializable: true
23 },
24
25 rulerLeft: {
26 value: null,
27 serializable: true
28 },
29
30 appModel: {
31 value: null,
32 serializable: true
20 }, 33 },
21 34
22 toolsData: { 35 toolsData: {
23 value: null 36 value: null,
37 serializable: true
24 }, 38 },
25 39
26 appData: { 40 toolsList: {
27 value: AppData 41 value: null,
42 serializable: true
43 },
44
45 toolsProperties: {
46 value: null,
47 serializable: true
48 },
49
50 stage: {
51 value: null,
52 serializable: true
53 },
54
55 elementMediator: {
56 value: null,
57 serializable: true
58 },
59
60 dragDropMediator: {
61 value: null,
62 serializable: true
63 },
64
65 undocontroller: {
66 value: null,
67 serializable: true
68 },
69
70 selectionController: {
71 value: null,
72 serializable: true
73 },
74
75 documentController: {
76 value: null,
77 serializable: true
78 },
79
80 popupManager: {
81 value: null,
82 serializable: true
83 },
84
85 colorController: {
86 value: null,
87 serializable: true
88 },
89
90 stylesController: {
91 value: null,
92 serializable: true
93 },
94
95 presetsController: {
96 value: null,
97 serializable: true
98 },
99
100 filePickerController: {
101 value: null,
102 serializable: true
103 },
104
105 newFileController: {
106 value: null,
107 serializable: true
108 },
109
110 coreIoApi: {
111 value: null,
112 serializable: true
113 },
114
115 documentBar: {
116 value: null,
117 serializable: true
118 },
119
120 editorViewOptions: {
121 value: null,
122 serializable: true
123 },
124
125 ioMediator: {
126 value: null,
127 serializable: true
128 },
129
130 timeline: {
131 value: null,
132 serializable: true
133 },
134
135 mainMenuController: {
136 value: null,
137 serializable: true
138 },
139
140 codeEditorController: {
141 value: null,
142 serializable: true
143 },
144
145 rightPanelContainer: {
146 value: null,
147 serializable: true
148 },
149
150 panelSplitter: {
151 value: null,
152 serializable: true
153 },
154
155 timelineSplitter: {
156 value: null,
157 serializable: true
158 },
159
160 toolsSplitter: {
161 value: null,
162 serializable: true
163 },
164
165 optionsSplitter: {
166 value: null,
167 serializable: true
28 }, 168 },
29 169
30 documentList: { 170 documentList: {
171 value: null,
172 serializable: true
173 },
174 //////////////////////////////
175
176 ninjaVersion: {
31 value: null 177 value: null
32 }, 178 },
33 179
180 appData: {
181 value: AppData
182 },
183
34 currentDocument: { 184 currentDocument: {
35 get: function() { 185 get: function() {
36 if(this.documentList.selectedObjects) { 186 if(this.documentList.selectedObjects) {
@@ -171,21 +321,6 @@ exports.Ninja = Montage.create(Component, {
171 value: [] 321 value: []
172 }, 322 },
173 323
174 _currentSelectedContainer: {
175 value: null
176 },
177
178 currentSelectedContainer: {
179 get: function() {
180 return this._currentSelectedContainer;
181 },
182 set: function(value) {
183 if(value !== this._currentSelectedContainer) {
184 this._currentSelectedContainer = value;
185 }
186 }
187 },
188
189 templateDidLoad: { 324 templateDidLoad: {
190 value: function() { 325 value: function() {
191 this.ninjaVersion = window.ninjaVersion.ninja.version; 326 this.ninjaVersion = window.ninjaVersion.ninja.version;
@@ -209,6 +344,10 @@ exports.Ninja = Montage.create(Component, {
209 this.setupGlobalHelpers(); 344 this.setupGlobalHelpers();
210 345
211 window.addEventListener("resize", this, false); 346 window.addEventListener("resize", this, false);
347 //Prompting the user to make sure data was saved before closing Ninja
348 window.onbeforeunload = function () {
349 return 'Are you sure you want to close Ninja? Any unsaved data will be lost.';
350 };
212 351
213 this.eventManager.addEventListener("selectTool", this, false); 352 this.eventManager.addEventListener("selectTool", this, false);
214 this.eventManager.addEventListener("selectSubTool", this, false); 353 this.eventManager.addEventListener("selectSubTool", this, false);
@@ -342,15 +481,9 @@ exports.Ninja = Montage.create(Component, {
342 openDocument: { 481 openDocument: {
343 value: function(doc) { 482 value: function(doc) {
344 this.documentList.content.push(doc); 483 this.documentList.content.push(doc);
345 // This is not needed with the latest 0.10 montage. 484 // TODO: Check why this is still needed
346 // TODO: Remove this when integrating the next montage
347 this.documentList.selectedObjects = [doc]; 485 this.documentList.selectedObjects = [doc];
348 486
349 if(doc.currentView === "design") {
350 // TODO: Bind directly to the model of the document in components instead of this property
351 this._currentSelectedContainer = null;
352 this.currentSelectedContainer = doc.model.documentRoot;
353 }
354 } 487 }
355 }, 488 },
356 489