Blair: Any idea on using the *much* simpler solution of calling
goDoCommand(cmd)? I've also been unsuccessful at using the above code
in the 0.1.1. Are you using a newer development version?
-Sunny
On Oct 12, 11:06 pm, "Blair McBride" <[EMAIL PROTECTED]> wrote:
> Very odd. I just tested the following code, and it works for me:
>
> var aCommand = "cmd_copy";
> var browserWindow =
> Components.classes["@mozilla.org/appshell/window-mediator;1"]
> .getService(Components.interfaces.nsIWindowMediator)
> .getMostRecentWindow("navigator:browser");
> var controller =
> browserWindow.document.commandDispatcher.getControllerForCommand(aCommand);
> if(controller && controller.isCommandEnabled(aCommand)) {
> controller.doCommand(aCommand);
>
> }
>
> - Blair
>
> On Mon, Oct 13, 2008 at 10:13 AM, Sunny <[EMAIL PROTECTED]> wrote:
>
> > I have this sort of working, but not as I'd like. It seems that
> > getControllerForCommand always fails and I can't find a way to access
> > the goDoCommand (which is dumb). See below for my current
> > implementation that calls getControllers. Note that I must also pas a
> > null type of the getMostRecentWindow. I then iterate through all of
> > the controllers and doCommand for the first one that claims to support
> > it. There must be an easier and more effective way, but the
> > documentation for XUL is a mess for the novice and Ubiquity doesn't
> > seem to have the necessary built-in stuff from the
> > globalOverlay.js.
>
> > Any help would be greatly appreciated!!!
>
> > function doTheCommand(cmd) {
> > var wm = Components.classes["@mozilla.org/appshell/window-mediator;
> > 1"]
> > .getService(Components.interfaces.nsIWindowMediator);
> > var window = wm.getMostRecentWindow(null);
> > //var controller;
> > //
> > window.document.commandDispatcher.getControllerForCommand(cmd,controller);
>
> > var controllers=window.document.commandDispatcher.getControllers();
> > for(i=0;i<controllers.getControllerCount();i++) {
> > var controller=controllers.getControllerAt(i);
> > if(controller.supportsCommand(cmd)) {
> > controller.doCommand(cmd);
> > displayMessage(cmd+"run");
> > break;
> > }
> > }
> > }
>
> > function cmd_close() {
> > doTheCommand("cmd_close");
> > }
> > function cmd_closeOtherTabs() {
> > doTheCommand("cmd_closeOtherTabs");
> > }
> > function cmd_closeWindow() {
> > doTheCommand("cmd_closeWindow");
> > }
> > function cmd_copy() {
> > doTheCommand("cmd_copy");
> > }
>
> > ....etc....
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"ubiquity-firefox" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/ubiquity-firefox?hl=en
-~----------~----~----~----~------~----~------~--~---