public class HomePage extends WebPage { private static final long serialVersionUID = 1L;
private static int testCounter = 0; WebMarkupContainer container; /** * Constructor that is invoked when page is invoked without a session. * * @param parameters * Page parameters */ public HomePage(final PageParameters parameters) { container = new WebMarkupContainer("container"); // Add the simplest type of label container.add(new PanelC("panel")); container.setOutputMarkupId(true); container.add(new AbstractAjaxTimerBehavior(Duration.seconds(4)) { private static final long serialVersionUID = 1L; @Override protected void onTimer(AjaxRequestTarget target) { Panel replacement = null; testCounter++; switch((testCounter%3)) { case 0: replacement = new PanelA("panel"); break; case 1: replacement = new PanelB("panel"); break; case 2: replacement = new PanelC("panel"); break; } container.addOrReplace(replacement); target.addComponent(container); } }); add(container); } } and <html xmlns:wicket=" http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" > <head> <title>Wicket Quickstart Archetype Homepage</title> </head> <body> <strong>Wicket Quickstart Archetype Homepage</strong> <br/><br/> <div wicket:id="container"> <span wicket:id="panel">message will be here</span> </div> </body> </html> will do it Best, Ernesto On Wed, Nov 11, 2009 at 10:25 AM, Giambalvo, Christian < christian.giamba...@excelsisnet.com> wrote: > Look at the sample project. > > > -----Ursprüngliche Nachricht----- > Von: Giambalvo, Christian [mailto:christian.giamba...@excelsisnet.com] > Gesendet: Mittwoch, 11. November 2009 10:24 > An: users@wicket.apache.org > Betreff: AW: AbstractAjaxTimerBehavior causes exception > > You're right Ernesto, your example works, but what if I want to replace a > whole panel and not just the model of a label? > > > -----Ursprüngliche Nachricht----- > Von: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com] > Gesendet: Mittwoch, 11. November 2009 10:15 > An: users@wicket.apache.org > Betreff: Re: AbstractAjaxTimerBehavior causes exception > > Well I think it all boils down to the explanation a gave on my first > e-mail: > if you replace the component with a new one that does not have the behavior > then you will get an exception (the same will happend if you remove the > behavior during a round trip). I guess Martin was just trying to say that > you should use the same label...? Did you try the code I posted? It does > work ;-) > > Cheers, > > Ernesto > > On Wed, Nov 11, 2009 at 10:06 AM, Giambalvo, Christian < > christian.giamba...@excelsisnet.com> wrote: > > > Hi Martin, > > > > this doesn't work. > > > > @Override > > protected void onTimer(AjaxRequestTarget target) > > { > > Label t2 = new Label("message", "Test " + testCounter); > > t2.setOutputMarkupId(true); > > test = t2; > > testCounter++; > > target.addComponent(test); > > } > > It doesn't throw an exception, but the t2 didn't show up. > > I think this is because t2 isn't added to the page. > > That's why there is Component#replaceWith(Component). > > > > Greets > > > > -----Ursprüngliche Nachricht----- > > Von: Martin Grigorov [mailto:mcgreg...@e-card.bg] > > Gesendet: Mittwoch, 11. November 2009 09:59 > > An: users@wicket.apache.org > > Betreff: Re: AbstractAjaxTimerBehavior causes exception > > > > On Wed, 2009-11-11 at 09:21 +0100, Giambalvo, Christian wrote: > > > Hi all, > > > > > > > > > > > > maybe i found a bug. > > > > > > Don't know if I'm doing something wrong. > > > > > > But it's a simple usecase. > > > > > > > > > > > > Following code produces an exception: > > > > > > > > > > > > public class HomePage extends WebPage { > > > > > > > > > > > > private static final long serialVersionUID = 1L; > > > > > > > > > > > > private static int testCounter = 0; > > > > > > > > > > > > public HomePage(final PageParameters parameters) { > > > > > > > > > > > > // Add the simplest type of label > > > > > > final Label test = new Label("message", "If you see this > message > > > wicket is properly configured and running"); > > > > > > test.add(new AbstractAjaxTimerBehavior(Duration.seconds(1)) > > > > > > { > > > > > > @Override > > > > > > protected void onTimer(AjaxRequestTarget target) > > > > > > { > > > > > > Label t2 = new Label("message", "Test " + testCounter); > > > > > > test.replaceWith(t2); > > here you need to make : test = t2; > > > > > > testCounter++; > > > > > > target.addComponent(test); > > > > > > } > > > > > > }); > > > > > > > > > > > > add(test); > > > > > > } > > > > > > } > > > > > > > > > > > > Exception: > > > > > > Root cause: > > > > > > java.lang.IllegalStateException: No Page found for component [Component > > > id = message] > > > at org.apache.wicket.Component.getPage(Component.java:1754) > > > at org.apache.wicket.RequestCycle.urlFor(RequestCycle.java:872) > > > at org.apache.wicket.Component.urlFor(Component.java:3286) > > > at > > > > org.apache.wicket.behavior.AbstractAjaxBehavior.getCallbackUrl(AbstractA > > > jaxBehavior.java:124) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getCallbackScript(Abstr > > > actAjaxTimerBehavior.java:127) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.getJsTimeoutCall(Abstra > > > ctAjaxTimerBehavior.java:120) > > > at > > > > org.apache.wicket.ajax.AbstractAjaxTimerBehavior.respond(AbstractAjaxTim > > > erBehavior.java:163) > > > at > > > > org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDef > > > aultAjaxBehavior.java:299) > > > at > > > > org.apache.wicket.request.target.component.listener.BehaviorRequestTarge > > > t.processEvents(BehaviorRequestTarget.java:119) > > > at > > > > org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(Ab > > > stractRequestCycleProcessor.java:92) > > > at > > > > org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java > > > :1250) > > > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) > > > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) > > > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > > > at > > > > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:468 > > > ) > > > at > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java: > > > 301) > > > at > > > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHan > > > dler.java:1157) > > > at > > > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) > > > at > > > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2 > > > 16) > > > at > > > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) > > > at > > > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > > > at > > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > > > at > > > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler > > > Collection.java:230) > > > at > > > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav > > > a:114) > > > at > > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > > at org.mortbay.jetty.Server.handle(Server.java:326) > > > at > > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) > > > at > > > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne > > > ction.java:915) > > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) > > > at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) > > > at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) > > > at > > > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java: > > > 409) > > > at > > > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java > > > :582) > > > > > > > > > > > > Greets > > > > > > Chris > > > > > > > > > > > --------------------------------------------------------------------- > > 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 > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org >