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
-~----------~----~----~----~------~----~------~--~---