You can't just call a method in an instance of an object that is in a
different app.  That's not possible short of using some kind of rpc
mechanism between the two applications.  But you can provide a link
which will take the user to a page in app2 and cause a listener to be
executed.  If you want to be able to receive parameters in the URL
string for a page, have that page implement IExternalPage.  The
signature method for that interface receives an array of parameters,
which you can use to populate your page object with data before it
renders.  I don't know, offhand, of a way to cause a listener to be
called automatically, but you could just call a listener method
manually in activateExternalPage() after you've populated your page
with data.  That would be the equivalent of having a listener attached
to a form, which gets called just before the page enters its rewind
cycle.  So as long as app1 can provide a querystring in the format
understood by the External service, then you can provide such a link.
Alternatively, instead of using the standard tapestry parameter
structure, you can just use normal name/value query string pairs, and
get the values out of the ServletRequest yourself.  This is the only
way to have a form in one app post directly a page in another app
short of writing javascript to manipulate the outgoing query
parameters.

--sam

On 10/19/06, Peter Beshai <[EMAIL PROTECTED]> wrote:
Say I have two Tapestry applications (app1 and app2) and there is a listener
in app2 that I want to call from app1.. is it possible? I imagine it is, but
I am lost as to how to implement it.

Basically, I have an application that handles bookmarks(app2). In app1 I can
upload a file and bookmark the link to it on the server (but all the editing
of the bookmark thereafter would happen in app2). So after
uploading/bookmarking[adding to the bookmark db] in app1, I want to post a
link to edit the bookmark. So I essentially want to call the edit bookmark
listener in app2 with a parameter from app1 (ie the bookmark id).

My edit listener in app2 looks like this:
public IPage onEditLink(IRequestCycle cycle, Serializable bookmarkId)
    {
        AddBookmark page=getAddBookmarkPage();
        page.setBookmarkId(bookmarkId);
        return page;
    }

I'm not sure how to implement the right kind of listener in app1 to have it
do the same thing (essentially).

Any suggestions?

Peter Beshai

_________________________________________________________________
Voyez vos amis en faisant un appel vidèo dans Windows Live Messenger
http://imagine-msn.com/messenger/launch80/default.aspx?locale=fr-ca


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to