home *** CD-ROM | disk | FTP | other *** search
/ ftp.swcp.com / ftp.swcp.com.zip / ftp.swcp.com / mac / mozilla-macos9-1.3.1.sea.bin / Mozilla1.3.1 / Chrome / comm.jar / content / communicator / bookmarks / oTest.xul < prev    next >
Extensible Markup Language  |  2003-06-08  |  6KB  |  163 lines

  1. <?xml version="1.0"?>
  2.  
  3. <?xml-stylesheet href="chrome://communicator/skin/"?>
  4. <?xml-stylesheet href="chrome://communicator/content/bookmarks/oTest.css"?>
  5.  
  6. <?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
  7.  
  8. <window id="bookmarksTreeTest" width="640" height="480"
  9.         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  10.         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  11.         orient="vertical"
  12.         onload="Startup();">
  13.  
  14.  
  15.   <script>
  16.   <![CDATA[
  17.     var bookmarksBuilderObserver = {
  18.       onToggleOpenState: function (aIndex) {
  19.         dump("*** onToggleOpenState(" + aIndex + ");\n");
  20.       },
  21.  
  22.       onCycleHeader: function (aColID, aDOMElement) {
  23.         dump("*** onCycleHeader(" + aColID + ", " + aDOMElement + ");\n");
  24.       },
  25.  
  26.       onCycleCell: function (aIndex, aColID) {
  27.         dump("*** onCycleCell(" + aIndex + ", " + aColID + ");\n");
  28.       },
  29.  
  30.       onSelectionChanged: function () {
  31.         dump("*** onSelectionChanged\n");
  32.       },
  33.  
  34.       isEditable: function (aIndex, aColID) {
  35.         dump("*** isEditable(" + aIndex + ", " + aColID + ");\n");
  36.         return aColID == "NameColumn";
  37.       },
  38.  
  39.       onSetCellText: function (aIndex, aColID, aValue) {
  40.         dump("*** onSetCellText(" + aIndex + ", " + aColID + ", " + aValue + ");\n");
  41.       },
  42.  
  43.       onPerformAction: function (aAction) {
  44.         dump("*** onPerformAction(" + aAction + ");\n");
  45.       },
  46.  
  47.       onPerformActionOnRow: function (aAction, aIndex) {
  48.         dump("*** onPerformActionOnRow(" + aAction + ", " + aIndex + ");\n");
  49.       },
  50.  
  51.       onPerformActionOnCell: function (aAction, aIndex, aColID) {
  52.         dump("*** onPerformActionOnCell(" + aAction + ", " + aIndex + ", " + aColID + ");\n");
  53.       }
  54.     };
  55.  
  56.     function Startup()
  57.     {
  58.       var tree = document.getElementById("tree");
  59.       var builder = tree.builder.QueryInterface(Components.interfaces.nsIXULTreeBuilder);
  60.       builder.addObserver(bookmarksBuilderObserver);
  61.     }
  62.  
  63.     function getItemRect(aEvent)
  64.     {
  65.       var tree = document.getElementById("tree-proper");
  66.       var obo = tree.boxObject.QueryInterface(Components.interfaces.nsITreeBoxObject);  
  67.       var row = { };
  68.       var col = { };
  69.       var elt = { };
  70.       obo.getCellAt(aEvent.clientX, aEvent.clientY, row, col, elt);
  71.  
  72.       var x = { };
  73.       var y = { };
  74.       var w = { };
  75.       var h = { };
  76.       var crp = { };
  77.       obo.getCoordsForCellItem(row.value, col.value, elt.value, x, y, w, h, crp);
  78.       dump("*** (x,y) = (" + x.value + "," + y.value + "); (w,h) = (" + w.value + "," + h.value + ");\n");
  79.     }
  80.  
  81.     const kRDF_NS = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
  82.     function createContextMenu (aEvent)
  83.     {
  84.       var tree = document.getElementById("tree-proper");
  85.       var obo = tree.boxObject.QueryInterface(Components.interfaces.nsITreeBoxObject);
  86.       var row = { };
  87.       var col = { };
  88.       var elt = { };
  89.       obo.getCellAt(aEvent.clientX, aEvent.clientY, row, col, elt);
  90.       dump("*** row.value = " + row.value + "\n") 
  91.       
  92.       var treeBody = document.getElementById("tree");
  93.       var rowResource = treeBody.builder.getResourceAtIndex(row.value);
  94.       
  95.       const kRDFSvcContractID = "@mozilla.org/rdf/rdf-service;1";
  96.       const kRDFSvcIID = Components.interfaces.nsIRDFService;
  97.       const kRDFSvc = Components.classes[kRDFSvcContractID].getService(kRDFSvcIID);
  98.       var database = treeBody.database;
  99.  
  100.       const krType = kRDFSvc.GetResource(kRDF_NS + "type");
  101.       var typeNode = kDatabase.GetTarget(rowResource, krType, true);
  102.       typeNode = typeNode.QueryInterface(Components.interfaces.nsIRDFResource);
  103.       dump("*** typeNode = " + typeNode.Value + "\n");
  104.       aEvent.preventBubble();
  105.     }
  106.   ]]>
  107.   </script>
  108.  
  109.   <popupset id="contextSet">
  110.     <popup id="bookmarkContextMenu" onpopupshowing="createContextMenu(event);"/>
  111.   </popupset>
  112.  
  113.   <toolbox>
  114.     <toolbar>
  115.       <button class="button-toolbar-2" label="Foopy Noopy" oncommand="alert('hi');"/>
  116.     </toolbar>
  117.   </toolbox>
  118.  
  119.   <stack>
  120.     <button label="Foopy Noopy" flex="1"/>
  121.     <bulletinboard flex="1">
  122.       <textbox value="NerpNerp" left="10" top="50" onblur="this.setAttribute('hidden','true');"/>
  123.     </bulletinboard>  
  124.   </stack>
  125.  
  126.   <tree flex="1" flags="dont-test-empty" id="tree-proper">
  127.     <treecols>
  128.       <treecol id="NameColumn"
  129.                    class="treecol-header treecol-inset-header sortDirectionIndicator"
  130.                    flex="1"
  131.                    sort="rdf:http://home.netscape.com/NC-rdf#Name"
  132.                    sortActive="true"
  133.                    label="Name"
  134.                    persist="width hidden sortActive sortDirection"
  135.                    primary="true" />
  136.  
  137.       <splitter class="tree-splitter"/>
  138.  
  139.       <treecol id="URLColumn"
  140.                    class="treecol-header treecol-inset-header sortDirectionIndicator"
  141.                    flex="1"
  142.                    sort="rdf:http://home.netscape.com/NC-rdf#URL"
  143.                    label="Location"
  144.                    persist="width hidden sortActive sortDirection" />
  145.     </treecols>
  146.  
  147.     <treebody id="tree" datasources="rdf:bookmarks rdf:internetsearch rdf:files" flex="1"
  148.                   onclick="getItemRect(event);" ref="NC:BookmarksRoot">
  149.       <template>
  150.         <treerow uri="rdf:*" properties="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type rdf:http://home.netscape.com/NC-rdf#loading">
  151.           <treecell ref="NameColumn"
  152.                         label="rdf:http://home.netscape.com/NC-rdf#Name" />
  153.  
  154.           <treecell ref="URLColumn"
  155.                         label="rdf:http://home.netscape.com/NC-rdf#URL" />
  156.         </treerow>
  157.       </template>
  158.     </treebody>
  159.   </tree>
  160.  
  161. </window>
  162.  
  163.