home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / komunikace / netscape / nsb-install-8-1-2.exe / chrome / browser.jar / content / browser / addHeadlines.js < prev    next >
Text File  |  2006-01-06  |  6KB  |  174 lines

  1. // addHeadlines.js
  2. var m_URI;
  3. var m_Title;
  4.  
  5. function init(aEvent)
  6. {
  7.     if (window.arguments && window.arguments.length >= 2) {
  8.         m_URI = window.arguments[0];
  9.         m_Title = window.arguments[1];
  10.     } else if (window.arguments.length == 1){
  11.         m_URI = m_Title = window.arguments[0];
  12.     } else {
  13.         window.close();
  14.         return false;
  15.     }
  16.     document.getElementById("tbTitle").setAttribute("value",m_Title);
  17.     buildTree();
  18. }
  19.  
  20. function uninit(aEvent)
  21. {
  22.   if (aEvent.target != document)
  23.     return;
  24. }
  25.  
  26. function doOK()
  27. {
  28.     var myIndex = document.getElementById('toolbarPicker').currentIndex;
  29.     if (myIndex == -1) return false;
  30.     var myID = tbView.visibleData[myIndex][1];
  31.     if (myID.indexOf("|") > -1 ) {
  32.         var mytbIndex = myID.substr(myID.indexOf("|") +1);
  33.         var mytb = myID.substr(0,myID.indexOf("|"));
  34. //        dump("attempting addLivemark("+m_URI+","+m_URI+","+m_Title+","+mytb+","+mytbIndex+")\n");
  35.         window.opener.spui.addLivemark(m_URI,m_URI,m_Title,mytb,mytbIndex);
  36.     } else {
  37. //        dump("attempting addLivemark("+m_URI+","+m_URI+","+m_Title+","+myID+")\n");
  38.         window.opener.spui.addLivemark(m_URI,m_URI,m_Title,myID);
  39.     }
  40.     return true;
  41. }
  42.  
  43. function doCancel()
  44. {
  45.     return true;
  46. }
  47.  
  48. function buildTree()
  49. {
  50.     var toolbox = window.opener.document.getElementById('navigator-toolbox');
  51.     if (!toolbox) return;
  52.     var mySelect = -1;
  53.     for (var i = toolbox.firstChild; i; i = i.nextSibling) {
  54.         if (i.localName == 'toolbar') {
  55. //            dump('toolbar found, name = '+ i.getAttribute("toolbarname") + " id = " + i.id + "\n");
  56.             tbView.visibleData[tbView.visibleData.length] = [ i.getAttribute("toolbarname"), i.id, false, false, 0 ];
  57.         } else if (i.localName == 'multibar') {
  58. //            dump('multibar found, name = '+ i.getAttribute("toolbarname") + " id = " + i.id + "\n");
  59.             tbView.visibleData[tbView.visibleData.length] = [ i.getAttribute("toolbarname"), i.id, true, true, 0 ];
  60.             tbView.childData[i.id] = [ ];
  61.             var mcount = 0;
  62.             var mSelect = i.getAttribute("multibarselected");
  63. //            dump("mSelect = "+mSelect+"\n");
  64.             var curSet = i.getAttribute("currentset");
  65. //            dump("curSet = "+curSet+"\n");
  66.             var curBar = curSet.split(/;/);
  67. //            dump("curBar = "+curBar+"\n");
  68.             if (curBar.length > mSelect) {
  69.                 var curBarName = curBar[mSelect].split(/:/)[0]
  70.             } else {
  71.                 var curBarName = null;
  72.             }
  73. //            dump("curBarName = "+curBarName+"\n");
  74.             for (var j=i.firstChild;j;mcount++,j=j.nextSibling) {
  75.                 if (j.localName == "multibartray") {
  76. //                    dump("multibartray found, name = " + j.getAttribute("toolbarname") + " id = " + j.id + "\n");
  77.                     tbView.childData[i.id][tbView.childData[i.id].length] = [j.getAttribute("toolbarname"), i.id + "|" + mcount];
  78.                     tbView.visibleData[tbView.visibleData.length] = [ j.getAttribute("toolbarname"), i.id + "|" + mcount, false, false, 1 ];
  79.                     if (curBarName == j.getAttribute("toolbarname")) mySelect = tbView.visibleData.length - 1;
  80.                 }
  81.             }
  82.         }
  83.     }
  84.     document.getElementById("toolbarPicker").view = tbView;
  85.     if (mySelect > -1) document.getElementById("toolbarPicker").view.selection.select(mySelect);
  86. }
  87.  
  88. var tbView = {
  89.     // childData[<id of parent>] = [ <label>, <id> ];
  90.   childData : { },
  91.  
  92.  
  93.   // visibleData[<index>] = [ <label>, <id>, <isContainer>, <isOpen>, <level> ]
  94.   visibleData : [ ],
  95.  
  96.   treeBox: null,
  97.   selection: null,
  98.  
  99.   get rowCount()                     { return this.visibleData.length; },
  100.   setTree: function(treeBox)         { this.treeBox = treeBox; },
  101.   getCellText: function(idx, column) { return this.visibleData[idx][0]; },
  102.   isContainer: function(idx)         { return this.visibleData[idx][2]; },
  103.   isContainerOpen: function(idx)     { return this.visibleData[idx][3]; },
  104.   getLevel: function(idx)            { return this.visibleData[idx][4]; },
  105.   isContainerEmpty: function(idx)    { return false; },
  106.   isSeparator: function(idx)         { return false; },
  107.   isSorted: function()               { return false; },
  108.   isEditable: function(idx, column)  { return false; },
  109.  
  110.   getParentIndex: function(idx) {
  111.     if (this.isContainer(idx)) return -1;
  112.     for (var t = idx - 1; t >= 0 ; t--) {
  113.       if (this.isContainer(t)) return t;
  114.     }
  115.     return -1;
  116.   },
  117.   hasNextSibling: function(idx, after) {
  118.     var thisLevel = this.getLevel(idx);
  119.     for (var t = idx + 1; t < this.visibleData.length; t++) {
  120.       var nextLevel = this.getLevel(t)
  121.       if (nextLevel == thisLevel) return true;
  122.       else if (nextLevel < thisLevel) return false;
  123.     }
  124.     return false;
  125.   },
  126.   toggleOpenState: function(idx) {
  127.     var item = this.visibleData[idx];
  128.     if (!item[2]) return;
  129.  
  130.     if (item[3]) {
  131.       item[3] = false;
  132.  
  133.       var thisLevel = this.getLevel(idx);
  134.       var deletecount = 0;
  135.       for (var t = idx + 1; t < this.visibleData.length; t++) {
  136.         if (this.getLevel(t) > thisLevel) deletecount++;
  137.         else break;
  138.       }
  139.       if (deletecount) {
  140.         this.visibleData.splice(idx + 1, deletecount);
  141.         this.treeBox.rowCountChanged(idx + 1, -deletecount);
  142.       }
  143.     }
  144.     else {
  145.       item[3] = true;
  146.  
  147.       var label = this.visibleData[idx][1];
  148.       var toinsert = this.childData[label];
  149.       for (var i = 0; i < toinsert.length; i++) {
  150.         this.visibleData.splice(idx + i + 1, 0, [toinsert[i][0],toinsert[i][1], false, false, 1]);
  151.       }
  152.       this.treeBox.rowCountChanged(idx + 1, toinsert.length);
  153.     }
  154.   },
  155.  
  156.   getImageSrc: function(idx, column) {
  157.       if (this.isContainer(idx)) return "chrome://browser/skin/tbtree_multibar.png";
  158.       else if (this.getLevel(idx) == 1) {
  159.           var diff = idx - this.getParentIndex(idx);
  160.           return "chrome://browser/skin/tbtree_multibartray"+diff+".png";
  161.       } else return "chrome://browser/skin/tbtree_toolbar.png";
  162.   },
  163.  
  164.   getProgressMode : function(idx,column) {},
  165.   getCellValue: function(idx, column) {},
  166.   cycleHeader: function(col, elem) {},
  167.   selectionChanged: function() {},
  168.   cycleCell: function(idx, column) {},
  169.   performAction: function(action) {},
  170.   performActionOnCell: function(action, index, column) {},
  171.   getRowProperties: function(idx, column, prop) {},
  172.   getCellProperties: function(idx, column, prop) {},
  173.   getColumnProperties: function(column, element, prop) {},
  174. };