aboutsummaryrefslogtreecommitdiff
path: root/js/ninja.reel/ninja.js
diff options
context:
space:
mode:
authorArmen Kesablyan2012-06-19 00:45:26 -0700
committerArmen Kesablyan2012-06-19 00:45:26 -0700
commitc59eb371559a3061ce53223e249ca97daace5968 (patch)
treef9540e26c0f273d35f92010605da65dd85bbe70c /js/ninja.reel/ninja.js
parent0f040acabfb7a4bf3138debec5aff869487ceb11 (diff)
parent918a4f5870e972b6e4e301c3237e065a1ffd26f5 (diff)
downloadninja-c59eb371559a3061ce53223e249ca97daace5968.tar.gz
Merge branch 'master' of github.com:Motorola-Mobility/ninja-internal
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 38f5efcf..61cd2487 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) {
@@ -147,21 +297,6 @@ exports.Ninja = Montage.create(Component, {
147 value: [] 297 value: []
148 }, 298 },
149 299
150 _currentSelectedContainer: {
151 value: null
152 },
153
154 currentSelectedContainer: {
155 get: function() {
156 return this._currentSelectedContainer;
157 },
158 set: function(value) {
159 if(value !== this._currentSelectedContainer) {
160 this._currentSelectedContainer = value;
161 }
162 }
163 },
164
165 templateDidLoad: { 300 templateDidLoad: {
166 value: function() { 301 value: function() {
167 this.ninjaVersion = window.ninjaVersion.ninja.version; 302 this.ninjaVersion = window.ninjaVersion.ninja.version;
@@ -184,6 +319,10 @@ exports.Ninja = Montage.create(Component, {
184 this.setupGlobalHelpers(); 319 this.setupGlobalHelpers();
185 320
186 window.addEventListener("resize", this, false); 321 window.addEventListener("resize", this, false);
322 //Prompting the user to make sure data was saved before closing Ninja
323 window.onbeforeunload = function () {
324 return 'Are you sure you want to close Ninja? Any unsaved data will be lost.';
325 };
187 326
188 this.eventManager.addEventListener("selectTool", this, false); 327 this.eventManager.addEventListener("selectTool", this, false);
189 this.eventManager.addEventListener("selectSubTool", this, false); 328 this.eventManager.addEventListener("selectSubTool", this, false);
@@ -317,15 +456,9 @@ exports.Ninja = Montage.create(Component, {
317 openDocument: { 456 openDocument: {
318 value: function(doc) { 457 value: function(doc) {
319 this.documentList.content.push(doc); 458 this.documentList.content.push(doc);
320 // This is not needed with the latest 0.10 montage. 459 // TODO: Check why this is still needed
321 // TODO: Remove this when integrating the next montage
322 this.documentList.selectedObjects = [doc]; 460 this.documentList.selectedObjects = [doc];
323 461
324 if(doc.currentView === "design") {
325 // TODO: Bind directly to the model of the document in components instead of this property
326 this._currentSelectedContainer = null;
327 this.currentSelectedContainer = doc.model.documentRoot;
328 }
329 } 462 }
330 }, 463 },
331 464