Re: Ajax - render Webmarkup-Container based on Wicket Events
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 AjaxFallbackLinkString(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 seb...@gmail.com: 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 chris...@gmx.at 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(ListItemString 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 seb...@gmail.com: I've opened the issue: https://github.com/sebfz1/wicket-jquery-ui/issues/153 On Thu, Feb 5, 2015 at 10:29 AM, Sebastien seb...@gmail.com 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 chris...@gmx.at 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 s...@meiers.net: 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
Re: Ajax - render Webmarkup-Container based on Wicket Events
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 chris...@gmx.at 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(ListItemString 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 seb...@gmail.com: I've opened the issue: https://github.com/sebfz1/wicket-jquery-ui/issues/153 On Thu, Feb 5, 2015 at 10:29 AM, Sebastien seb...@gmail.com 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 chris...@gmx.at 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 s...@meiers.net: 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
Re: Ajax - render Webmarkup-Container based on Wicket Events
Hi, On Fri, Feb 6, 2015 at 10:13 PM, Chris chris...@gmx.at 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 AjaxFallbackLinkString(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 seb...@gmail.com: 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 chris...@gmx.at 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(ListItemString 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 seb...@gmail.com: I've opened the issue: https://github.com/sebfz1/wicket-jquery-ui/issues/153 On Thu, Feb 5, 2015 at 10:29 AM, Sebastien seb...@gmail.com 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 chris...@gmx.at 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 s...@meiers.net: 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)
Re: JSR356 Websocket with Wicket 6.18
Done. https://github.com/wicketstuff/core/commit/bf312d35d6a3972b1bc625fca117e569daadcc65 It will be part of 6.19.0 Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Wed, Jan 28, 2015 at 6:16 PM, Martin Grigorov mgrigo...@apache.org wrote: Sorry but this won't be reusable for the community. I've suggested to put it in WicketStuff, not in Wicket. If I spend time to help you now then next week perhaps another user will ask the same. It doesn't scale :-/ I'll put it in WicketStuff ( https://github.com/wicketstuff/core/tree/wicket-6.x) when I have some time. Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Wed, Jan 28, 2015 at 5:51 PM, Alexander Landsnes Keül alexander.landsnes.k...@visma.com wrote: https://github.com/alexanderlk/wicket It's under the wicket-6.x branch, same exact structure as the one in 7.0.0-M4 Alex On Wed, Jan 28, 2015 at 4:25 PM, Martin Grigorov mgrigo...@apache.org wrote: url to your github repo ? Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Wed, Jan 28, 2015 at 5:02 PM, Alexander Landsnes Keül alexander.landsnes.k...@visma.com wrote: I forked Wicket to my github repo and took a look at it. Compiling wicket-native-websocket-javax with Java 6 and Wicket 6.19.0-SNAPSHOT was no problem at all, my problem popped up when I tried to get the embedded jetty server to run the test case. It fails with WebSocket connection to 'ws://localhost:8080/wicket/websocket?pageId=6wicket-ajax-baseurl=behavior%3F6wicket-app-name=jsr356.websockets' failed: Error during WebSocket handshake: Unexpected response code: 404 Setting breakpoints in AbstractUpgradeFilter confirms that requests for css/html/js files get processed, but it never intercepts the WebSocket request and I'll be damned if I can figure out why. This is running with Jetty 9.2.2 (from Wicket 7.0.0-M4). I pretty much just copied the -javax project from master, switched to the wicket-6.x branch and copied it in. Then downgraded dependencies to Wicket 6.19-SNAPSHOT and Java 6 and fixed the 4-5 compilation issues, so no witchcraft or wizardry has been attempted. If you do have a few pointers I'll be happy to see if I can manage to get it running, however WebSockets are hardly my forte. Alex On Tue, Jan 27, 2015 at 1:26 PM, Martin Grigorov mgrigo...@apache.org wrote: The needed changes to make -javax module working with Wicket 6.x are not too big. I think the easiest way to make it available for Wicket 6.x is to add (a clone/copy of) the module to WicketStuff project. This way it could be part of 6.19.0 too. Is this something you are interested to help with ? On Tue, Jan 27, 2015 at 2:11 PM, Alexander Landsnes Keül alexander.landsnes.k...@visma.com wrote: I checked out Wicket 6.18 and fiddled a bit with it, but it seems there are a few minor API breaks. One of the most pervasive ones is Application#setMetaData(...), in 6.18.0 it's a void function while 7.0.0-M4 returns this for chaining. I'm not sure JSR356 should be listed as an option for Wicket 6.x. It's certainly possible to fix it without too much effort, but since it changes a few signatures in wicket-core it requires all the projects checked out and modified. I don't have the time for it right now, and I do quite understand it if no one else feels like spending the time either. Naming conventions are the spice of policies. Milestones are viewed as dangerously buggy and unstable, and hence unfit for the hallowed halls of shippable code. I may try to sneak it in nonetheless, since I do need websocket support and the stable release is weeks away. Alex -Original Message- From: Martin Grigorov [mailto:mgrigo...@apache.org] Sent: 27 January 2015 10:30 To: users@wicket.apache.org Subject: Re: JSR356 Websocket with Wicket 6.18 Hi, JSR356 API jar is built with Java 7. This is the main reason why this module is not part of Wicket 6.x. If this single method is the only problem to use wicket-native-websocket-javax:7.0.0-M4 with Wicket 6.18.0 then please create a ticket in JIRA and we will make it public for 6.20.0. I think 7.0.0-M5 (currently being in vote) is as stable as 6.19.0 (also in vote). There were no API breaks since 7.0.0-M4 and hopefully M5 will be released as 7.0.0.Final in few weeks. We need your feedback now! It is mite annoying that most users don't want to even try it because of naming conventions :-/ Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Tue, Jan 27, 2015 at 11:08 AM, Alexander Landsnes Keül
Re: Removing table coloumn headers in wicket pageablelistview when list is empty
Hi K, If you want to hide the headers when the table is empty, you could use wicket:enclosure as suggested on the wicket guide https://wicket.apache.org/guide/guide/single.html#keepControl_9 . I have used the PagingPage from Wicket Examples (you can download it from Apache Wicket page) to illustrate this. I don't know how you check if the table is empty. I just went for dataView.getItemCount(). If you want the table with headers hidden, just call dataView.setVisible(false); And on HTML, use wicket:enclosure. Example: Note that on wicket:enclosure tag, I had to name the child it was referring to: pageable. Otherwise, it will throw an exception because wicket will not know which element you are referring to, in this case. Let me know if that works, Kind regards, Lucas -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Removing-table-coloumn-headers-in-wicket-pageablelistview-when-list-is-empty-tp4669246p4669328.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Removing table coloumn headers in wicket pageablelistview when list is empty
Hi lucast Thanks for the response. i have tried the exact same thing and had success with it. Cheers On Fri, Feb 6, 2015 at 3:13 PM, lucast [via Apache Wicket] ml-node+s1842946n4669328...@n4.nabble.com wrote: Hi K, If you want to hide the headers when the table is empty, you could use wicket:enclosure as suggested on the wicket guide https://wicket.apache.org/guide/guide/single.html#keepControl_9. I have used the PagingPage from Wicket Examples (you can download it from Apache Wicket page) to illustrate this. I don't know how you check if the table is empty. I just went for dataView.getItemCount(). If you want the table with headers hidden, just call dataView.setVisible(false); And on HTML, use wicket:enclosure. Example: wicket:enclosure child='pageable' table cellspacing=0 class=dataview tr thActions/th thID/th thFirst Name/th thLast Name/th thHome Phone/th thCell Phone/th /tr tr wicket:id=pageable tdspan wicket:id=actions[actions]/span/td tdspan wicket:id=contactid[contactid]/span/td tdspan wicket:id=firstname[firstname]/span/td tdspan wicket:id=lastname[lastname]/span/td tdspan wicket:id=homephone[homephone]/span/td tdspan wicket:id=cellphone[cellphone]/span/td /tr /table /wicket:enclosure Note that on wicket:enclosure tag, I had to name the child it was referring to: pageable. Otherwise, it will throw an exception because wicket will not know which element you are referring to, in this case. Let me know if that works, Kind regards, Lucas -- If you reply to this email, your message will be added to the discussion below: http://apache-wicket.1842946.n4.nabble.com/Removing-table-coloumn-headers-in-wicket-pageablelistview-when-list-is-empty-tp4669246p4669328.html To unsubscribe from Removing table coloumn headers in wicket pageablelistview when list is empty, click here http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4669246code=a29uZGV0aXVkYXlraXJhbkBnbWFpbC5jb218NDY2OTI0NnwxMDIzNzI0OTQ1 . NAML http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml - K -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Removing-table-coloumn-headers-in-wicket-pageablelistview-when-list-is-empty-tp4669246p4669330.html Sent from the Users forum mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Can i render content (css) of ContextRelativeResource to markup?
Hi, I like to render a PDF by my wicket page using flying-saucer. There i reference my css file by url (link). So far everything works. But if i switch to SSL flying-saucer breaks. Hmm. My solution to this issue would be to include content of my css file directly in the wicket-page used to render the pdf. I tried to get the resource and render it in markup like this code MyPage.java @Override public void renderHead(IHeaderResponse response) { IResource s = new SharedResourceReference(report.css).getResource(); Attributes a = new Attributes(getRequest(), getResponse()); s.respond(a); super.renderHead(response); } /code but i get at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.UnsupportedOperationException at org.apache.wicket.response.StringResponse.write(StringResponse.java:88) at org.apache.wicket.request.Response$StreamAdapter.write(Response.java:148) at org.apache.wicket.util.io.Streams.copy(Streams.java:109) at org.apache.wicket.util.io.Streams.copy(Streams.java:76) at org.apache.wicket.request.resource.ContextRelativeResource$1.writeData(ContextRelativeResource.java:110) at org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:528) at de.MyPage.renderHead(MyPage.java:88) at org.apache.wicket.Component.renderHead(Component.java:4419) at org.apache.wicket.Component.renderHead(Component.java:2679) at org.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy.renderRootComponent(AbstractHeaderRenderStrategy.java:127) at org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderHeader(ChildFirstHeaderRenderStrategy.java:60) at org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:170) at org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71) at org.apache.wicket.Component.internalRenderComponent(Component.java:2529) ... 51 more It seems that my ContextRelativeResource only provides content as byte[] ans StringResponse not supporting this. Maybe i be off the track. Thanks for your support Per - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Sortable - ConcurrentModificationException
I have fixed it - it was because of calling the method within the for loop. br, Chris Am 06.02.2015 um 17:56 schrieb Chris chris...@gmx.at: Hi Sebastian, I am using the method #ListUtils.move to sort a list of domain objects as soon as the method #onUpdate is called within a sortable object: In the first request, everything is fine, but in the second request I am receiving following error: Root cause: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) Can you give me a hint why this error occurs and how to fix it? @Override public void onUpdate(AjaxRequestTarget target, String item, int index) { super.onUpdate(target, item, index); user.sortObj(item, index); } * Class User: private final ListItem selectedItems = Lists.newArrayList(); public void sortItems(String itemName, int index) { for (Item currentItem : selectedItems) { if (itemName.equals(currentItem.getName())) { ListUtils.move(currentItem, index, selectedItems); } } } Thanks a lot, Chris - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Sortable - ConcurrentModificationException
Hi Chris, Right, you probably you can use an iterator instead of the foreach statement... Thanks for letting know you solved it! :) Best regards, Sebastien. On Fri, Feb 6, 2015 at 6:05 PM, Chris chris...@gmx.at wrote: I have fixed it - it was because of calling the method within the for loop. br, Chris Am 06.02.2015 um 17:56 schrieb Chris chris...@gmx.at: Hi Sebastian, I am using the method #ListUtils.move to sort a list of domain objects as soon as the method #onUpdate is called within a sortable object: In the first request, everything is fine, but in the second request I am receiving following error: Root cause: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) Can you give me a hint why this error occurs and how to fix it? @Override public void onUpdate(AjaxRequestTarget target, String item, int index) { super.onUpdate(target, item, index); user.sortObj(item, index); } * Class User: private final ListItem selectedItems = Lists.newArrayList(); public void sortItems(String itemName, int index) { for (Item currentItem : selectedItems) { if (itemName.equals(currentItem.getName())) { ListUtils.move(currentItem, index, selectedItems); } } } Thanks a lot, Chris - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Ajax - render Webmarkup-Container based on Wicket Events
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(ListItemString 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 seb...@gmail.com: I've opened the issue: https://github.com/sebfz1/wicket-jquery-ui/issues/153 On Thu, Feb 5, 2015 at 10:29 AM, Sebastien seb...@gmail.com 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 chris...@gmx.at 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 s...@meiers.net: 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
Wicket CDI and Asynchronous (and Websockets)
Dear all, In a usecase I've explained in a recent discussion [1], I would like to enhance it a little to finally obtain: 1/ An ajax button that launch 2/ 2/ A CDI injected EJB that executes an *asynchronous* time consuming operation 3/ Getting back to the wicket side to complete the ajax operation. 4/ A listener that has been provided to the EJB which, when events are fired, retrieve websockets information from the wicket Session (previously stored) and send a notification to the UI/user trough the websocket. For me, that's a very nice usecase: Imagine the user clicks on a button for a long running operation, then he continues using the site, navigate between pages etc... and is notified from time to time on the progress of the operation through websockets... I can make work either 3/ or 4/ but not both in conjunction, I get this (now famous) error: *There is no application attached to current thread EJB default* I unfortunately have to say I am not a CDI expert, and there is a lot of XxxScoped possible annotation, I tried all possible combination that would be logical IMO regarding the doc, read everything I could, but now I'm stuck... I am almost sure this is feasible, but maybe not as so easy as it seems I've prepared a concrete quickstart [2], it just need to be compiled and deployed in WidlyFly (JBoss 8), due to the websockets... I know I am asking for a real favor but I would be very thankful to the person(s) who would be able to make it work! I will leave the quickstart in my github's repo so any other user whiling to achieve the same usecase would already have a starting point... Thanks a lot in advance, Sebastien. [1] http://mail-archives.apache.org/mod_mbox/wicket-dev/201410.mbox/%3CCAAJwaYWCTTQDmu2pg3K=qyvgvhujgndaytjubc8sn+7fz-d...@mail.gmail.com%3E [2] https://github.com/sebfz1/wicket-quickstart-cdi-async
Sortable - ConcurrentModificationException
Hi Sebastian, I am using the method #ListUtils.move to sort a list of domain objects as soon as the method #onUpdate is called within a sortable object: In the first request, everything is fine, but in the second request I am receiving following error: Root cause: java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) Can you give me a hint why this error occurs and how to fix it? @Override public void onUpdate(AjaxRequestTarget target, String item, int index) { super.onUpdate(target, item, index); user.sortObj(item, index); } * Class User: private final ListItem selectedItems = Lists.newArrayList(); public void sortItems(String itemName, int index) { for (Item currentItem : selectedItems) { if (itemName.equals(currentItem.getName())) { ListUtils.move(currentItem, index, selectedItems); } } } Thanks a lot, Chris