1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
</copyright> */
////////////////////////////////////////////////////////////////////////
//
var Montage = require("montage/core/core").Montage,
BaseDocumentModel = require("js/document/models/base").BaseDocumentModel;
////////////////////////////////////////////////////////////////////////
//
exports.TextDocumentModel = Montage.create(BaseDocumentModel, {
////////////////////////////////////////////////////////////////////
//
hasTemplate: {
enumerable: false,
value: false
},
////////////////////////////////////////////////////////////////////
//
save: {
enumerable: false,
value: function (callback) {
this.application.ninja.documentController.activeDocument.model.views.code.editor.save();//save to textarea
var self = this;
this.application.ninja.ioMediator.fileSave({
mode: ""+ self.file.extension,
file: self.file,
content:self.views.code.textArea.value
}, this.handleSaved.bind({callback: callback, model: this}));
}
},
////////////////////////////////////////////////////////////////////
//
handleSaved: {
value: function (result) {
//
if (result.status === 204) {
this.model.needsSave = false;
}
//
if (this.callback) this.callback(result);
}
},
////////////////////////////////////////////////////////////////////
//
close: {
value: function (view, callback) {
//Outcome of close (pending on save logic)
var success;
//
if (this.needsSave) {
//Prompt user to save of lose data
} else {
//Close file
success = true;
}
//
this.parentContainer.removeChild(this.views.code.textViewContainer);
this.application.ninja.stage.showCodeViewBar(false);
this.application.ninja.stage.restoreAllPanels();
this.views.code = null;
//
return success;
}
}
});
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
|