antosdk-apps/TinyEditor/build/debug/main.js
2018-07-25 14:20:13 +00:00

145 lines
3.4 KiB
JavaScript

(function() {
var TinyEditor;
TinyEditor = class TinyEditor extends this.OS.GUI.BaseApplication {
constructor(args) {
super("TinyEditor", args);
}
main() {
var me;
me = this;
this.editor = this.find("editor");
this.bindKey("ALT-N", function() {
return me.newFile();
});
this.bindKey("ALT-O", function() {
return me.openFile();
});
this.bindKey("CTRL-S", function() {
return me.saveFile();
});
this.filehandler = this.args && this.args.length > 0 ? this.args[0].asFileHandler() : null;
$(this.editor).on('input', function(e) {
if (me.filehandler.dirty === true) {
return;
}
me.filehandler.dirty = true;
return me.scheme.set("apptitle", `${me.filehandler.path}*`);
});
return this.read();
}
menu() {
var m, me;
me = this;
m = [
{
text: "__(File)",
child: [
{
text: "__(New)",
dataid: "new",
shortcut: 'A-N'
},
{
text: "__(Open)",
dataid: "open",
shortcut: 'A-O'
},
{
text: "__(Save)",
dataid: "save",
shortcut: 'C-S'
}
],
onmenuselect: function(e) {
switch (e.item.data.dataid) {
case "new":
return me.newFile();
case "open":
return me.openFile();
case "save":
return me.saveFile();
}
}
}
];
return m;
}
newFile() {
this.filehandler = null;
return this.read();
}
openFile() {
var me;
me = this;
return this.openDialog("FileDiaLog", function(dir, fname, d) {
me.filehandler = `${dir}/${fname}`.asFileHandler();
return me.read();
}, __("Open file"));
}
saveFile() {
var me;
me = this;
this.filehandler.cache = this.editor.value;
if (this.filehandler.path !== "Untitled") {
return this.write();
}
return this.openDialog("FileDiaLog", function(dir, fname, d) {
me.filehandler.setPath(`${dir}/${fname}`);
return me.write();
}, __("Save as"), {
file: me.filehandler
});
}
read() {
var me;
me = this;
this.editor.value = "";
if (this.filehandler === null) {
this.filehandler = "Untitled".asFileHandler();
this.scheme.set("apptitle", "Untitled");
return;
}
return this.filehandler.read(function(d) {
me.scheme.set("apptitle", me.filehandler.path);
return me.editor.value = d;
});
}
write() {
var me;
me = this;
return this.filehandler.write("text/plain", function(d) {
if (d.error) {
return me.error(__("Error saving file {0}", me.filehandler.path));
}
me.filehandler.dirty = false;
return me.scheme.set("apptitle", `${me.filehandler.path}`);
});
}
cleanup(e) {
var me;
if (!this.filehandler.dirty) {
return;
}
me = this;
e.preventDefault();
return this.ask("__(Quit)", "__(Quit without saving?)", function() {
me.filehandler.dirty = false;
return me.quit();
});
}
};
this.OS.register("TinyEditor", TinyEditor);
}).call(this);