mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 18:55:30 +00:00
d38a0937d9
Removing support for <outliner> tags Removing <tree> layout code and moving <tree> tags to outliner layout Convert all usage of <outliner> to tree tags Convert all usage of <tree> tags to new <tree> syntax or <listbox> r=cmanske,varga sr=hyatt,sspitzer a=asa Also includes fixes by Jan Varga (varga@utcruk.sk) for bugs 132020, 133451, 131393, 115894, and 129327
163 lines
5.5 KiB
XML
163 lines
5.5 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<?xml-stylesheet href="chrome://communicator/skin/"?>
|
|
<?xml-stylesheet href="chrome://communicator/content/bookmarks/oTest.css"?>
|
|
|
|
<?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
|
|
|
|
<window id="bookmarksTreeTest" width="640" height="480"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
orient="vertical"
|
|
onload="Startup();">
|
|
|
|
|
|
<script>
|
|
<![CDATA[
|
|
var bookmarksBuilderObserver = {
|
|
onToggleOpenState: function (aIndex) {
|
|
dump("*** onToggleOpenState(" + aIndex + ");\n");
|
|
},
|
|
|
|
onCycleHeader: function (aColID, aDOMElement) {
|
|
dump("*** onCycleHeader(" + aColID + ", " + aDOMElement + ");\n");
|
|
},
|
|
|
|
onCycleCell: function (aIndex, aColID) {
|
|
dump("*** onCycleCell(" + aIndex + ", " + aColID + ");\n");
|
|
},
|
|
|
|
onSelectionChanged: function () {
|
|
dump("*** onSelectionChanged\n");
|
|
},
|
|
|
|
isEditable: function (aIndex, aColID) {
|
|
dump("*** isEditable(" + aIndex + ", " + aColID + ");\n");
|
|
return aColID == "NameColumn";
|
|
},
|
|
|
|
onSetCellText: function (aIndex, aColID, aValue) {
|
|
dump("*** onSetCellText(" + aIndex + ", " + aColID + ", " + aValue + ");\n");
|
|
},
|
|
|
|
onPerformAction: function (aAction) {
|
|
dump("*** onPerformAction(" + aAction + ");\n");
|
|
},
|
|
|
|
onPerformActionOnRow: function (aAction, aIndex) {
|
|
dump("*** onPerformActionOnRow(" + aAction + ", " + aIndex + ");\n");
|
|
},
|
|
|
|
onPerformActionOnCell: function (aAction, aIndex, aColID) {
|
|
dump("*** onPerformActionOnCell(" + aAction + ", " + aIndex + ", " + aColID + ");\n");
|
|
}
|
|
};
|
|
|
|
function Startup()
|
|
{
|
|
var tree = document.getElementById("tree");
|
|
var builder = tree.builder.QueryInterface(Components.interfaces.nsIXULTreeBuilder);
|
|
builder.addObserver(bookmarksBuilderObserver);
|
|
}
|
|
|
|
function getItemRect(aEvent)
|
|
{
|
|
var tree = document.getElementById("tree-proper");
|
|
var obo = tree.boxObject.QueryInterface(Components.interfaces.nsITreeBoxObject);
|
|
var row = { };
|
|
var col = { };
|
|
var elt = { };
|
|
obo.getCellAt(aEvent.clientX, aEvent.clientY, row, col, elt);
|
|
|
|
var x = { };
|
|
var y = { };
|
|
var w = { };
|
|
var h = { };
|
|
var crp = { };
|
|
obo.getCoordsForCellItem(row.value, col.value, elt.value, x, y, w, h, crp);
|
|
dump("*** (x,y) = (" + x.value + "," + y.value + "); (w,h) = (" + w.value + "," + h.value + ");\n");
|
|
}
|
|
|
|
const kRDF_NS = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
|
|
function createContextMenu (aEvent)
|
|
{
|
|
var tree = document.getElementById("tree-proper");
|
|
var obo = tree.boxObject.QueryInterface(Components.interfaces.nsITreeBoxObject);
|
|
var row = { };
|
|
var col = { };
|
|
var elt = { };
|
|
obo.getCellAt(aEvent.clientX, aEvent.clientY, row, col, elt);
|
|
dump("*** row.value = " + row.value + "\n")
|
|
|
|
var treeBody = document.getElementById("tree");
|
|
var rowResource = treeBody.builder.getResourceAtIndex(row.value);
|
|
|
|
const kRDFSvcContractID = "@mozilla.org/rdf/rdf-service;1";
|
|
const kRDFSvcIID = Components.interfaces.nsIRDFService;
|
|
const kRDFSvc = Components.classes[kRDFSvcContractID].getService(kRDFSvcIID);
|
|
var database = treeBody.database;
|
|
|
|
const krType = kRDFSvc.GetResource(kRDF_NS + "type");
|
|
var typeNode = kDatabase.GetTarget(rowResource, krType, true);
|
|
typeNode = typeNode.QueryInterface(Components.interfaces.nsIRDFResource);
|
|
dump("*** typeNode = " + typeNode.Value + "\n");
|
|
aEvent.preventBubble();
|
|
}
|
|
]]>
|
|
</script>
|
|
|
|
<popupset id="contextSet">
|
|
<popup id="bookmarkContextMenu" onpopupshowing="createContextMenu(event);"/>
|
|
</popupset>
|
|
|
|
<toolbox>
|
|
<toolbar>
|
|
<button class="button-toolbar-2" label="Foopy Noopy" oncommand="alert('hi');"/>
|
|
</toolbar>
|
|
</toolbox>
|
|
|
|
<stack>
|
|
<button label="Foopy Noopy" flex="1"/>
|
|
<bulletinboard flex="1">
|
|
<textbox value="NerpNerp" left="10" top="50" onblur="this.setAttribute('hidden','true');"/>
|
|
</bulletinboard>
|
|
</stack>
|
|
|
|
<tree flex="1" flags="dont-test-empty" id="tree-proper">
|
|
<treecols>
|
|
<treecol id="NameColumn"
|
|
class="treecol-header treecol-inset-header sortDirectionIndicator"
|
|
flex="1"
|
|
sort="rdf:http://home.netscape.com/NC-rdf#Name"
|
|
sortActive="true"
|
|
label="Name"
|
|
persist="width hidden sortActive sortDirection"
|
|
primary="true" />
|
|
|
|
<splitter class="tree-splitter"/>
|
|
|
|
<treecol id="URLColumn"
|
|
class="treecol-header treecol-inset-header sortDirectionIndicator"
|
|
flex="1"
|
|
sort="rdf:http://home.netscape.com/NC-rdf#URL"
|
|
label="Location"
|
|
persist="width hidden sortActive sortDirection" />
|
|
</treecols>
|
|
|
|
<treebody id="tree" datasources="rdf:bookmarks rdf:internetsearch rdf:files" flex="1"
|
|
onclick="getItemRect(event);" ref="NC:BookmarksRoot">
|
|
<template>
|
|
<treerow uri="rdf:*" properties="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type rdf:http://home.netscape.com/NC-rdf#loading">
|
|
<treecell ref="NameColumn"
|
|
label="rdf:http://home.netscape.com/NC-rdf#Name" />
|
|
|
|
<treecell ref="URLColumn"
|
|
label="rdf:http://home.netscape.com/NC-rdf#URL" />
|
|
</treerow>
|
|
</template>
|
|
</treebody>
|
|
</tree>
|
|
|
|
</window>
|
|
|