From 5d9a89f460f03340bf33fdedeab383457b7de1db Mon Sep 17 00:00:00 2001 From: "blakeross%telocity.com" Date: Sat, 5 Jan 2002 08:32:34 +0000 Subject: [PATCH] 117668 - convert help to outliner. r=oeschger sr=hewitt git-svn-id: svn://10.0.0.236/trunk@111411 18797224-902f-48f8-a5cc-f745e15eee43 --- .../extensions/help/resources/content/help.js | 53 +++++------- .../help/resources/content/help.xul | 81 ++++++++----------- 2 files changed, 55 insertions(+), 79 deletions(-) diff --git a/mozilla/extensions/help/resources/content/help.js b/mozilla/extensions/help/resources/content/help.js index 1808ac47341..838591bf5ac 100644 --- a/mozilla/extensions/help/resources/content/help.js +++ b/mozilla/extensions/help/resources/content/help.js @@ -1,6 +1,10 @@ //-------- global variables var gBrowser; +var gRDF = null; +var gBuilder = null; +const kRDFContractID = "@mozilla.org/rdf/rdf-service;1"; +const kRDFIID = Components.interfaces.nsIRDFService; // The key object is used to define special context strings that, when appended to // the url for the help window itself, load specific content. For example, the uri: @@ -160,38 +164,6 @@ function init() webProgress.addProgressListener(window.XULBrowserWindow); } -// select the item in the tree called "Dialog Help" if the window was loaded from a dialog -function setContext() { - var items = document.getElementsByAttribute("helplink", "chrome://help/locale/context_help.html"); - if (items.length) { - var tree = document.getElementById("help-toc-tree"); - try { tree.selectItem(items[0].parentNode.parentNode); } catch(ex) { dump("can't select in toc: " + ex + "\n"); } - } -} - -function selectTOC(link_attr) { - var items = document.getElementsByAttribute("helplink", link_attr); - if (items.length) { - openTwistyTo(items[0]); - var tree = document.getElementById("help-toc-tree"); - try { tree.selectItem(items[0].parentNode.parentNode); } catch(ex) { dump("can't select in toc: " + ex + "\n"); } - } -} - -// open parent nodes for the selected node -// until you get to the top of the tree -function openTwistyTo(selectedURINode) -{ - var parent = selectedURINode.parentNode; - var tree = document.getElementById("help-toc-tree"); - if (parent == tree) - return; - - parent.setAttribute("open", "true"); - openTwistyTo(parent); -} - - function getWebNavigation() { return gBrowser.webNavigation; @@ -222,6 +194,23 @@ function goHome() { loadURI("chrome://help/locale/welcome_help.html"); } +function selectItem() { + var outliner = document.getElementById("help-toc-outliner"); + if (!gBuilder) + gBuilder = outliner.outlinerBoxObject.outlinerBody.builder.QueryInterface(Components.interfaces.nsIXULOutlinerBuilder); + + var source = gBuilder.getResourceAtIndex(outliner.outlinerBoxObject.selection.currentIndex); + if (!gRDF) + gRDF = Components.classes[kRDFContractID].getService(kRDFIID); + + var property = gRDF.GetResource("http://home.netscape.com/NC-rdf#link"); + + var target = outliner.outlinerBoxObject.outlinerBody.database.GetTarget(source, property, true); + if (target) + target = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; + loadURI(target); +} + function print() { try { diff --git a/mozilla/extensions/help/resources/content/help.xul b/mozilla/extensions/help/resources/content/help.xul index 4eb36584aa7..7d5b8bcc478 100644 --- a/mozilla/extensions/help/resources/content/help.xul +++ b/mozilla/extensions/help/resources/content/help.xul @@ -115,7 +115,7 @@ - + @@ -124,51 +124,38 @@ - > - - - - - - - - - - + + + + + + + + + @@ -189,7 +176,7 @@ - +