home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 October / Gamestar_77_2005-10_dvd.iso / Programy / nsb-install-8-0.exe / chrome / browser.jar / content / browser / bookmarks / bookmarksManager.js < prev    next >
Encoding:
Text File  |  2005-07-29  |  8.1 KB  |  229 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.   const bookmarksFolder = document.getElementById("bookmark-folders-view");
  12.  
  13.   var titleString;
  14.  
  15.   // If we've been opened with a parameter, root the tree on it.
  16.   if ("arguments" in window && window.arguments[0]) {
  17.     var title;
  18.     var uri = window.arguments[0];
  19.     bookmarksView.tree.setAttribute("ref", uri);
  20.     bookmarksFolder.setAttribute("hidden","true")
  21.     document.getElementById("bookmarks-search").setAttribute("hidden","true")
  22.     document.getElementById("bookmark-views-splitter").setAttribute("hidden","true")    
  23.     if (uri.substring(0,5) == "find:") {
  24.       title = BookmarksUtils.getLocaleString("search_results_title");
  25.       // Update the windowtype so that future searches are directed 
  26.       // there and the window is not re-used for bookmarks. 
  27.       windowNode.setAttribute("windowtype", "bookmarks:searchresults");
  28.     }
  29.     else
  30.       title = BookmarksUtils.getProperty(window.arguments[0], NC_NS+"Name");
  31.     
  32.     titleString = BookmarksUtils.getLocaleString("window_title", title);
  33.   }
  34.   else {
  35.     titleString = BookmarksUtils.getLocaleString("bookmarks_title", title);
  36.     // always open the bookmark root folder
  37.     if (!bookmarksFolder.treeBoxObject.view.isContainerOpen(0))
  38.       bookmarksFolder.treeBoxObject.view.toggleOpenState(0);
  39.     bookmarksFolder.treeBoxObject.view.selection.select(0);
  40.   }
  41.  
  42.   bookmarksView.treeBoxObject.selection.select(0);
  43.  
  44.   windowNode.setAttribute("title", titleString);
  45.  
  46.   document.getElementById("CommandUpdate_Bookmarks").setAttribute("commandupdater","true");
  47.   bookmarksView.focus();
  48.  
  49.   BMSVC.transactionManager.AddListener(BookmarkEditMenuTxnListener);
  50.  
  51. }
  52.  
  53. function Shutdown()
  54. {
  55.   BMSVC.transactionManager.RemoveListener(BookmarkEditMenuTxnListener);
  56.   // Store current window position and size in window attributes (for persistence).
  57.   var win = document.getElementById("bookmark-window");
  58.   win.setAttribute("x", screenX);
  59.   win.setAttribute("y", screenY);
  60.   win.setAttribute("height", outerHeight);
  61.   win.setAttribute("width", outerWidth);
  62. }
  63.  
  64. var gConstructedViewMenuSortItems = false;
  65. function fillViewMenu(aEvent)
  66. {
  67.   var adjacentElement = document.getElementById("fill-before-this-node");
  68.   var popupElement = aEvent.target;
  69.   
  70.   var bookmarksView = document.getElementById("bookmarks-view");
  71.   var columns = bookmarksView.columns;
  72.  
  73.   if (!gConstructedViewMenuSortItems) {
  74.     for (var i = 0; i < columns.length; ++i) {
  75.       var accesskey = columns[i].accesskey;
  76.       var menuitem  = document.createElement("menuitem");
  77.       var name      = BookmarksUtils.getLocaleString("SortMenuItem", columns[i].label);
  78.       menuitem.setAttribute("label", name);
  79.       menuitem.setAttribute("accesskey", columns[i].accesskey);
  80.       menuitem.setAttribute("resource", columns[i].resource);
  81.       menuitem.setAttribute("id", "sortMenuItem:" + columns[i].resource);
  82.       menuitem.setAttribute("checked", columns[i].sortActive);
  83.       menuitem.setAttribute("name", "sortSet");
  84.       menuitem.setAttribute("type", "radio");
  85.       
  86.       popupElement.insertBefore(menuitem, adjacentElement);
  87.     }
  88.     
  89.     gConstructedViewMenuSortItems = true;
  90.   }  
  91.  
  92.   const kPrefSvcContractID = "@mozilla.org/preferences-service;1";
  93.   const kPrefSvcIID = Components.interfaces.nsIPrefService;
  94.   var prefSvc = Components.classes[kPrefSvcContractID].getService(kPrefSvcIID);
  95.   var bookmarksSortPrefs = prefSvc.getBranch("browser.bookmarks.sort.");
  96.  
  97.   if (gConstructedViewMenuSortItems) {
  98.     var resource = bookmarksSortPrefs.getCharPref("resource");
  99.     var element = document.getElementById("sortMenuItem:" + resource);
  100.     if (element)
  101.       element.setAttribute("checked", "true");
  102.   }  
  103.  
  104.   var sortAscendingMenu = document.getElementById("ascending");
  105.   var sortDescendingMenu = document.getElementById("descending");
  106.   var noSortMenu = document.getElementById("natural");
  107.   
  108.   sortAscendingMenu.setAttribute("checked", "false");
  109.   sortDescendingMenu.setAttribute("checked", "false");
  110.   noSortMenu.setAttribute("checked", "false");
  111.   var direction = bookmarksSortPrefs.getCharPref("direction");
  112.   if (direction == "natural")
  113.     sortAscendingMenu.setAttribute("checked", "true");
  114.   else if (direction == "ascending") 
  115.     sortDescendingMenu.setAttribute("checked", "true");
  116.   else
  117.     noSortMenu.setAttribute("checked", "true");
  118. }
  119.  
  120. function onViewMenuSortItemSelected(aEvent)
  121. {
  122.   var resource = aEvent.target.getAttribute("resource");
  123.   
  124.   const kPrefSvcContractID = "@mozilla.org/preferences-service;1";
  125.   const kPrefSvcIID = Components.interfaces.nsIPrefService;
  126.   var prefSvc = Components.classes[kPrefSvcContractID].getService(kPrefSvcIID);
  127.   var bookmarksSortPrefs = prefSvc.getBranch("browser.bookmarks.sort.");
  128.  
  129.   switch (resource) {
  130.   case "":
  131.     break;
  132.   case "direction":
  133.     var dirn = bookmarksSortPrefs.getCharPref("direction");
  134.     if (aEvent.target.id == "ascending")
  135.       bookmarksSortPrefs.setCharPref("direction", "natural");
  136.     else if (aEvent.target.id == "descending")
  137.       bookmarksSortPrefs.setCharPref("direction", "ascending");
  138.     else
  139.       bookmarksSortPrefs.setCharPref("direction", "descending");
  140.     break;
  141.   default:
  142.     bookmarksSortPrefs.setCharPref("resource", resource);
  143.     var direction = bookmarksSortPrefs.getCharPref("direction");
  144.     if (direction == "descending")
  145.       bookmarksSortPrefs.setCharPref("direction", "natural");
  146.     break;
  147.   }
  148.  
  149.   aEvent.preventCapture();
  150. }  
  151.  
  152. var gConstructedColumnsMenuItems = false;
  153. function fillColumnsMenu(aEvent) 
  154. {
  155.   var bookmarksView = document.getElementById("bookmarks-view");
  156.   var columns = bookmarksView.columns;
  157.   var i;
  158.  
  159.   if (!gConstructedColumnsMenuItems) {
  160.     for (i = 0; i < columns.length; ++i) {
  161.       var menuitem = document.createElement("menuitem");
  162.       menuitem.setAttribute("label", columns[i].label);
  163.       menuitem.setAttribute("resource", columns[i].resource);
  164.       menuitem.setAttribute("id", "columnMenuItem:" + columns[i].resource);
  165.       menuitem.setAttribute("type", "checkbox");
  166.       menuitem.setAttribute("checked", columns[i].hidden != "true");
  167.       aEvent.target.appendChild(menuitem);
  168.     }
  169.  
  170.     gConstructedColumnsMenuItems = true;
  171.   }
  172.   else {
  173.     for (i = 0; i < columns.length; ++i) {
  174.       var element = document.getElementById("columnMenuItem:" + columns[i].resource);
  175.       if (element && columns[i].hidden != "true")
  176.         element.setAttribute("checked", "true");
  177.     }
  178.   }
  179.   
  180.   aEvent.preventBubble();
  181. }
  182.  
  183. function onViewMenuColumnItemSelected(aEvent)
  184. {
  185.   var resource = aEvent.target.getAttribute("resource");
  186.   if (resource != "") {
  187.     var bookmarksView = document.getElementById("bookmarks-view");
  188.     bookmarksView.toggleColumnVisibility(resource);
  189.   }  
  190.  
  191.   aEvent.preventBubble();
  192. }
  193.  
  194. function onViewSelected(aEvent)
  195. {
  196.   var statusBar = document.getElementById("statusbar-text");
  197.   var displayValue;
  198.   var selection = aEvent.target.getTreeSelection();
  199.   var bookmarksView = document.getElementById("bookmarks-view");
  200.  
  201.   if (selection.length == 0)
  202.       return;
  203.  
  204.   if (aEvent.target.id == "bookmark-folders-view" && selection)
  205.     bookmarksView.tree.setAttribute("ref",selection.item[0].Value);
  206.       
  207.   if (statusBar && selection.length == 1) {
  208.     //protocol broken since we have unique ID...
  209.     //var protocol = selection.protocol[0];
  210.     if (selection.isContainer[0]) {// && protocol != "find" && protocol != "file") {
  211.       RDFC.Init(aEvent.target.db, selection.item[0]);
  212.       var count = 0;
  213.       var children = RDFC.GetElements();
  214.       while (children.hasMoreElements()) {
  215.         if (BookmarksUtils.resolveType(children.getNext()) != "BookmarkSeparator")
  216.           count++;
  217.       }
  218.  
  219.       displayValue = BookmarksUtils.getLocaleString("status_foldercount", String(count));
  220.     }
  221.     else if (selection.type[0] == "Bookmark")
  222.       displayValue = BookmarksUtils.getProperty(selection.item[0], NC_NS+"URL", aEvent.target.db)
  223.     else
  224.       displayValue = "";
  225.     statusBar.label = displayValue;
  226.   }
  227. }
  228.  
  229.