- 現在選択されているフォルダを得る
- そのフォルダのルートからURIを得る
- RDFサービスからフィルタ・リストを得る
const Cc = Components.classes;
const Ci = Components.interfaces;
var folder = GetFirstSelectedMsgFolder();
if ( folder && folder.server.type == 'none' && folder.server.isDeferredTo ) {
var defaultServer = accountManager.defaultAccount.incomingServer;
if ( defaultServer.rootMsgFolder == folder.server.rootFolder ) {
folder = defaultServer.rootFolder;
}
}
var uri;
try {
var rootFolder = folder.server.rootFolder;
if ( rootFolder.isServer && rootFolder.server.canHaveFilters ) {
uri = (rootFolder.server.type == 'nntp') ? folder.URI : rootFolder.URI;
}
} catch (ex) { Components.utils.reportError(ex); }
var rdf = Cc['@mozilla.org/rdf/rdf-service;1'].getService(Ci.nsIRDFService);
var filterList = rdf.GerResource(uri).GerDelegate('filter',Ci.nsIMsgFilterList);