Hi Chris, Sorry for the mistake, its attributes.setEventPropagation(EventPropagation.STOP);
Best regards, Sebastien. On Fri, Feb 6, 2015 at 10:12 PM, Chris <[email protected]> wrote: > Update: > > When setting #setAllowDefault(false), the #onevent method of the web > markup container is called, but in addition also the #on select method of > sortable. > When setting #setAllowDefault(true), the #onevent method is not called at > all, only the #on select method. > > It seems that setAllowDefault(false or true) does not prevent the event > bubbling to parents. What might be missing? > > > @Override > protected void populateItem(ListItem<String> item) { > ... > WebMarkupContainer infoLink = new WebMarkupContainer("infoLink"); > infoLink.add(new AjaxEventBehavior("onclick") { > > @Override > protected void onEvent(AjaxRequestTarget target) { > > } > > @Override > protected void updateAjaxAttributes(AjaxRequestAttributes > attributes) { > super.updateAjaxAttributes(attributes); > attributes.setAllowDefault(false); > } > }); > > > @Override > public void onSelect(AjaxRequestTarget target, List<String> items) { > ….. > > > Chris > > > > Am 06.02.2015 um 21:20 schrieb Martin Grigorov <[email protected]>: > > > > Hi, > > > > On Fri, Feb 6, 2015 at 10:13 PM, Chris <[email protected]> wrote: > > > >> Hi Sebastian, > >> > >> thanks for your help. Has that the method signature recently changed? > The > >> method #setPreventDefault is not available on the object #attributes. > >> > >> > >> Link link = new AjaxFallbackLink<String>("link") { > >> > >> @Override > >> public void onClick(AjaxRequestTarget target) { > >> } > >> > >> @Override > >> protected void updateAjaxAttributes(AjaxRequestAttributes > >> attributes) { > >> super.updateAjaxAttributes(attributes); > >> attributes.setPreventDefault(true); > >> > > > > In Wicket 6.x it is wrongly named "setAllowDefault()". > > > > > >> } > >> }; > >> > >> Chris > >> > >> > >> > >>> Am 06.02.2015 um 19:56 schrieb Sebastien <[email protected]>: > >>> > >>> Hi Chris, > >>> > >>> Yes, generally speaking, you have to cancel bubbling events to parent > >>> elements. > >>> For a [Ajax]Link (or any event-behavior related) you have to set the > >>> preventDefault property to true; > >>> > >>> protected void updateAjaxAttributes(AjaxRequestAttributes attributes) > >>> { > >>> super.updateAjaxAttributes(attributes); > >>> > >>> attributes.setPreventDefault(true); // cancel bubbling > >>> } > >>> > >>> Hope this helps, > >>> Best regards, > >>> Sebastien > >>> > >>> On Fri, Feb 6, 2015 at 6:59 PM, Chris <[email protected]> wrote: > >>> > >>>> Hi Sebastian, > >>>> > >>>> I would have a follow-up question regarding the #Sortable: > >>>> > >>>> > >>>> Is it possible to add an AjaxLink to the item with its own behavior so > >>>> that if the user clicks on this link, then its on-click behavior > should > >> be > >>>> called instead of the #onselect method from the sortable. At the > moment, > >>>> the #onselect method would be called for this link. > >>>> > >>>> Thanks a lot, > >>>> Chris > >>>> > >>>> @Override > >>>> protected void populateItem(ListItem<String> item) > >>>> { > >>>> item.add(new EmptyPanel("icon").add(AttributeModifier.append("class", > >>>> "ui-icon " + JQueryIcon.ARROW_2_N_S))); > >>>> item.add(new Label("item", item.getModelObject())); > >>>> item.add(AttributeModifier.append("class", "ui-state-default")); > >>>> } > >>>> > >>>> > >>>> > >>>> > >>>>> Am 05.02.2015 um 14:30 schrieb Sebastien <[email protected]>: > >>>>> > >>>>> I've opened the issue: > >>>>> https://github.com/sebfz1/wicket-jquery-ui/issues/153 > >>>>> > >>>>> > >>>>> On Thu, Feb 5, 2015 at 10:29 AM, Sebastien <[email protected]> wrote: > >>>>> > >>>>>> Hi Chris, > >>>>>> > >>>>>> Right, Sortable is processing events thought the Event Bus, that's > >>>> because > >>>>>> 2 sortables can be connected and then, these should be able to > >>>> communicate > >>>>>> > >>>>>> As you are sending the event from the Sortable, you enter the > >> condition: > >>>>>> if (event.getSource() instanceof Sortable<?>) > >>>>>> > >>>>>> I will try to find out how I can add a check, but as Sortable is > >> using a > >>>>>> generic model object (typeof T)... > >>>>>> I think the correct solution/workaround would be that you change the > >>>>>> broadcast type to EXACT, so Sortable#onEvent will not be triggered. > >>>>>> > >>>>>> Thanks & best regards, > >>>>>> Sebastien. > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Wed, Feb 4, 2015 at 8:55 PM, Chris <[email protected]> wrote: > >>>>>> > >>>>>>> Hi Sven, thanks. > >>>>>>> > >>>>>>> The onRemove method is from the class > >>>>>>> com.googlecode.wicket.jquery.ui.interaction.sortable.Sortable: > >>>>>>> > >>>>>>> @Override > >>>>>>> public void onRemove(AjaxRequestTarget target, String item) { > >>>>>>> super.onRemove(target, item); > >>>>>>> } > >>>>>>> Why is the payload processed in this method, as it takes the target > >> as > >>>>>>> parameter? Is there another way to render the other panel or > rewrite > >>>> the > >>>>>>> payload? > >>>>>>> > >>>>>>> br, Chris > >>>>>>> > >>>>>>> > >>>>>>>> Am 04.02.2015 um 20:41 schrieb Sven Meier <[email protected]>: > >>>>>>>> > >>>>>>>> Hi, > >>>>>>>> > >>>>>>>> you're using a DeleteItem as payload of the event: > >>>>>>>> > >>>>>>>> send(getPage(), Broadcast.BREADTH, new DeleteItem(target)); > >>>>>>>> > >>>>>>>> Yet in #onRemove() you're casting the payload to a String: > >>>>>>>> > >>>>>>>> java.lang.ClassCastException: tripplanner.mycompany.DeleteItem > >>>>>>> cannot be cast to java.lang.String > >>>>>>>> at > >>>>>>> mycompany.panels.SuitcasePanel$1.onRemove(SuitcasePanel.java:54) > >>>>>>>> > >>>>>>>> > >>>>>>>> Regards > >>>>>>>> Sven > >>>>>>>> > >>>>>>>> > >>>>>>>> On 04.02.2015 20:32, Chris wrote: > >>>>>>>>> Hi Tobias - sorry, here it is: > >>>>>>>>> > >>>>>>>>> Last cause: mycompany.DeleteItem cannot be cast to > java.lang.String > >>>>>>>>> WicketMessage: Method onRequest of interface > >>>>>>> org.apache.wicket.behavior.IBehaviorListener targeted at > >>>>>>> > >>>> > >> > com.googlecode.wicket.jquery.ui.interaction.selectable.SelectableBehavior$1@127d9785 > >>>>>>> on component [Sortable [Component id = sortable]] threw an > exception > >>>>>>>>> > >>>>>>>>> Root cause: > >>>>>>>>> > >>>>>>>>> java.lang.ClassCastException: tripplanner.mycompany.DeleteItem > >> cannot > >>>>>>> be cast to java.lang.String > >>>>>>>>> at > >>>>>>> mycompany.panels.SuitcasePanel$1.onRemove(SuitcasePanel.java:54) > >>>>>>>>> at > >>>>>>> > >>>> > >> > com.googlecode.wicket.jquery.ui.interaction.sortable.Sortable.onEvent(Sortable.java:126) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.settings.def.FrameworkSettings.dispatchEvent(FrameworkSettings.java:132) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender.dispatchToComponent(ComponentEventSender.java:282) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender.access$100(ComponentEventSender.java:36) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:329) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender$ComponentEventVisitor.component(ComponentEventSender.java:306) > >>>>>>>>> at > >>>>>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) > >>>>>>>>> at > >>>>>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) > >>>>>>>>> at > >>>>>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) > >>>>>>>>> at > >>>>>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) > >>>>>>>>> at > >>>>>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:875) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender.breadth(ComponentEventSender.java:160) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ComponentEventSender.send(ComponentEventSender.java:68) > >>>>>>>>> at org.apache.wicket.Component.send(Component.java:4429) > >>>>>>>>> at > >>>>>>> mycompany.panels.SuitcasePanel$1$1.onSelect(SuitcasePanel.java:92) > >>>>>>>>> at > >>>>>>> > >>>> > >> > com.googlecode.wicket.jquery.ui.interaction.selectable.SelectableBehavior.onAjax(SelectableBehavior.java:122) > >>>>>>>>> at > >>>>>>> > >>>> > >> > com.googlecode.wicket.jquery.core.ajax.JQueryAjaxBehavior.respond(JQueryAjaxBehavior.java:171) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:633) > >>>>>>>>> at java.lang.reflect.Method.invoke(Method.java:483) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:250) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137) > >>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) > >>>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >>>>>>>>> at > >>>>>>> > >> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:106) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:142) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) > >>>>>>>>> at > >>>>>>> > >>>> > >> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > >>>>>>>>> at > >>>>>>> > >>>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > >>>>>>>>> at > >>>>>>> > >>>> > >> > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > >>>>>>>>> at java.lang.Thread.run(Thread.java:745) > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> br, Chris > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> Am 04.02.2015 um 20:09 schrieb Tobias Soloschenko < > >>>>>>> [email protected]>: > >>>>>>>>>> > >>>>>>>>>> Hi, > >>>>>>>>>> > >>>>>>>>>> would you be so kind and apply some more information like > >> StackTrace > >>>>>>> of the interal server error. > >>>>>>>>>> > >>>>>>>>>> Thanks a lot. > >>>>>>>>>> > >>>>>>>>>> kind regards > >>>>>>>>>> > >>>>>>>>>> Tobias. > >>>>>>>>>> > >>>>>>>>>> Am 04.02.15 um 20:05 schrieb Chris: > >>>>>>>>>>> Sven, I have an additional situation where I am getting an > >> internal > >>>>>>> error. Could you help me in figuring out the problem? > >>>>>>>>>>> > >>>>>>>>>>> Panel A senses the selection of an item from a user and adds > the > >>>>>>> „sortable“ as container to the ajax target. > >>>>>>>>>>> In addition, Panel B should be added to the ajax target, using > >>>>>>> Wicket events. > >>>>>>>>>>> > >>>>>>>>>>> The internal error is thrown when using Wicket events to add > the > >>>>>>> additional panel. Without the event, just calling > >>>> #target.add(sortable) it > >>>>>>> works. > >>>>>>>>>>> > >>>>>>>>>>> Panel A > >>>>>>>>>>> ************* > >>>>>>>>>>> @Override > >>>>>>>>>>> public void onSelect(AjaxRequestTarget target, List<String> > >> items) > >>>> { > >>>>>>>>>>> sortable.onRemove(target, items.get(0)); > >>>>>>>>>>> target.add(sortable); > >>>>>>>>>>> send(getPage(), Broadcast.BREADTH, new > >>>>>>> DeleteItem(target)); > >>>>>>>>>>> } > >>>>>>>>>>> Panel B > >>>>>>>>>>> ************* > >>>>>>>>>>> public class PoiListPanel extends Panel { > >>>>>>>>>>> @Override > >>>>>>>>>>> public void onEvent(IEvent<?> event) { > >>>>>>>>>>> super.onEvent(event); > >>>>>>>>>>> > >>>>>>>>>>> if (event.getPayload() instanceof DeleteItem) { > >>>>>>>>>>> DeleteItem update = (DeleteItem) > >>>>>>> event.getPayload(); > >>>>>>>>>>> update.getTarget().add(this); > >>>>>>>>>>> > >>>>>>>>>>> } > >>>>>>>>>>> > >>>>>>>>>>> } > >>>>>>>>>>> Chris > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>>> Am 04.02.2015 um 14:32 schrieb Grün Christoph < > >>>>>>> [email protected]>: > >>>>>>>>>>>> > >>>>>>>>>>>> Sven - thank you. That solved it! > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>>> Am 04.02.2015 um 14:14 schrieb Sven Meier <[email protected]>: > >>>>>>>>>>>>> > >>>>>>>>>>>>> Your container has to output its markup id: > >>>>>>>>>>>>> > >>>>>>>>>>>>> container.setOutputMarkupId() > >>>>>>>>>>>>> > >>>>>>>>>>>>> Regards > >>>>>>>>>>>>> Sven > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> On 04.02.2015 14:11, Chris wrote: > >>>>>>>>>>>>>> Hi, > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> When the user clicks on a certain icon, a specific part of > the > >>>>>>> page should be reloaded through ajax. The icon is part of a panel, > >> the > >>>>>>> specific part is a webmarkupcontainer added directly to the page. I > >> am > >>>>>>> using Wicket Events to push the click event. However, when adding > the > >>>> web > >>>>>>> markup container as target, I am getting an internal error. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> -> update.getTarget().add(container); > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Can someone help me to fix this? > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ********************* > >>>>>>>>>>>>>> ***** PANEL ***** > >>>>>>>>>>>>>> final WebMarkupContainer suitcaseIcon = new > >>>>>>> WebMarkupContainer("icon"); > >>>>>>>>>>>>>> icon.setOutputMarkupId(true); > >>>>>>>>>>>>>> icon.add(new AjaxEventBehavior("onclick") { > >>>>>>>>>>>>>> protected void onEvent(AjaxRequestTarget target) { > >>>>>>>>>>>>>> send(getPage(), Broadcast.BREADTH, new > >>>>>>> AddItem(target)); > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> }); > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ********************* > >>>>>>>>>>>>>> ***** PAGE ***** > >>>>>>>>>>>>>> ... > >>>>>>>>>>>>>> WebMarkupContainer container; > >>>>>>>>>>>>>> public HomePage() { > >>>>>>>>>>>>>> container = new WebMarkupContainer("container"); > >>>>>>>>>>>>>> add(container); > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> @Override > >>>>>>>>>>>>>> public void onEvent(IEvent<?> event) { > >>>>>>>>>>>>>> super.onEvent(event); > >>>>>>>>>>>>>> if (event.getPayload() instanceof AddItem) { > >>>>>>>>>>>>>> AddItem update = (AddItem) event.getPayload(); > >>>>>>>>>>>>>> update.getTarget().add(container); > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ********************* > >>>>>>>>>>>>>> ***** AddItem ***** > >>>>>>>>>>>>>> public class AddItem { > >>>>>>>>>>>>>> private final AjaxRequestTarget target; > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> public AddItem(AjaxRequestTarget target) { > >>>>>>>>>>>>>> this.target = target; > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> public AjaxRequestTarget getTarget() { > >>>>>>>>>>>>>> return target; > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> } > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Thanks. > >>>>>>>>>>>>>> Chris > >>>>>>>>>>>>> > >>>>>>> > --------------------------------------------------------------------- > >>>>>>>>>>>>> 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] > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > >>>> --------------------------------------------------------------------- > >>>>>>>>>> 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] > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>> > >>>> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> > >
