Split Files, New Icon, Create File

some of daves work and some of mine. Got a file dialog for creating
files. started to split up the JS file into 2 for simplicity, got an
icon for playback.
This commit is contained in:
Rylan doherty 2013-04-27 21:55:00 -04:00
parent ab4876445f
commit d3edd458a0
5 changed files with 112 additions and 29 deletions

View File

@ -2,7 +2,8 @@
<?xml-stylesheet href="chrome://linktargetfinder/skin/skin.css" type="text/css"?> <?xml-stylesheet href="chrome://linktargetfinder/skin/skin.css" type="text/css"?>
<!DOCTYPE firerecord SYSTEM "chrome://firerecord/locale/translations.dtd"> <!DOCTYPE firerecord SYSTEM "chrome://firerecord/locale/translations.dtd">
<overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <overlay id="sample" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="firerecord.js" /> <script src="fireio.js" type="text/javascript"></script>
<script src="firerecord.js" type="text/javascript"></script>
<menupopup id="menu_ToolsPopup"> <menupopup id="menu_ToolsPopup">
<menuitem label="&runlinktargetfinder;" key="link-target-finder-run-key" oncommand="firerecord.running()"/> <menuitem label="&runlinktargetfinder;" key="link-target-finder-run-key" oncommand="firerecord.running()"/>
@ -11,8 +12,10 @@
<menubar id="xulschoolhello-menubar"> <menubar id="xulschoolhello-menubar">
<menu id="xulschoolhello-greeting-menu" label="testing"> <menu id="xulschoolhello-greeting-menu" label="testing">
<menupopup> <menupopup>
<menuitem label="Choose Text File" <menuitem label="Open File"
oncommand ="firerecord.file()"/> oncommand ="firerecord.openfile()"/>
<menuitem label="New File"
oncommand ="firerecord.newfile()"/>
<menuitem label="Run File" <menuitem label="Run File"
oncommand ="firerecord.readr()"/> oncommand ="firerecord.readr()"/>
</menupopup> </menupopup>
@ -27,17 +30,16 @@
</keyset> </keyset>
<toolbar id="status-bar"> <toolbar id="status-bar">
<statusbarpanel id="link-target-finder-status-bar-icon" label="Record" class="statusbarpanel-iconic" src="chrome://firerecord/skin/toolbar-large.png" tooltiptext="&runlinktargetfinder;" onclick="firerecord.running()" /> <statusbarpanel id="link-target-finder-status-bar-icon" label="Record" class="statusbarpanel-iconic"
src="chrome://firerecord/skin/record.png" tooltiptext="Click to start recording to currently loaded script"
</toolbar> onclick="firerecord.running()" />
<toolbar id="status-bar">
<statusbarpanel id="Recording" type="menu" role="button" label="Record" class="statusbarpanel-iconic" src="chrome://firerecord/skin/toolbar-large.png" tooltiptext="Page to Page Recording" onclick="firerecord.running()" /> </toolbar>
<toolbar id="status-bar">
</toolbar> <statusbarpanel id="Play" type="menu" role="button" label="Play" class="statusbarpanel-iconic"
src="chrome://firerecord/skin/play.png" tooltiptext="Click to playback currently loaded script" onclick="firerecord.readr()" />
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="link-target-finder-toolbar-button" label="firerecord:" class="statusbarpanel-iconic" src="chrome://firerecord/skin/toolbar-large.png" tooltiptext="&runlinktargetfinder;" oncommand="firerecord.running()"/> </toolbar>
</toolbarpalette>

59
chrome/content/fireio.js Normal file
View File

