home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / komunikace / netscape / nsb-install-8-1-2.exe / components / mdn-service.js < prev    next >
Text File  |  2006-01-06  |  4KB  |  117 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is mozilla.org code.
  13.  * 
  14.  * The Initial Developer of the Original Code is Netscape
  15.  * Communications Corporation.  Portions created by Netscape are
  16.  * Copyright (C) 1999 Netscape Communications Corporation.  All
  17.  * Rights Reserved.
  18.  * 
  19.  * Contributor(s): 
  20.  * Seth Spitzer <sspitzer@netscape.com>
  21.  */
  22.  
  23.  
  24. /* components defined in this file */
  25. const MDN_EXTENSION_SERVICE_CONTRACTID =
  26.     "@mozilla.org/accountmanager/extension;1?name=mdn";
  27. const MDN_EXTENSION_SERVICE_CID =
  28.     Components.ID("{e007d92e-1dd1-11b2-a61e-dc962c9b8571}");
  29.  
  30. /* interfaces used in this file */
  31. const nsIMsgAccountManagerExtension  = Components.interfaces.nsIMsgAccountManagerExtension;
  32. const nsICategoryManager = Components.interfaces.nsICategoryManager;
  33. const nsISupports        = Components.interfaces.nsISupports;
  34.  
  35. function MDNService()
  36. {}
  37.  
  38. MDNService.prototype.name = "mdn";
  39. MDNService.prototype.chromePackageName = "messenger";
  40. MDNService.prototype.showPanel =
  41.  
  42. function (server)
  43.  
  44. {
  45.   // don't show the panel for news accounts
  46.   return (server.type != "nntp");
  47. }
  48.  
  49. /* factory for command line handler service (MDNService) */
  50. var MDNFactory = new Object();
  51.  
  52. MDNFactory.createInstance =
  53. function (outer, iid) {
  54.   if (outer != null)
  55.     throw Components.results.NS_ERROR_NO_AGGREGATION;
  56.  
  57.   if (!iid.equals(nsIMsgAccountManagerExtension) && !iid.equals(nsISupports))
  58.     throw Components.results.NS_ERROR_INVALID_ARG;
  59.  
  60.   return new MDNService();
  61. }
  62.  
  63.  
  64. var MDNModule = new Object();
  65.  
  66. MDNModule.registerSelf =
  67. function (compMgr, fileSpec, location, type)
  68. {
  69.   debug("*** Registering mdn account manager extension.\n");
  70.   compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
  71.   compMgr.registerFactoryLocation(MDN_EXTENSION_SERVICE_CID,
  72.                                   "MDN Account Manager Extension Service",
  73.                                   MDN_EXTENSION_SERVICE_CONTRACTID, 
  74.                                   fileSpec,
  75.                                   location, 
  76.                                   type);
  77.   catman = Components.classes["@mozilla.org/categorymanager;1"].getService(nsICategoryManager);
  78.   catman.addCategoryEntry("mailnews-accountmanager-extensions",
  79.                             "mdn account manager extension",
  80.                             MDN_EXTENSION_SERVICE_CONTRACTID, true, true);
  81. }
  82.  
  83. MDNModule.unregisterSelf =
  84. function(compMgr, fileSpec, location)
  85. {
  86.   compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
  87.   compMgr.unregisterFactoryLocation(MDN_EXTENSION_SERVICE_CID, fileSpec);
  88.   catman = Components.classes["@mozilla.org/categorymanager;1"].getService(nsICategoryManager);
  89.   catman.deleteCategoryEntry("mailnews-accountmanager-extensions",
  90.                              MDN_EXTENSION_SERVICE_CONTRACTID, true);
  91. }
  92.  
  93. MDNModule.getClassObject =
  94. function (compMgr, cid, iid) {
  95.   if (cid.equals(MDN_EXTENSION_SERVICE_CID))
  96.     return MDNFactory;
  97.  
  98.  
  99.   if (!iid.equals(Components.interfaces.nsIFactory))
  100.     throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
  101.  
  102.   throw Components.results.NS_ERROR_NO_INTERFACE;    
  103. }
  104.  
  105. MDNModule.canUnload =
  106. function(compMgr)
  107. {
  108.   return true;
  109. }
  110.  
  111. /* entrypoint */
  112. function NSGetModule(compMgr, fileSpec) {
  113.   return MDNModule;
  114. }
  115.  
  116.  
  117.