home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Komunik / phoenix / chrome / browser.jar / content / browser / bookmarks / bookmarksManager.js < prev    next >
Text File  |  2002-10-10  |  7KB  |  198 lines

  1.  
  2. var gSearchBox;
  3.  
  4. ////////////////////////////////////////////////////////////////////////////////
  5. // Initialize the command controllers, set focus, tree root, 
  6. // window title state, etc. 
  7. function Startup()
  8. {
  9.   const windowNode = document.getElementById("bookmark-window");
  10.   const bookmarksView = document.getElementById("bookmarks-view");
  11.   gSearchBox = document.getElementById("search-box");
  12.   var titleString;
  13.  
  14.   // If we've been opened with a parameter, root the tree on it.
  15.   if ("arguments" in window && window.arguments[0]) {
  16.     var title;
  17.     var uri = window.arguments[0];
  18.     bookmarksView.tree.setAttribute("ref", uri);
  19.     document.getElementById("bookmarks-search").setAttribute("hidden","true")
  20.     if (uri.substring(0,5) == "find:") {
  21.       title = BookmarksUtils.getLocaleString("search_results_title");
  22.       // Update the windowtype so that future searches are directed 
  23.       // there and the window is not re-used for bookmarks. 
  24.       windowNode.setAttribute("windowtype", "bookmarks:searchresults");
  25.     }
  26.     else
  27.       title = BookmarksUtils.getProperty(window.arguments[0], NC_NS+"Name");
  28.     
  29.     titleString = BookmarksUtils.getLocaleString("window_title", title);
  30.     windowNode.setAttribute("title", titleString);
  31.   }
  32.   else {
  33.     const kProfileContractID = "@mozilla.org/profile/manager;1";
  34.     const kProfileIID = Components.interfaces.nsIProfile;
  35.     const kProfile = Components.classes[kProfileContractID].getService(kProfileIID);
  36.     var length = {value:0};
  37.     var profileList = kProfile.getProfileList(length);
  38.     // unset the default BM title if the user has more than one profile
  39.     // or if he/she has changed the name of the default one.
  40.     // the profile "default" is not localizable.
  41.     if (length.value > 1 || kProfile.currentProfile.toLowerCase() != "default") {
  42.       titleString = BookmarksUtils.getLocaleString("bookmarks_root", kProfile.currentProfile);
  43.       windowNode.setAttribute("title", titleString);
  44.     }
  45.   }
  46.   gBMtxmgr = BookmarksUtils.getTransactionManager();
  47.   gBMtxmgr.AddListener(BookmarkMenuTransactionListener);
  48.   BookmarkMenuTransactionListener.updateMenuItem(gBMtxmgr);
  49.  
  50.   bookmarksView.treeBoxObject.selection.select(0);
  51.   bookmarksView.tree.focus();
  52. }
  53.  
  54. function Shutdown ()
  55. {
  56.  
  57.   // Remove the transaction listeneer
  58.   gBMtxmgr.RemoveListener(BookmarkMenuTransactionListener);
  59.  
  60.   // Store current window position and size in window attributes (for persistence).
  61.   var win = document.getElementById("bookmark-window");
  62.   win.setAttribute("x", screenX);
  63.   win.setAttribute("y", screenY);
  64.   dump('outerh'+outerHeight+"\n")
  65.   win.setAttribute("height", outerHeight);
  66.   win.setAttribute("width", outerWidth);
  67. }
  68.  
  69. var gConstructedViewMenuSortItems = false;
  70. function fillViewMenu(aEvent)
  71. {
  72.   var adjacentElement = document.getElementById("fill-before-this-node");
  73.   var popupElement = aEvent.target;
  74.   
  75.   var bookmarksView = document.getElementById("bookmarks-view");
  76.   var columns = bookmarksView.columns;
  77.  
  78.   if (!gConstructedViewMenuSortItems) {
  79.     for (var i = 0; i < columns.length; ++i) {
  80.       var accesskey = columns[i].accesskey;
  81.       var menuitem  = document.createElement("menuitem");
  82.       var name      = BookmarksUtils.getLocaleString("SortMenuItem", columns[i].label);
  83.       menuitem.setAttribute("label", name);
  84.       menuitem.setAttribute("accesskey", columns[i].accesskey);
  85.       menuitem.setAttribute("resource", columns[i].resource);
  86.       menuitem.setAttribute("id", "sortMenuItem:" + columns[i].resource);
  87.       menuitem.setAttribute("checked", columns[i].sortActive);
  88.       menuitem.setAttribute("name", "sortSet");
  89.       menuitem.setAttribute("type", "radio");
  90.       
  91.       popupElement.insertBefore(menuitem, adjacentElement);
  92.     }
  93.     
  94.     gConstructedViewMenuSortItems = true;
  95.   }  
  96.  
  97.   const kPrefSvcContractID = "@mozilla.org/preferences;1";
  98.   const kPrefSvcIID = Components.interfaces.nsIPrefService;
  99.   var prefSvc = Components.classes[kPrefSvcContractID].getService(kPrefSvcIID);
  100.   var bookmarksSortPrefs = prefSvc.getBranch("browser.bookmarks.sort.");
  101.  
  102.   if (gConstructedViewMenuSortItems) {
  103.     var resource = bookmarksSortPrefs.getCharPref("resource");
  104.     var element = document.getElementById("sortMenuItem:" + resource);
  105.     if (element)
  106.       element.setAttribute("checked", "true");
  107.   }  
  108.  
  109.   var sortAscendingMenu = document.getElementById("ascending");
  110.   var sortDescendingMenu = document.getElementById("descending");
  111.   var noSortMenu = document.getElementById("natural");
  112.   
  113.   sortAscendingMenu.setAttribute("checked", "false");
  114.   sortDescendingMenu.setAttribute("checked", "false");
  115.   noSortMenu.setAttribute("checked", "false");
  116.   var direction = bookmarksSortPrefs.getCharPref("direction");
  117.   if (direction == "natural")
  118.     sortAscendingMenu.setAttribute("checked", "true");
  119.   else if (direction == "ascending") 
  120.     sortDescendingMenu.setAttribute("checked", "true");
  121.   else
  122.     noSortMenu.setAttribute("checked", "true");
  123. }
  124.  
  125. function onViewMenuSortItemSelected(aEvent)
  126. {
  127.   var resource = aEvent.target.getAttribute("resource");
  128.   
  129.   const kPrefSvcContractID = "@mozilla.org/preferences;1";
  130.   const kPrefSvcIID = Components.interfaces.nsIPrefService;
  131.   var prefSvc = Components.classes[kPrefSvcContractID].getService(kPrefSvcIID);
  132.   var bookmarksSortPrefs = prefSvc.getBranch("browser.bookmarks.sort.");
  133.  
  134.   switch (resource) {
  135.   case "":
  136.     break;
  137.   case "direction":
  138.     var dirn = bookmarksSortPrefs.getCharPref("direction");
  139.     if (aEvent.target.id == "ascending")
  140.       bookmarksSortPrefs.setCharPref("direction", "natural");
  141.     else if (aEvent.target.id == "descending")
  142.       bookmarksSortPrefs.setCharPref("direction", "ascending");
  143.     else
  144.       bookmarksSortPrefs.setCharPref("direction", "descending");
  145.     break;
  146.   default:
  147.     bookmarksSortPrefs.setCharPref("resource", resource);
  148.     var direction = bookmarksSortPrefs.getCharPref("direction");
  149.     if (direction == "descending")
  150.       bookmarksSortPrefs.setCharPref("direction", "natural");
  151.     break;
  152.   }
  153.  
  154.   aEvent.preventCapture();
  155. }  
  156.  
  157. var gConstructedColumnsMenuItems = false;
  158. function fillColumnsMenu(aEvent) 
  159. {
  160.   var bookmarksView = document.getElementById("bookmarks-view");
  161.   var columns = bookmarksView.columns;
  162.   var i;
  163.  
  164.   if (!gConstructedColumnsMenuItems) {
  165.     for (i = 0; i < columns.length; ++i) {
  166.       var menuitem = document.createElement("menuitem");
  167.       menuitem.setAttribute("label", columns[i].label);
  168.       menuitem.setAttribute("resource", columns[i].resource);
  169.       menuitem.setAttribute("id", "columnMenuItem:" + columns[i].resource);
  170.       menuitem.setAttribute("type", "checkbox");
  171.       menuitem.setAttribute("checked", columns[i].hidden != "true");
  172.       aEvent.target.appendChild(menuitem);
  173.     }
  174.  
  175.     gConstructedColumnsMenuItems = true;
  176.   }
  177.   else {
  178.     for (i = 0; i < columns.length; ++i) {
  179.       var element = document.getElementById("columnMenuItem:" + columns[i].resource);
  180.       if (element && columns[i].hidden != "true")
  181.         element.setAttribute("checked", "true");
  182.     }
  183.   }
  184.   
  185.   aEvent.preventBubble();
  186. }
  187.  
  188. function onViewMenuColumnItemSelected(aEvent)
  189. {
  190.   var resource = aEvent.target.getAttribute("resource");
  191.   if (resource != "") {
  192.     var bookmarksView = document.getElementById("bookmarks-view");
  193.     bookmarksView.toggleColumnVisibility(resource);
  194.   }  
  195.  
  196.   aEvent.preventBubble();
  197. }
  198.