diff --git a/chrome/content/fireio.js b/chrome/content/fireio.js index 76a535d..378e10a 100644 --- a/chrome/content/fireio.js +++ b/chrome/content/fireio.js @@ -1,98 +1,102 @@ +/* +@author David Westgate, Rylan Doherty +@fileOverview The Input/Output functions of firerecord. Setting Path, creating files, and reading files +*/ var io = { - openPath : function() { - - const - nsIFilePicker = Components.interfaces.nsIFilePicker; - - var fp = Components.classes["@mozilla.org/filepicker;1"] - .createInstance(nsIFilePicker); - fp.init(window, "Dialog Title", nsIFilePicker.modeOpen); - fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText); - var rv = fp.show(); - if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) { - var file = fp.file; - // Get the path as string. Note that you usually won't - // need to work with the string paths. - var path = fp.file.path; - // work with returned nsILocalFile... - } - return path; - }, - appendPath : function(path, contents) { - alert("appended File"); - var file1 = Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile); - file1.initWithPath(path); - // alert("append file nullcheck: "+file1.toString()); - var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"] - .createInstance(Components.interfaces.nsIFileOutputStream); - // use 0x02 | 0x10 to open file for appending. - foStream.init(file1, 0x02 | 0x10, 438, 0); - var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"] - .createInstance(Components.interfaces.nsIConverterOutputStream); - converter.init(foStream, "UTF-8", 0, 0); - converter.writeString(contents); - converter.close(); - }, - newPath : function(path) { - - const - nsIFilePicker = Components.interfaces.nsIFilePicker; - - var fp = Components.classes["@mozilla.org/filepicker;1"] - .createInstance(nsIFilePicker); - fp.init(window, "Dialog Title", nsIFilePicker.modeSave); - fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText); - - var rv = fp.show(); - if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) { - var file = fp.file; - // Get the path as string. Note that you usually won't - // need to work with the string paths. - var path = fp.file.path; - // work with returned nsILocalFile... - - } - return path; - }, - createFile : function(path) { - - alert("created File"); - var file1 = Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile); - file1.initWithPath(path); - - var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"] - .createInstance(Components.interfaces.nsIFileOutputStream); - // use 0x02 | 0x10 to open file for appending. - foStream.init(file1, 0x02 | 0x08 | 0x20, 438, 0); - var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"] - .createInstance(Components.interfaces.nsIConverterOutputStream); - converter.init(foStream, "UTF-8", 0, 0); - - converter.close(); // this closes foStream - }, - getLine : function(path) { - // open an input stream from file - - var file = Components.classes["@mozilla.org/file/local;1"] - .createInstance(Components.interfaces.nsILocalFile); - file.initWithPath(path); - var istream = Components.classes["@mozilla.org/network/file-input-stream;1"] - .createInstance(Components.interfaces.nsIFileInputStream); - istream.init(file, 0x01, 0444, 0); - istream.QueryInterface(Components.interfaces.nsILineInputStream); - - // read lines into array - var line = {}, lines = [], hasmore; - do { - hasmore = istream.readLine(line); - lines.push(line.value); - } while (hasmore); - - istream.close(); - - // do something with read data - return lines; - } + /* + @description sets the paths of the script + @return path of script selected + @see Mozilla Developer Network Example + */ + openPath: function () { + const + nsIFilePicker = Components.interfaces.nsIFilePicker; + var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); + fp.init(window, "Dialog Title", nsIFilePicker.modeOpen); + fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText); + var rv = fp.show(); + if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) { + var file = fp.file; + // Get the path as string. Note that you usually won't + // need to work with the string paths. + var path = fp.file.path; + // work with returned nsILocalFile... + } + return path; + }, + /* + @description appends script by contents of event click + @see Mozilla Developer Network Example + */ + appendPath: function (path, contents) { + alert("appended File"); + var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); + file.initWithPath(path); + // alert("append file nullcheck: "+file1.toString()); + var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); + // use 0x02 | 0x10 to open file for appending. + foStream.init(file, 0x02 | 0x10, 438, 0); + var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream); + converter.init(foStream, "UTF-8", 0, 0); + converter.writeString(contents); + converter.close(); + }, + /* + @description sets path to address of a new file + @return path of new file + @see Mozilla Developer Network Example + */ + newPath: function (path) { + const + nsIFilePicker = Components.interfaces.nsIFilePicker; + var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); + fp.init(window, "Dialog Title", nsIFilePicker.modeSave); + fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText); + var rv = fp.show(); + if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) { + var file = fp.file; + // Get the path as string. Note that you usually won't + // need to work with the string paths. + var path = fp.file.path; + // work with returned nsILocalFile... + } + return path; + }, + /* + @description creates new file from path of newPath + @see Mozilla Developer Network Example + */ + createFile: function (path) { + alert("created File"); + var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); + file.initWithPath(path); + var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); + // use 0x02 | 0x10 to open file for appending. + foStream.init(file, 0x02 | 0x08 | 0x20, 438, 0); + var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream); + converter.init(foStream, "UTF-8", 0, 0); + converter.close(); // this closes foStream + }, + /* + @description gets an entire script into an array, seperated by lines + @return array of lines + @see Mozilla Developer Network Example + */ + getScript: function (path) { + // open an input stream from file + var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); + file.initWithPath(path); + var istream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); + istream.init(file, 0x01, 0444, 0); + istream.QueryInterface(Components.interfaces.nsILineInputStream); + // read lines into array + var line = {}, lines = [], + hasmore; + do { + hasmore = istream.readLine(line); + lines.push(line.value); + } while (hasmore); + istream.close(); + return lines; + } }