The executeCommand and previewCommand lack of proper documentation
currently, but you are supposed to pass them a name of command and the
same object that the functions bound to execute and preview in a
command receive.
For example, for the command
"email Hey, look at my cool picture to [email protected]"
if you want to execute it using CmdUtils.executeCommand you'll use the
following code:
CmdUtils.executeCommand('email', {text: 'Hey, look at my cool
picture'}, {to: {text: '[email protected]'}})
But you need to have a look at the source code of the email command to
check if it uses the "text" key of those objects, or the "data",
"html" or "summary" fields.

Hope that helps.

Regards,
Lr

On Feb 26, 6:13 pm, GooseusTheGreen <[email protected]> wrote:
> nm - looks like  CmdUtils.executeCommand('email', {mesage:mail_msg},
> { to: mods.to }); worked... though does anyone else have trouble with
> Ubiquity updating the code everytime?  I find I am making arbitrary
> changes just to make sure the latest version was loaded in... is this
> a known buy of any sort?
>
> On Feb 26, 10:07 am, GooseusTheGreen <[email protected]> wrote:
>
> > It did indeed work, though still not my ideal solution for now since
> > there are still variables being used in the command I'm aliasing that
> > I want to access and can't (ie the subject of the email).  I'm also
> > having some trouble passing the message in to the execute function...
> > I am trying to pass just a text string, but I think it wants an
> > object:
>
> > I tried:
> > var mail_msg = "This is a message";
> > CmdUtils.executeCommand('email', mail_msg, { to: mods.to });
>
> > and
> > var mail_msg = "This is a message";
> > CmdUtils.executeCommand('email', {html:mail_msg}, {to: mods.to});
>
> > but neither is adding my message where it should be going... the to:
> > field is being filled properly though.
>
> > What I meant by context was that here you have:
>
> > CmdUtils.executeCommand = function executeCommand(  command,
> >                           directObj,
> >                           modifiersValues) {
> >   return (command.constructor == String?
> >     CmdUtils.getCommandByName(command) :
> >     command
> >   ).execute(
> >     context || {},  <--- Context passed in here (?)
> >     directObj,
> >     modifiersValues || {}
> >   );
>
> > };
>
> > Where you're passing the context in to the external execute command,
> > but in the email example I've been using here:
>
> > CmdUtils.CreateCommand({
> >   name: "email",
> >   takes: {"message": noun_arb_text},
> >   icon: "chrome://ubiquity/skin/icons/email.png",
> >   modifiers: {to: noun_type_contact},
> >         /*etc*/
> >   execute: function(directObj, headers) {
> >     var html = directObj.html;
>
> >     var document = context.focusedWindow.document;   <--- Accessed
> > Here without being assigned anywhere
>
> >     /*etc*/
>
> > });
>
> > The document variable is assigned from a context object that I didn't
> > see being assigned... but the point is moot now I suppose.
>
> > On Feb 26, 9:11 am, lrbabe <[email protected]> wrote:
>
> > > I'm not sure to understand your questions about the context... but I'm
> > > also curious if this work for your application, can you give it a try?
>
> > > An alias is a wrapper around references to the external command
> > > functions, it uses the previewCommand and executeCommand utils.
>
> > > On Feb 26, 4:54 pm, GooseusTheGreen <[email protected]> wrote:
>
> > > > Looks good, but I'm curious if this will work for my application...
> > > > does the context that is passed in to the execute function
> > > > automatically overwrite the external commands context or does the
> > > > command author have to write that in?  Also, is an alias just a
> > > > wrapper around references to the external command functions or is it a
> > > > local copy of those functions?
>
> > > > It seems that if the latter is the case then having a bunch of
> > > > commands which are separately making aliases of other commands would
> > > > bloat the command namespace... I'm wondering if it wouldn't be better
> > > > to allow command authors to expose mini-command-apis for use by other
> > > > commands which could then be accessed via a CmdUtils method?
>
> > > > On Feb 26, 3:34 am, lrbabe <[email protected]> wrote:
>
> > > > > You should have a look at my proposed additions to the API related to
> > > > > alias creation, you're likely to find some answers and I'm interested
> > > > > in the results you get when using it:http://gist.github.com/61752
>
> > > > > On Feb 26, 4:46 am, GooseusTheGreen <[email protected]> wrote:
>
> > > > > > Alright, looks like this could work so long as the command doesn't
> > > > > > reference any variables in the local sandbox.
>
> > > > > > for instance, I'm trying to execute the "email" command, but
> > > > > > unfortunately it requires the context variable to get the document 
> > > > > > of
> > > > > > the focused window.  Are there any plans to allow the email command 
> > > > > > to
> > > > > > have the document passed in (along with any other needed 
> > > > > > parameters)?
> > > > > > I suppose I shall just snag the necessary code for a local email
> > > > > > function.  Any other interest in this sort of thing?  What are the
> > > > > > feelings on command chaining?
>
> > > > > > On Feb 25, 6:48 pm, GooseusTheGreen <[email protected]> 
> > > > > > wrote:
>
> > > > > > > Alright, looks like these (pulled from mouse.js, suggested by 
> > > > > > > atul in
> > > > > > > another post of the same sort) is the functions I need.  Am I
> > > > > > > correct?  Any plans to develop this functionality in to CmdUtils 
> > > > > > > or
> > > > > > > another library?
>
> > > > > > > function getUbiquity(){
> > > > > > >   var mainWindow = window.QueryInterface
> > > > > > > (Components.interfaces.nsIInterfaceRequestor)
> > > > > > >                      .getInterface
> > > > > > > (Components.interfaces.nsIWebNavigation)
> > > > > > >                      .QueryInterface
> > > > > > > (Components.interfaces.nsIDocShellTreeItem)
> > > > > > >                      .rootTreeItem
> > > > > > >                      .QueryInterface
> > > > > > > (Components.interfaces.nsIInterfaceRequestor)
> > > > > > >                      .getInterface
> > > > > > > (Components.interfaces.nsIDOMWindow);
>
> > > > > > >   return mainWindow.gUbiquity;
>
> > > > > > > }
>
> > > > > > > function getCommandByName( name ) {
> > > > > > >   var ubiq = getUbiquity();
> > > > > > >   return ubiq.__cmdManager.__cmdSource.getCommand( name );
>
> > > > > > > }
>
> > > > > > > function executeCommand( commandName, mods ) {
> > > > > > >   var cmd = getCommandByName( commandName );
> > > > > > >   var selText = CmdUtils.getWindow().getSelection().toString();
> > > > > > >   selText = selText || LAST_SEL_TEXT;
> > > > > > >   LAST_SEL_TEXT = selText;
>
> > > > > > >   cmd.execute( {}, {text:selText}, mods || {} );
>
> > > > > > > }
>
> > > > > > > On Feb 25, 6:33 pm, GooseusTheGreen <[email protected]> 
> > > > > > > wrote:
>
> > > > > > > > Alright, maybe I'm having trouble with my wording here.  What 
> > > > > > > > I'm
> > > > > > > > looking to do is make a command that grabs information from a 
> > > > > > > > web
> > > > > > > > service and then puts it in a new email to my contact.  For
> > > > > > > > instance...
>
> > > > > > > > get-asset-to-email (assetID) (email)
>
> > > > > > > > Everything is fine, but I am not sure how to access the other 
> > > > > > > > commands
> > > > > > > > (ie email) from within my command... is this not possible yet?  
> > > > > > > > I
> > > > > > > > can't imagine being forced to rewrite the "email" command in to 
> > > > > > > > my
> > > > > > > > command function just to do this.
>
> > > > > > > > Can I maybe send a command to the ubiquity command line from 
> > > > > > > > within my
> > > > > > > > function?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to