The method getPage() is not available at the place where I'm building the link - I'm not within a component and I try to get the page by content of the session. :-)
I didn't modified the Session - the pageId is stored in org.apache.wicket.Session.pageId which is an AtomicInteger 2014-09-09 14:06 GMT+02:00 Martin Grigorov <mgrigo...@apache.org>: > Pass the pageId as a query string parameter. > > PageParameters params = new PageParameters(); > params.set("pageId", getPage().getPageId()); > theUrlToTheReference = requestCycle.urlFor(yourResRef, params); > > Then in the IResource (better extend AbstractResource) just read it from > the request parameters. > > Storing the pageId in the session is not OK because the user may open two > different pages in separate tabs/windows and this will break. > > > Martin Grigorov > Wicket Training and Consulting > https://twitter.com/mtgrigorov > > > On Tue, Sep 9, 2014 at 3:01 PM, Tobias Soloschenko < > tobiassolosche...@googlemail.com> wrote: > > > Thanks again for the fast answer. My code now looks this way: > > > > Field declaredField = > > WebSession.get().getClass().getSuperclass() > > .getDeclaredField("pageId"); > > > > declaredField.setAccessible(true); > > AtomicInteger i = (AtomicInteger) > > declaredField.get(WebSession.get()); > > Page page = (Page) WebSession.get().getPageManager() > > .getPage(i.get()); > > > > AjaxRequestTarget newAjaxRequestTarget = ((WebApplication) > > Application.get()) > > .newAjaxRequestTarget(page); > > > > RequestCycle.get().scheduleRequestHandlerAfterCurrent( > > newAjaxRequestTarget); > > > > I dont know how to get the current pageId but from the Session. The page > at > > this place is null. :-( > > > > > > > > 2014-09-09 13:53 GMT+02:00 Martin Grigorov <mgrigo...@apache.org>: > > > > > On Tue, Sep 9, 2014 at 2:05 PM, Tobias Soloschenko < > > > tobiassolosche...@googlemail.com> wrote: > > > > > > > Hi again, > > > > > > > > I tried out that code you mentioned here. > > > > WebSession.get().getPageManager().getPage(int i) returns > > IManageablePage > > > > which is not applicable as argument for newAjaxRequestTarget. > > > > > > > > > > cast it > > > it is known that in your environment you don't use any custom > > > IManageablePage/IRequestablePage impls (see IPageFactory) > > > > > > > > > > > > > > The second thing is how do I get the instance of a page by class with > > the > > > > last page id not from within a component (this would be simple > > > getPage())? > > > > > > > > > > I didn't get this > > > Please re-phrase > > > > > > > > > > > > > > 2014-09-09 11:51 GMT+02:00 Martin Grigorov <mgrigo...@apache.org>: > > > > > > > > > I've re-read the message and I think I got it. > > > > > What you really need is a mounted resource > > > > > (WebApplication#mountResource(someResourceReference)) > > > > > To get a url to it use: theUrl = requestCycle.urlFor(sameResRef, > > > > > parametersWithPageId) > > > > > Wicket.Ajax.get({"u": theUrl, ...}) > > > > > In IResource#respond() you can create AjaxRequestTarget with: > > > > > > > > > > Page page = session.getPageManager().get(parameters.get("pageId")) > > > > > target = webApplication.newAjaxRequestTarget(page) > > > > > requestCycle.scheduleRequestHandlerAfterCurrent(target); > > > > > page.send(page, Broadcast.BREADTH, new SomeEvent(target)) > > > > > > > > > > in SomeComponent#onEvent() use someEvent.getTarget().add(this) to > add > > > the > > > > > component when SomeEvent is broadcasted > > > > > > > > > > Martin Grigorov > > > > > Wicket Training and Consulting > > > > > https://twitter.com/mtgrigorov > > > > > > > > > > > > > > > On Tue, Sep 9, 2014 at 12:40 PM, Richter, Marvin < > > > > > marvin.rich...@freenetdigital.com> wrote: > > > > > > > > > > > What you are looking for is the Wicket Event mechanism. > > > > > > > > > > > > This allows you to send a broadcast to a specified Component > (e.g. > > > the > > > > > > current page) and a payload (e.g. your custom event type which > > > contains > > > > > > information). > > > > > > > > > > > > In the Components which should react on the event you override > the > > > > method > > > > > > onEvent, check if the event is of your type and if so, do with > the > > > > event > > > > > > payload whatever you want. > > > > > > > > > > > > Check out > > > > > > > > > > > > > > > > > > > > > http://www.wicket-library.com/wicket-examples/events/wicket/bookmarkable/org.apache.wicket.examples.source.SourcesPage?1&SourcesPage_class=org.apache.wicket.examples.events.DecoupledAjaxUpdatePage > > > > > > for a good example. > > > > > > > > > > > > Best, > > > > > > Marvin > > > > > > > > > > > > -----Original Message----- > > > > > > From: Tobias Soloschenko [mailto: > tobiassolosche...@googlemail.com] > > > > > > Sent: Tuesday, September 09, 2014 11:31 AM > > > > > > To: users@wicket.apache.org > > > > > > Subject: Re: Global Ajax Event Handler > > > > > > > > > > > > Hi, > > > > > > > > > > > > thanks for the answer, but this is only a client side event hook > > not > > > > for > > > > > > processing a request to the Server. I added a pseudo code to the > > > > question > > > > > > of martin who asked me what I exactly want to do. > > > > > > > > > > > > Thanks anyway for the fast answer! > > > > > > > > > > > > kind regards, > > > > > > > > > > > > Tobias > > > > > > > > > > > > > Am 09.09.2014 um 11:06 schrieb Tom Götz <t...@decoded.de>: > > > > > > > > > > > > > > See > > https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax > > > , > > > > > > section "Global Ajax call listeners“. > > > > > > > > > > > > > > Cheers, > > > > > > > -Tom > > > > > > > > > > > > > > > > > > > > >> On 09.09.2014, at 10:58, Tobias Soloschenko < > > > > > > tobiassolosche...@googlemail.com> wrote: > > > > > > >> > > > > > > >> Hi all, > > > > > > >> > > > > > > >> is there a way to register a global ajax event handler within > > > > Wicket? > > > > > > For normal there is the AbstractDefaultAjaxBehavior which is > added > > > to a > > > > > > component. And then the CallbackScript can be obtained and used > > > within > > > > a > > > > > > OnDomReadyHeaderItem for example. > > > > > > >> > > > > > > >> Is there a way to do this on application level so that Im able > > to > > > > get > > > > > > the CallbackScript from the instantiated Application? > > > > > > >> > > > > > > >> kind regards > > > > > > >> > > > > > > >> Tobias > > > > > > >> > > > > --------------------------------------------------------------------- > > > > > > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > > > > > >> For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > > > > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > > > > > > > > > > > > > > > > > > > > >