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);
}
};
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]