@ -0,0 +1,59 @@
var io = {
openPath : function(){
alert("test2");
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() {
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;
},
}

View File

@ -19,6 +19,8 @@ var firerecord = function () {
appcontent.addEventListener("DOMContentLoaded", firerecord.run, true); appcontent.addEventListener("DOMContentLoaded", firerecord.run, true);
} }
}, },
//Rylan
running: function (){ running: function (){
if(recordingx){ if(recordingx){
recordingx = false; recordingx = false;
@ -35,7 +37,17 @@ var firerecord = function () {
} }
}, },
file: function(){ openfile: function(){
path = io.openPath();
},
newfile: function(){
path = io.newPath();
createFile();
},
//rylan
/*file: function(){
const nsIFilePicker = Components.interfaces.nsIFilePicker; const nsIFilePicker = Components.interfaces.nsIFilePicker;
var fp = Components.classes["@mozilla.org/filepicker;1"] var fp = Components.classes["@mozilla.org/filepicker;1"]
@ -52,7 +64,9 @@ var firerecord = function () {
// work with returned nsILocalFile... // work with returned nsILocalFile...
} }
}, },*/
//rylan
checkpage: function(readloc){ checkpage: function(readloc){
page = window.content.location.href; page = window.content.location.href;
if (page != readloc){ if (page != readloc){
@ -61,6 +75,7 @@ var firerecord = function () {
} }
}, },
//rylan
readr: function(){ readr: function(){
var a= "http://rt.com/news/"; var a= "http://rt.com/news/";
var b= "A"; var b= "A";
@ -73,6 +88,7 @@ var firerecord = function () {
//setTimeout(function(){firerecord.fireExp();},8000); //setTimeout(function(){firerecord.fireExp();},8000);
}, },
//rylan
nullCheck: function(elem){ nullCheck: function(elem){
if(!elem.href){ if(!elem.href){
elem.href = "null"; elem.href = "null";
@ -121,7 +137,11 @@ var firerecord = function () {
} }
return elem; return elem;
},/* },
/*
//rylan
fireExp: function(){ fireExp: function(){
var all = content.document.getElementsByTagName("A"); var all = content.document.getElementsByTagName("A");
for (var i = 0; i < all.length; ++i) { for (var i = 0; i < all.length; ++i) {
@ -133,6 +153,8 @@ var firerecord = function () {
} }
} }
},*/ },*/
//rylan
fire: function(b,c,d,e,f){ fire: function(b,c,d,e,f){
@ -233,6 +255,8 @@ var firerecord = function () {
} }
}, },
run : function () { run : function () {
var head = content.document.getElementsByTagName("head")[0], var head = content.document.getElementsByTagName("head")[0],
@ -272,7 +296,7 @@ var firerecord = function () {
case "INPUT": case "INPUT":
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected"; elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
elm.addEventListener("click", handleType, false); elm.addEventListener("keyup", handleType, false);
break; break;
case "A": case "A":
@ -316,8 +340,7 @@ var firerecord = function () {
elm.addEventListener("click", handleEvent, false); elm.addEventListener("click", handleEvent, false);
break; break;
case "TABLE": case "TABLE":
info[1] = all[i].getAttribute("summmary");
info[2] = all[i].getAttribute("caption");
elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected"; elm.className += ((elm.className.length > 0) ? " " : "") + "link-target-finder-selected";
elm.addEventListener("click", handleEvent, false); elm.addEventListener("click", handleEvent, false);
break; break;
@ -339,8 +362,7 @@ var firerecord = function () {
}; };
//Need to add author to this part... //rylan
//Need to add author to this part...
function handleEvent(e) { function handleEvent(e) {
var targ; var targ;
if (!e) { if (!e) {
@ -392,12 +414,12 @@ var firerecord = function () {
taginfo[2] = targ.src; taginfo[2] = targ.src;
break; break;
case "INPUT": /*case "INPUT":
taginfo[1] = targ.name; taginfo[1] = targ.name;
taginfo[2] = targ.type; taginfo[2] = targ.type;
taginfo[3] = targ.value; taginfo[3] = targ.value;
break; break;*/
case "LINK": case "LINK":
taginfo[1] = targ.href; taginfo[1] = targ.href;
taginfo[2] = targ.type; taginfo[2] = targ.type;
@ -459,18 +481,18 @@ var firerecord = function () {
var contents = taginfo.join(' :: ')+"\n"; var contents = taginfo.join(' :: ')+"\n";
appendFile(window.content.location.href+"\n"); io.appendPath(path, window.content.location.href+"\n");
appendFile(contents); io.appendPath(path, contents);
e.cancelBubble = true; e.cancelBubble = true;
}; };
}(); }();
function createFile(contents) { function createFile() {
alert("created File"); alert("created File");
var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file1.initWithPath("C:\\test\\" + "test.txt"); file1.initWithPath(path);
//alert("create file nullcheck" +file1.toString()); //alert("create file nullcheck" +file1.toString());
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
// use 0x02 | 0x10 to open file for appending. // use 0x02 | 0x10 to open file for appending.
@ -478,7 +500,7 @@ function createFile(contents) {
var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"]. var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
createInstance(Components.interfaces.nsIConverterOutputStream); createInstance(Components.interfaces.nsIConverterOutputStream);
converter.init(foStream, "UTF-8", 0, 0); converter.init(foStream, "UTF-8", 0, 0);
converter.writeString(contents.toString());
converter.close(); // this closes foStream converter.close(); // this closes foStream
} }

BIN
skin/play.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
skin/record.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 979 B