I attached it to a JIRA. https://issues.apache.org/jira/browse/WICKET-3248
Thanks, Takeo Hosomi On Thu, Dec 9, 2010 at 4:12 PM, Jeremy Thomerson <[email protected]> wrote: > Attach the zip of the quickstart to a JIRA. > > Jeremy Thomerson > http://wickettraining.com > -- sent from my "smart" phone, so please excuse spelling, formatting, or > compiler errors > > On Dec 9, 2010 4:15 PM, "Takeo Hosomi" <[email protected]> wrote: > > Hello, > > I have the same issue which is discussed in the following link: > http://apache-wicket.1842946.n4.nabble.com/WicketRuntimeException-component-not-found-on-page-td3055902.html > > I made a quickstart to reproduce it. Any idea on how to workaround > this behavior? > I'm using wicket 1.4.12, wiquery 1.1.2, and wiquery-plugin for tooltip > (other-plugins-1.1.jar). > > Thanks, > Takeo Hosomi > > Step1. > Use following source code to reproduce the problem. > > Java: > > import java.io.Serializable; > import java.util.ArrayList; > import java.util.List; > > import org.apache.wicket.Component; > import org.apache.wicket.ajax.AjaxRequestTarget; > import > org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator; > import org.apache.wicket.behavior.SimpleAttributeModifier; > import org.apache.wicket.markup.html.CSSPackageResource; > import org.apache.wicket.markup.html.WebMarkupContainer; > import org.apache.wicket.markup.html.basic.Label; > import org.apache.wicket.markup.html.list.ListItem; > import org.apache.wicket.markup.html.list.PageableListView; > import org.apache.wicket.markup.html.panel.Panel; > import org.odlabs.wiquery.ui.themes.ThemeUiHelper; > import org.odlabs.wiquery.ui.themes.UiIcon; > import org.wiquery.plugin.jquertytools.tooltip.TooltipAjaxBehaviour; > import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior; > import > org.wiquery.plugin.jquertytools.tooltip.TooltipAjaxBehaviour.IToolTipOnBeforeShowUIEventHandler; > import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior.Offset; > import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior.Position; > > public class TestPanel extends Panel { > private static final long serialVersionUID = 1L; > > private static int rowHeight = 40; > > public TestPanel(String id) { > super(id); > setOutputMarkupId(true); > > > add(CSSPackageResource.getHeaderContribution(TooltipBehavior.CSS)); > > // Tooltip Indicator > final WebMarkupContainer indiIcon = new > WebMarkupContainer("indiIcon"); > ThemeUiHelper.iconComponent(indiIcon, UiIcon.CARAT_1_EAST); > final WebMarkupContainer tooltipIndicator = new > WebMarkupContainer("indi"); > tooltipIndicator.add(indiIcon); > tooltipIndicator.add(new SimpleAttributeModifier("style", > > "display:none;background-color:#C4C4C4;" + > "height:"+20+"px;" + > > "padding-top:"+((rowHeight-20)/2-1)+"px;padding-bottom:"+((rowHeight-20)/2-1)+"px;")); > tooltipIndicator.setOutputMarkupId(true); > add(tooltipIndicator); > > // Container > WebMarkupContainer container = new WebMarkupContainer("container"); > container.setOutputMarkupId(true); > add(container); > > PageableListView<DummyUser> users = new > PageableListView<DummyUser>("user", dummyUsers(), 3){ > /***/ > private static final long serialVersionUID = 1L; > > @Override > protected void populateItem(ListItem<DummyUser> item) > { > item.add(new > SimpleAttributeModifier("style","height:"+rowHeight+"px;")); > item.add(new Label("name", > item.getModelObject().getName())); > item.add(new Label("first", > item.getModelObject().getFirst())); > item.add(new Label("last", > item.getModelObject().getLast())); > item.add(new TooltipAjaxBehaviour() > .setDelay(0) // TODO magic number 400ms > .setPredelay(0) > .setPosition(Position.bottom_right) > .setOffset(new Offset(-(rowHeight-1),-15)) // > y,x > .setTip(tooltipIndicator) > .setOnBeforeShow(new > IToolTipOnBeforeShowUIEventHandler() { > private static final long > serialVersionUID = 1L; > > public void onEvent(AjaxRequestTarget > target, Component > component, int top, int left) { > // do something... > } > }) > ); > } > }; > container.add(users); > container.add(new AjaxPagingNavigator("navigator", users)); > } > > private List<DummyUser> dummyUsers() { > List<DummyUser> ret = new ArrayList<DummyUser>(); > for (int i=0; i<10 ; i++){ > ret.add(new DummyUser("name"+i,"first"+i,"last"+i)); > } > return ret; > } > > private class DummyUser implements Serializable { > private static final long serialVersionUID = 1L; > private String name; > private String first; > private String last; > > public DummyUser(String name, String first, String last){ > this.name = name; > this.first = first; > this.last = last; > } > public String getName() { > return name; > } > public String getFirst() { > return first; > } > public String getLast() { > return last; > } > } > } > > > HTML: > > <?xml version="1.0" encoding="UTF-8"?> > <html xmlns="http://www.w3.org/1999/xhtml"; > xmlns:wicket=" > http://svn.apache.org/repos/asf/wicket/trunk/wicket/wicket-xhtml1-strict.dtd > ";> > > <wicket:panel> > <br/> > <div wicket:id="container"> > <table> > <tr> > <th>User Name</th> > <td>First Name</td> > <td>Last Name</td> > </tr> > <tr wicket:id="user"> > <th wicket:id="name">g1</th> > <td wicket:id="first">g1</td> > <td wicket:id="last">g1</td> > </tr> > </table> > <div wicket:id="navigator"></div> > </div> > <div wicket:id="indi"> > <div wicket:id="indiIcon"></div> > </div> > </wicket:panel> > </html> > > > > Step2. > When clicking the paging navigator, quickly move the mouse to the > table region. Then sometimes following error messages are shown: > > ERROR - RequestCycle - > org.apache.wicket.WicketRuntimeException: component > tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id = > 4], listener interface = [RequestListenerInterface > name=IActivePageBehaviorListener, method=public abstract void > org.apache.wicket.behavior.IBehaviorListener.onRequest()] > org.apache.wicket.protocol.http.request.InvalidUrlException: > org.apache.wicket.WicketRuntimeException: component > tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id = > 4], listener interface = [RequestListenerInterface > name=IActivePageBehaviorListener, method=public abstract void > org.apache.wicket.behavior.IBehaviorListener.onRequest()] > at > org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) > at > org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484) > at > org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216) > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113) > at org.eclipse.jetty.server.Server.handle(Server.java:351) > at > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594) > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1041) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) > at > org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:489) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) > at java.lang.Thread.run(Thread.java:619) > Caused by: org.apache.wicket.WicketRuntimeException: component > tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id = > 4], listener interface = [RequestListenerInterface > name=IActivePageBehaviorListener, method=public abstract void > org.apache.wicket.behavior.IBehaviorListener.onRequest()] > at > org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:426) > at > org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:471) > at > org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144) > ... 33 more > > --------------------------------------------------------------------- > 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]
