From ede015ad40aeceb8310e74acb75035e41db369fb Mon Sep 17 00:00:00 2001 From: "rjc%netscape.com" Date: Wed, 7 Jul 1999 05:33:38 +0000 Subject: [PATCH] Starting to implement DoCommand(). [Doesn't seem to work 100% yet... can't find DoCommand() method for some reason that isn't clear to me yet.] git-svn-id: svn://10.0.0.236/trunk@38624 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/suite/common/bookmarks/bookmarks.js | 76 ++++++++++++++++++- .../bookmarks/resources/bookmarks.js | 76 ++++++++++++++++++- 2 files changed, 150 insertions(+), 2 deletions(-) diff --git a/mozilla/suite/common/bookmarks/bookmarks.js b/mozilla/suite/common/bookmarks/bookmarks.js index 06108c51f98..add4f31c126 100644 --- a/mozilla/suite/common/bookmarks/bookmarks.js +++ b/mozilla/suite/common/bookmarks/bookmarks.js @@ -207,7 +207,81 @@ function fillContextMenu(name) function doContextCmd(cmdName) { - dump("doContextCmd: cmd='" + cmdName + "'\n"); + dump("doContextCmd start: cmd='" + cmdName + "'\n"); + + var treeNode = document.getElementById("bookmarksTree"); + if (!treeNode) return(false); + var db = treeNode.database; + if (!db) return(false); + + var compositeDB = db.QueryInterface(Components.interfaces.nsIRDFDataSource); + if (!compositeDB) return(false); + + var isupports = Components.classes["component://netscape/rdf/rdf-service"].getService(); + if (!isupports) return(false); + var rdf = isupports.QueryInterface(Components.interfaces.nsIRDFService); + if (!rdf) return(false); + + // need a resource for the command + var cmdResource = rdf.GetResource(cmdName); + if (!cmdResource) return(false); + cmdResource = cmdResource.QueryInterface(Components.interfaces.nsIRDFResource); + if (!cmdResource) return(false); + + var select_list = treeNode.getElementsByAttribute("selected", "true"); + if (select_list.length < 1) return(false); + + dump("# of Nodes selected: " + select_list.length + "\n\n"); + + // build up selection nsISupportsArray + var selectionInstance = Components.classes["component://netscape/supports-array"].createInstance(); + if (!selectionInstance) + { + dump("unable to create selectionInstance.\n"); + return(false); + } + var selectionArray = selectionInstance.QueryInterface(Components.interfaces.nsISupportsArray); + if (!selectionArray) + { + dump("unable to QI to selectionArray.\n"); + return(false); + } + + for (var nodeIndex=0; nodeIndex