зеркало из https://github.com/mozilla/gecko-dev.git
82 строки
3.1 KiB
JavaScript
82 строки
3.1 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
const kFileOutStreamCID = "@mozilla.org/network/file-output-stream;1";
|
|
const nsIFileOutputStream = Components.interfaces.nsIFileOutputStream;
|
|
|
|
var cmdFileController =
|
|
{
|
|
supportsCommand: function(aCommand)
|
|
{
|
|
switch(aCommand) {
|
|
case 'cmd_fl_save':
|
|
case 'cmd_fl_import':
|
|
return true;
|
|
default:
|
|
}
|
|
return false;
|
|
},
|
|
isCommandEnabled: function(aCommand)
|
|
{
|
|
return this.supportsCommand(aCommand);
|
|
},
|
|
doCommand: function(aCommand)
|
|
{
|
|
switch(aCommand) {
|
|
case 'cmd_fl_save':
|
|
var sink = new Object;
|
|
sink.write = function(aContent, aCount)
|
|
{
|
|
// replace NC:succ with NC:orig_succ,
|
|
// so the rdf stuff differs
|
|
var content = aContent.replace(/NC:succ/g,"NC:orig_succ");
|
|
content = content.replace(/NC:failCount/g,"NC:orig_failCount");
|
|
this.mSink.write(content, content.length);
|
|
return aCount;
|
|
};
|
|
var fp = doCreateRDFFP('Xalan results',
|
|
nsIFilePicker.modeSave);
|
|
var res = fp.show();
|
|
|
|
if (res == nsIFilePicker.returnOK ||
|
|
res == nsIFilePicker.returnReplace) {
|
|
var serial = doCreate(kRDFXMLSerializerID,
|
|
nsIRDFXMLSerializer);
|
|
serial.init(view.mResultDS);
|
|
serial.QueryInterface(nsIRDFXMLSource);
|
|
var fl = fp.file;
|
|
var fstream = doCreate(kFileOutStreamCID,
|
|
nsIFileOutputStream);
|
|
fstream.init(fl, 26, 420, 0);
|
|
sink.mSink = fstream;
|
|
serial.Serialize(sink);
|
|
}
|
|
break;
|
|
case 'cmd_fl_import':
|
|
var fp = doCreateRDFFP('Previous Xalan results',
|
|
nsIFilePicker.modeLoad);
|
|
var res = fp.show();
|
|
|
|
if (res == nsIFilePicker.returnOK) {
|
|
var fl = fp.file;
|
|
if (view.mPreviousResultDS) {
|
|
view.database.RemoveDataSource(view.mPreviousResultDS);
|
|
view.mPreviousResultDS = null;
|
|
}
|
|
view.mPreviousResultDS = kRDFSvc.GetDataSource(fp.fileURL.spec);
|
|
view.database.AddDataSource(view.mPreviousResultDS);
|
|
}
|
|
|
|
document.getElementById('obs_orig_success')
|
|
.setAttribute('hidden','false');
|
|
break;
|
|
default:
|
|
alert('Unknown Command'+aCommand);
|
|
}
|
|
}
|
|
};
|
|
|
|
registerController(cmdFileController);
|