aboutsummaryrefslogtreecommitdiff
path: root/js/document/models/text.js
blob: 6cb61d48b06ca567f51afa2b2041607e5ec9e492 (plain)
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
/* <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.currentDocument.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.restoreAllPanels();
                this.views.code = null;

            	//
            	return success;
            }
        }
});
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////