Re: Feedback within Form Weird Issue
Try with binding the session. Maybe you run in stateless mode. Session session = getSession(); session.bind(); session.error(...); On Mon, May 13, 2013 at 11:08 PM, dhongyt davidhtr...@gmail.com wrote: Weird, it still does not show up. I do have a function that gets the session and register the error to it. Can the feedback be apart of the form? I have tried it outside the form with no luck either. I also changed my onSubmit to use session; It doesn't need to call the error function before the setResponsePage does it? -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Feedback-within-Form-Weird-Issue-tp4658757p4658767.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 -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/
Re: Server and client side validation
Hi Gabriel, On Tue, May 14, 2013 at 12:43 AM, Gabriel Landon glan...@piti.pf wrote: Hi Martin, It does work with the following code: /return $('#%s').closest('form').parsley( 'validate' );/ Thank you very much. To find out whether the form is in a ModalWindow or not, I've used the following code: /@Override public void renderHead(final IHeaderResponse varResponse) { super.renderHead(varResponse); // starts parsley for this form if (this.findParent(ModalWindow.class) == null) { I think you should look for the root form instead of a ModalWindow. You can have nested forms in your app without ModalWindow around. See org.apache.wicket.markup.html.form.Form#findForm and org.apache.wicket.markup.html.form.Form#getRootForm varResponse .render(OnDomReadyHeaderItem.forScript(String.format($('#%s').parsley();, this.getMarkupId(; } else { varResponse.render(OnDomReadyHeaderItem.forScript(String.format($('#%s').closest('form').parsley();, this.getMarkupId(; } }/ Is there a better way to do that, or is it OK? Regards, Gabriel. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Server-and-client-side-validation-tp4658242p4658773.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 -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/
Re: Unknown tag name with Wicket namespace: 'panel'
Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true); } public ExtBookMarkablePageLinkT setLabel(IModel? label) { this.label.setDefaultModel(label); return this; } } and this my html file: !doctype html html xmlns:wicket=http://wicket.apache.org; wicket:panel span wicket:id=label/span /wicket:panel /html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- regards, Vineet Semwal -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/
RE: form processing adding new inputs with an ajax onupdate
Hi Paul, Thanks for your suggestion, hadn't tried that, but I have now and it doesn't fix my problem. I use the idiom rather than simply calling Because: 1. depending on the situation it can lead to many setVisible calls in different parts of the page 2. it localises the visible setting to the component to which it applies 3. i don't need to pepper the code with lots of references to the component whose visibility is to be set 4. http://wicketinaction.com/2011/11/implement-wicket-component-visibility-changes-properly/ Thanks anyway for your suggestion, Cheers Simon -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/form-processing-adding-new-inputs-with-an-ajax-onupdate-tp4658758p4658778.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: form processing adding new inputs with an ajax onupdate
Hi Paul, I was mistaken. I apologise. Previously I hadn't completely removed the onConfigure method from the form component and simply called the setVisible in the onUpdate method of the AjaxFormComponentUpdatingBehavior(onchange) / AFCUB(onchange). So your suggestion worked! Thank you very much. I would still really like to understand why the onConfigure way of setting the visibility of the component didn't work, does anybody have any idea about this? Cheers Simon -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/form-processing-adding-new-inputs-with-an-ajax-onupdate-tp4658758p4658779.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: Deserialization InvalidClassException : no valid constructor
This could only work if BufferedImage itself had a no-arg constructor. It is it the first non-serializable class in the hierarchy that needs to have it, not the first serializable one, like in your example. Besides, you would still lose all data stored in the BufferedImage's fields (i.e. the image stored in it). On Mon, May 13, 2013 at 7:15 PM, smallufo small...@gmail.com wrote: Today I encountered one famous deserialization problem : InvalidClassException : no valid constructor I googled and found some solution , but all are in-vain. The solution says the first non-serializable super class should define a no-arg constructor. But I try to define a no-arg constructor to EACH class of the HIERARCHY , and EACH class implements Serializable... (which is not necessary , but I want to make it simple , to pinpoint the problem) My base class is an abstract class extends BufferedImage (java 2D) while BufferedImage is not Serializable So I make my abstract class implements Serializable and define a no-arg default constructor. The total hierarchy is : public abstract class AbstractChart extends BufferedImage implements Serializable { public AbstractChart() {// I try to remove this constructor , but in vain super(0 , 0, TYPE_INT_ARGB); } } and first child class : public class ChildChart extends AbstractChart implements Serializable { public ChildChart() { super(); // or not calling super() } } and the grandson class : public class GrandsonChart extends ChildChart implements Serializable { public GrandsonChart() { super(); // or not calling super() } } No matter I calls super() in ChildChart or GrandsonChart , Caused by: java.io.InvalidClassException: foobar.GrandsonChart; no valid constructor It happens when I click a button ,use ajax to paint this GrandsonChart , and click another page , and use browser back . The browser will be redirected to /context/wicket/page?xxx (The error page) The screen shows : Could not deserialize object using: class org.apache.wicket.serialize.java.JavaSerializer$ClassResolverObjectInputStream and in the console log , I can see this InvalidClassException is thrown. Any way to solve this problem ? (I've already added default no-arg constructor , and make each class implements Serializable , but still not working ) environment : Wicket version : 6.7 Resin 4.0.25 Java HotSpot(TM) 64-Bit Server VM 20.4-b02-402, 64, mixed mode, Apple Inc (It happens on Linux JDK too)
Re: Unknown tag name with Wicket namespace: 'panel'
On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov mgrigo...@apache.orgwrote: Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. Now I realize what happens. The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at compile time, i.e. its String value is put in the place of the constant. That's why it doesn't trigger the static initializer. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true); } public ExtBookMarkablePageLinkT setLabel(IModel? label) { this.label.setDefaultModel(label); return this; } } and this my html file: !doctype html html xmlns:wicket=http://wicket.apache.org; wicket:panel span wicket:id=label/span /wicket:panel /html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- regards, Vineet Semwal -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/
Re: Unknown tag name with Wicket namespace: 'panel'
Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the panel tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it .. On Tue, May 14, 2013 at 5:18 PM, Martin Grigorov mgrigo...@apache.orgwrote: On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. Now I realize what happens. The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at compile time, i.e. its String value is put in the place of the constant. That's why it doesn't trigger the static initializer. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true); } public ExtBookMarkablePageLinkT setLabel(IModel? label) { this.label.setDefaultModel(label); return this; } } and this my html file: !doctype html html xmlns:wicket=http://wicket.apache.org; wicket:panel span wicket:id=label/span /wicket:panel /html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- regards, Vineet Semwal -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- regards, Vineet Semwal
Re: Unknown tag name with Wicket namespace: 'panel'
also why is well known tagnames getting registered and why are not they just kept at start itself,they are just strings ,registering only makes sense for the new tags in my opinion.. On Tue, May 14, 2013 at 6:45 PM, vineet semwal vineetsemwa...@gmail.comwrote: Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the panel tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it .. On Tue, May 14, 2013 at 5:18 PM, Martin Grigorov mgrigo...@apache.orgwrote: On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. Now I realize what happens. The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at compile time, i.e. its String value is put in the place of the constant. That's why it doesn't trigger the static initializer. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true); } public ExtBookMarkablePageLinkT setLabel(IModel? label) { this.label.setDefaultModel(label); return this; } } and this my html file: !doctype html html xmlns:wicket=http://wicket.apache.org; wicket:panel span wicket:id=label/span /wicket:panel /html - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- regards, Vineet Semwal -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/ -- Martin Grigorov Wicket Training
Re: Unknown tag name with Wicket namespace: 'panel'
On Tue, May 14, 2013 at 3:28 PM, vineet semwal vineetsemwa...@gmail.comwrote: also why is well known tagnames getting registered and why are not they just kept at start itself,they are just strings ,registering only makes sense for the new tags in my opinion.. Agreed. We can pre-register all known tags like: panel, border, head, container, etc. No need to do this lazily. org.apache.wicket.markup.parser.filter.WicketTagIdentifier#wellKnownTagNames is a static HashSetString. It won't be too much memory consumption. Please file a ticket. On Tue, May 14, 2013 at 6:45 PM, vineet semwal vineetsemwa...@gmail.com wrote: Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the panel tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it .. On Tue, May 14, 2013 at 5:18 PM, Martin Grigorov mgrigo...@apache.org wrote: On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. Now I realize what happens. The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at compile time, i.e. its String value is put in the place of the constant. That's why it doesn't trigger the static initializer. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true); } public ExtBookMarkablePageLinkT setLabel(IModel? label) { this.label.setDefaultModel(label); return this; } } and this my html file: !doctype html html xmlns:wicket=http://wicket.apache.org; wicket:panel span wicket:id=label/span /wicket:panel
Re: Feedback within Form Weird Issue
Thanks I will try both things. I believe my pages are stateful. Maybe its because I create an ErrorFeedback that extends the Feedback and didn't override some classes needed. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Feedback-within-Form-Weird-Issue-tp4658757p4658788.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
Component twice in markup while ajax refresh in Wicket 6.7 (migrated from 1.5.10)
Hi I migrated my application from Wicket 1.5.10 to 6.7 During testing I recognized that during an ajax update (replacement) of a component, the markup of the component is twice in the HTML markup (the old and the new markup). Thus the execution of javascript inside a component may fail due to the fact, that two components with the same id are present in the HTML markup. EXAMPLE *HTML:* lt;a wicket:id=quot;testlinkquot;gt;testlinklt;/agt; lt;div wicket:id=quot;testboxquot; style=quot;width: 100px; height: 100px; border: 1px solid #ccc;quot;gt; lt;script type=quot;text/javascriptquot;gt; alert(#39;hello#39;); lt;/scriptgt; lt;/divgt; *JAVA:* final WebMarkupContainer testbox = new WebMarkupContainer(testbox); testbox.setOutputMarkupId(true); add(testbox); add(new AjaxLinkVoid(testlink) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { target.add(testbox); } }); So while the ajax update is processed the 'testbox' DIV and its javascript are present twice (the old and new DIV). If the javascript is a little more complex and for example changes stuff inside the DIV, the javascript will change stuff in the old instead of the new DIV container. My javascript relies on the fact, that an id should always be present just once. Why is the old DIV not removed first, before the new DIV is appended? Can I change this behavior somehow? Thanks in advance Nico -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Component-twice-in-markup-while-ajax-refresh-in-Wicket-6-7-migrated-from-1-5-10-tp4658789.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: Component twice in markup while ajax refresh in Wicket 6.7 (migrated from 1.5.10)
Create a quickstart and attach it to a Jira issue please. Sven On 05/14/2013 04:37 PM, Nico wrote: Hi I migrated my application from Wicket 1.5.10 to 6.7 During testing I recognized that during an ajax update (replacement) of a component, the markup of the component is twice in the HTML markup (the old and the new markup). Thus the execution of javascript inside a component may fail due to the fact, that two components with the same id are present in the HTML markup. EXAMPLE *HTML:* lt;a wicket:id=quot;testlinkquot;gt;testlinklt;/agt; lt;div wicket:id=quot;testboxquot; style=quot;width: 100px; height: 100px; border: 1px solid #ccc;quot;gt; lt;script type=quot;text/javascriptquot;gt; alert(#39;hello#39;); lt;/scriptgt; lt;/divgt; *JAVA:* final WebMarkupContainer testbox = new WebMarkupContainer(testbox); testbox.setOutputMarkupId(true); add(testbox); add(new AjaxLinkVoid(testlink) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { target.add(testbox); } }); So while the ajax update is processed the 'testbox' DIV and its javascript are present twice (the old and new DIV). If the javascript is a little more complex and for example changes stuff inside the DIV, the javascript will change stuff in the old instead of the new DIV container. My javascript relies on the fact, that an id should always be present just once. Why is the old DIV not removed first, before the new DIV is appended? Can I change this behavior somehow? Thanks in advance Nico -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Component-twice-in-markup-while-ajax-refresh-in-Wicket-6-7-migrated-from-1-5-10-tp4658789.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 - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Component twice in markup while ajax refresh in Wicket 6.7 (migrated from 1.5.10)
Hi, We use https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js#L1617 because it is faster than jQuery#replaceWith(). So yes, there is a small period when both the old and the new are in the DOM. As Sven asked - please create a quicktart and attach it to a ticket so we can see whether we will find a solution or we will have to use the slower way to replace. On Tue, May 14, 2013 at 4:48 PM, Sven Meier s...@meiers.net wrote: Create a quickstart and attach it to a Jira issue please. Sven On 05/14/2013 04:37 PM, Nico wrote: Hi I migrated my application from Wicket 1.5.10 to 6.7 During testing I recognized that during an ajax update (replacement) of a component, the markup of the component is twice in the HTML markup (the old and the new markup). Thus the execution of javascript inside a component may fail due to the fact, that two components with the same id are present in the HTML markup. EXAMPLE *HTML:* lt;a wicket:id=quot;testlinkquot;**gt;testlinklt;/agt; lt;div wicket:id=quot;testboxquot; style=quot;width: 100px; height: 100px; border: 1px solid #ccc;quot;gt; lt;script type=quot;text/javascript**quot;gt; alert(#39;hello#39;); lt;/scriptgt; lt;/divgt; *JAVA:* final WebMarkupContainer testbox = new WebMarkupContainer(testbox); testbox.setOutputMarkupId(**true); add(testbox); add(new AjaxLinkVoid(testlink) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { target.add(testbox); } }); So while the ajax update is processed the 'testbox' DIV and its javascript are present twice (the old and new DIV). If the javascript is a little more complex and for example changes stuff inside the DIV, the javascript will change stuff in the old instead of the new DIV container. My javascript relies on the fact, that an id should always be present just once. Why is the old DIV not removed first, before the new DIV is appended? Can I change this behavior somehow? Thanks in advance Nico -- View this message in context: http://apache-wicket.1842946.** n4.nabble.com/Component-twice-**in-markup-while-ajax-refresh-** in-Wicket-6-7-migrated-from-1-**5-10-tp4658789.htmlhttp://apache-wicket.1842946.n4.nabble.com/Component-twice-in-markup-while-ajax-refresh-in-Wicket-6-7-migrated-from-1-5-10-tp4658789.html Sent from the Users forum mailing list archive at Nabble.com. --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org --**--**- To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.orgusers-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org -- Martin Grigorov Wicket Training Consulting http://jWeekend.com http://jweekend.com/
Re: Call me page wicket from iframe in page.jsp
Thank you! Now, my problem is that there are two sessions (one in wicket application and another in jsp). How achievement maintain the values existing in the request from wicket to return to interact in the page jsp. Example: page in wicket (Page.java) WebRequestCycle cycle = (WebRequestCycle) RequestCycle.get(); HttpServletRequest request = cycle.getWebRequest().getHttpServletRequest(); HttpServletResponse response = cycle.getWebResponse().getHttpServletResponse(); HttpSession session = request.getSession(); How return a page in jsp. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Call-me-page-wicket-from-iframe-in-page-jsp-tp4658716p4658792.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
Possible bug with AjaxLazyLoadPanel
Hello, I'm trying to get a component to update with Ajax from a AjaxLink, but always returns null, the access component is as follows. Component current = this.getPage().get(commentsPanel).get (modalPanel); Where commentsPanel is a AjaxLazyLoadPanel and modalPanel is of type Panel, If commentsPanel I put Panel type, the component finds correctly, -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Possible-bug-with-AjaxLazyLoadPanel-tp4658793.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: Unknown tag name with Wicket namespace: 'panel'
i have just created issue https://issues.apache.org/jira/browse/WICKET-5189 thank you ! On Tue, May 14, 2013 at 7:15 PM, Martin Grigorov mgrigo...@apache.orgwrote: On Tue, May 14, 2013 at 3:28 PM, vineet semwal vineetsemwa...@gmail.com wrote: also why is well known tagnames getting registered and why are not they just kept at start itself,they are just strings ,registering only makes sense for the new tags in my opinion.. Agreed. We can pre-register all known tags like: panel, border, head, container, etc. No need to do this lazily. org.apache.wicket.markup.parser.filter.WicketTagIdentifier#wellKnownTagNames is a static HashSetString. It won't be too much memory consumption. Please file a ticket. On Tue, May 14, 2013 at 6:45 PM, vineet semwal vineetsemwa...@gmail.com wrote: Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the panel tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it .. On Tue, May 14, 2013 at 5:18 PM, Martin Grigorov mgrigo...@apache.org wrote: On Tue, May 14, 2013 at 9:51 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi Vineet, On Mon, May 13, 2013 at 11:09 PM, vineet semwal vineetsemwa...@gmail.comwrote: hi martin, that static block need not be copied to make it work,since it's a static block, it will get executed when the Panel class gets loaded, the Panel class will get loaded by PanelMarkupSourcingStrategy itself You are correct. I have no idea why it failed for Andy the first time. Now I realize what happens. The usage of Panel.PANEL is inlined in PanelMarkupSourcingStrategy at compile time, i.e. its String value is put in the place of the constant. That's why it doesn't trigger the static initializer. since it's referring a constant of panel . yes but i agree not a very nice code flow so should be improved ,i always used to think they are doing this in a very weird way :-) On Tue, May 14, 2013 at 1:48 AM, Martin Grigorov mgrigo...@apache.org wrote: Hi, On Mon, May 13, 2013 at 10:02 PM, Paul Bors p...@bors.ws wrote: Get rid of your newMarkupSourcingStrategy() override and place the HTML right next to the Java source code and you'll be fine. This will not work because usually Link component has no its own markup file. See Panel.java. It has: static { // register wicket:panel WicketTagIdentifier.registerWellKnownTagName(PANEL); } Just add this to your class and it should work. I think this is a bug in Wicket though - this piece of code should be executed by PanelMarkupSourcingStrategy, not by Panel itself. Feel free to file a bug report. If you do not like the default location of the HTML next to your Java classes, then read Chapter 4 of the Wicket user guide you can get for free from wicket's website at: http://wicket.apache.org/learn/books/ ~ Thank you, Paul Bors -Original Message- From: Andy Van Den Heuvel [mailto:andy.vandenheu...@gmail.com] Sent: Monday, May 13, 2013 2:04 PM To: users@wicket.apache.org Subject: Unknown tag name with Wicket namespace: 'panel' I get an exception and it's not very clear to me what I'm doing wrong. This is the exception: Last cause: Unknown tag name with Wicket namespace: 'panel'. Might be you haven't installed the appropriate resolver? 'wicket:panel' (line 3, column 2) I'm trying to override the markupSourcingStrategy because i want this class to have it's own html file. Anybody an idea? I use wicket-core 6.7.0. This is my java file: public class ExtBookMarkablePageLinkT extends BookmarkablePageLinkT { private final Component label; public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass) { this(id, pageClass, new PageParameters()); } public C extends Page ExtBookMarkablePageLink(String id, ClassC pageClass, final PageParameters parameters) { super(id, pageClass, parameters); add(label = newLabel(label)); } protected Component newLabel(final String markupId) { return new Label(markupId, new ModelString()).setRenderBodyOnly(true); } @Override protected IMarkupSourcingStrategy newMarkupSourcingStrategy() { return new PanelMarkupSourcingStrategy(true);
Re: Server and client side validation
Martin, Thank you it was even easier than I though. /// starts parsley for this form (or the root form) final Form? form = (Form?) component; varResponse.render(OnDomReadyHeaderItem.forScript(String.format($('#%s').parsley();, form.getRootForm() .getMarkupId(;/ Regards, Gabriel -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Server-and-client-side-validation-tp4658242p4658795.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
Attaching Ajax Function to Java Method
I'm trying to create a typeahead component for Wicket that uses Bootstrap's Typeahead: To set this up though I need to provide the .typeahead method in JavaScript with a function that will return the results, given the query. What I'd like to do is attach that JavaScript function to a Java method much like what is done with an AjaxEventBehavior [2]. I cannot figure out how to go about setting all of this up... any ideas? Thanks... Bill- [1] http://twitter.github.io/bootstrap/javascript.html#typeahead [2] http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/ajax/AjaxEventBehavior.html
Re: Feedback within Form Weird Issue
I solved the issue. I was invalidating my session before it could display. -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/Feedback-within-Form-Weird-Issue-tp4658757p4658797.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
AutoCompleteTextField issues
I have used this before as a simple String model which works fine but with other types i have some isues going on any help would be appreciated. using: final AutoCompleteTextFieldXYZ something = new AutoCompleteTextFieldXYZ(code, xYZTypeModel, renderer) the options are displayed correctly selects fine too but XYZ.getObject() call throws exception: java.lang.ClassCastException: java.lang.String cannot be cast to XYZ not sure how it is able to Set String in a XYZ type. I am using below renderer IAutoCompleteRendererXYZ renderer = new AbstractAutoCompleteTextRendererXYZ() { private static final long serialVersionUID = 1L; @Override protected String getTextValue(XYZ object) { return XYX.getDisplayText(); } }; Thanks -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/AutoCompleteTextField-issues-tp4658798.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: Attaching Ajax Function to Java Method
Select2's wicket integration should provide you with some pointers [1]. It basically points down to implementing a listener interface, and providing the url to it to your javascript code. You can then return your data when the listener interface's method is called. [1] https://github.com/ivaynberg/wicket-select2/blob/master/wicket-select2/src/main/java/com/vaynberg/wicket/select2/AbstractSelect2Choice.java Met vriendelijke groet, Kind regards, Bas Gooren Op 14-5-2013 22:36, schreef William Speirs: I'm trying to create a typeahead component for Wicket that uses Bootstrap's Typeahead: To set this up though I need to provide the .typeahead method in JavaScript with a function that will return the results, given the query. What I'd like to do is attach that JavaScript function to a Java method much like what is done with an AjaxEventBehavior [2]. I cannot figure out how to go about setting all of this up... any ideas? Thanks... Bill- [1] http://twitter.github.io/bootstrap/javascript.html#typeahead [2] http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/ajax/AjaxEventBehavior.html
Re: Attaching Ajax Function to Java Method
The following seems to work (using wicket 6.7 with the experimental bootstrap module). Basically, this ajax behavior is called on page load. At that point, it writes out the javascript to initialize the object with typeahead parameters. HTML: input wicket:id=typeahead type=text data-provide=typeahead data-items=4 JAVA: add(new TextFieldString(typeahead).add(new TypeAhead())); TypeAhead Behavior: import org.apache.wicket.Component; import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import java.util.Arrays; import java.util.List; public class TypeAhead extends AbstractDefaultAjaxBehavior { @Override protected void onBind() { super.onBind(); getComponent().setOutputMarkupId(true); } @Override protected void respond(AjaxRequestTarget target) { String sources = toJSONArray(getOptions()); String script = String.format($('#%s').typeahead( { source: %s } );, getComponent().getMarkupId(), sources); target.appendJavaScript(script); } @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); response.render(OnDomReadyHeaderItem.forScript( this.getCallbackScript() )); } // OVERRIDE THIS TO SUPPLY LIST OF OPTIONS public ListString getOptions() { return Arrays.asList( new String[] {Alabama, Aftermath, Absinth} ); } // There's probably a built-in method that does this… private String toJSONArray(ListString strings) { StringBuffer result = new StringBuffer([); for (String string : strings) { result.append('); result.append(string); result.append(',); } if (strings.size() 0) { result.deleteCharAt(result.lastIndexOf(,)); } result.append(]); return result.toString(); } } Hope this works for you. -- Don Ferguson On Tuesday, May 14, 2013 at 1:36 PM, William Speirs wrote: I'm trying to create a typeahead component for Wicket that uses Bootstrap's Typeahead: To set this up though I need to provide the .typeahead method in JavaScript with a function that will return the results, given the query. What I'd like to do is attach that JavaScript function to a Java method much like what is done with an AjaxEventBehavior [2]. I cannot figure out how to go about setting all of this up... any ideas? Thanks... Bill- [1] http://twitter.github.io/bootstrap/javascript.html#typeahead [2] http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/ajax/AjaxEventBehavior.html
Re: Attaching Ajax Function to Java Method
@Bas Gooren that code you linked was very helpful. I have what I want up and working, but it's using a bunch of ugly jQuery ajax callbacks hacked into StringBuilders :-( @Don Ferguson I don't *think* this is what I'm looking for as I have thousands of options and I don't want them rendered at page load. Instead I want to register a function that will call-back to my Java code when someone start typing and allows me to search. However, I did not run it, just looked at the code. Here is what I have, again it's ugly. Does anyone know how I can clean-up the jQuery.ajax stuff? I've gotta imagine there is a way to do it in Wicket. Thanks in advance... Bill- public class TypeaheadFieldT extends TextFieldT implements IResourceListener { private static final long serialVersionUID = 1L; public TypeaheadField(final String id, final IModelT model) { super(id, model); setOutputMarkupId(true); add(new AttributeModifier(data-provide, typeahead)); } @Override public void renderHead(final IHeaderResponse response) { super.renderHead(response); StringBuilder sb = new StringBuilder(); sb.append($('#); sb.append(getMarkupId().replace(., .)); sb.append(').typeahead(); sb.append(getConfig()); sb.append();); response.render(OnDomReadyHeaderItem.forScript(sb.toString())); } private String getConfig() { final StringBuilder ajaxCall = new StringBuilder(); ajaxCall.append({ \source\: ); ajaxCall.append(function(query, process) { $.ajax({ url: \); ajaxCall.append(urlFor(IResourceListener.INTERFACE, null)); ajaxCall.append(\, data: { \query\: query }, success: function(data, status, jqXHR) { process(data); } }); }, ); ajaxCall.append(items: 4 }); return ajaxCall.toString(); } @Override public void onResourceRequested() { final Request request = getRequestCycle().getRequest(); final IRequestParameters params = request.getRequestParameters(); final String query = params.getParameterValue(query).toOptionalString(); WebResponse webResponse = (WebResponse) getRequestCycle().getResponse(); webResponse.setContentType(application/json); OutputStreamWriter out = new OutputStreamWriter(webResponse.getOutputStream(), getRequest().getCharset()); JSONWriter json = new JSONWriter(out); try { json.array(); json.value(Connecticut); json.value(California); json.value(Colorado); json.endArray(); } catch (JSONException e) { throw new WicketRuntimeException(Could not write Json response, e); } try { out.flush(); } catch (IOException e) { throw new WicketRuntimeException(Could not write Json to servlet response, e); } } } On Tue, May 14, 2013 at 10:04 PM, Don Ferguson don.fergu...@gmail.com wrote: The following seems to work (using wicket 6.7 with the experimental bootstrap module). Basically, this ajax behavior is called on page load. At that point, it writes out the javascript to initialize the object with typeahead parameters. HTML: input wicket:id=typeahead type=text data-provide=typeahead data-items=4 JAVA: add(new TextFieldString(typeahead).add(new TypeAhead())); TypeAhead Behavior: import org.apache.wicket.Component; import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import java.util.Arrays; import java.util.List; public class TypeAhead extends AbstractDefaultAjaxBehavior { @Override protected void onBind() { super.onBind(); getComponent().setOutputMarkupId(true); } @Override protected void respond(AjaxRequestTarget target) { String sources = toJSONArray(getOptions()); String script = String.format($('#%s').typeahead( { source: %s } );, getComponent().getMarkupId(), sources); target.appendJavaScript(script); } @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); response.render(OnDomReadyHeaderItem.forScript( this.getCallbackScript() )); } // OVERRIDE THIS TO SUPPLY LIST OF OPTIONS public ListString getOptions() { return Arrays.asList( new String[] {Alabama, Aftermath, Absinth} ); } // There's probably a built-in method that does this… private String toJSONArray(ListString strings) { StringBuffer result = new StringBuffer([); for (String string : strings) { result.append('); result.append(string); result.append(',); } if
Re: Retrieve a value of textField and set the property of the Model
Hi Paul, thanks very much for your help! I followed your suggestion but this peace of code doesn't compile unfortunately: IModel descriptionModel = new PropertyModel[Meeting](meeting, description)); I have tried val descriptionModel[IModel] = new PropertyModel[Meeting](meeting, description)); //wrong systax for scala and val descriptionModel = new IModel[Meeting](meeting, description)); // IModel can't be instanced But I'm doing this thing wrong. I made a great progress with my app but now I'm struggling with this issue and I spent a lot of time to archive this simple task. If I'm doing this stuff with java my life could be much easier :-D. I'll appreciate your hep again Thanks very much Bera 2013/5/10 Paul Bors p...@bors.ws Why the Ajax round-trips for each keyup to extract the model's object? Have you tried to implement just the Save link/button and then look-up the model object from inside the onClick() method? In your case it would come from the PropertyModel you use already: TextField description = new TextField(description,new PropertyModel[Meeting](meeting, description)) change to: IModel descriptionModel = new PropertyModel[Meeting](meeting, description)); TextField descriptionTextField = new TextField(description, descriptionModel ); and your link becomes: private class LinkSave(id: String, meeting: Meeting) extends AjaxLink[String](id) { @SpringBean var meetingMediator: TMeetingMediator = _ def onClick(target: AjaxRequestTarget) { meetingDAO.saveMeeting(descriptionModel.getObject()) } } Unless you want to also update some other element on the screen with each user key press I really don't think you need the keyup listener. ~ Thank you, Paul Bors On Thu, May 9, 2013 at 11:03 PM, Bruno Moura brunormo...@gmail.com wrote: I'm trying to implement a ListView and in on column of it I added a listView, for each line, I want to save the data inserted on it and update the model: I'm implemented the code bellow: val description = new TextField(description,new PropertyModel[Meeting](meeting, description)) description.add(new AjaxFormComponentUpdatingBehavior(keyup) { protected def onUpdate(target: AjaxRequestTarget) { description.getDefaultModelObjectAsString } }) item.add(description) And I added a link for each line of my ListView for save the information in database, each line is a instance of a model meeting as is showed bellow: item.add(new LinkSave(save, meeting)) private class LinkSave(id: String, meeting: Meeting) extends AjaxLink[String](id) { @SpringBean var meetingMediator: TMeetingMediator = _ setVisible(clickavel.asInstanceOf[Boolean]) add(new Label(label, new Model[String]() { override def getObject: String = Save })) def onClick(target: AjaxRequestTarget) { meetingDAO.saveMeeting(meeting) } } But unfortunately the code above doesn't work. It's fail to retrieve the value of the text field and also to set the attribute description of the Object meeting with the value of the text field, so in the database the column description is never filled Someone know where I am doing wrong stuff? Thanks a lot! Bera
Ill really apreciate the help to get the selected item of a DropDownChoice using Scala
Hi For some weeks I'm trying to implement a simple combobox, DDC, and I'm struggling with this. I asked for some help several times but unfortunately I didn't archive my goal because I'm failing sometimes to understand scala with wicket, I have a little background with them at the moment. Anyway, my code is showed bellow: *// ComboBox in a listView item.add(new DropDownChoice(customerSelection, new PropertyModel[Customer](customer, name), listCustomer, new ChoiceRenderer[Customer](name))* If I create a variable, for example,* val custName*, to receive the name of the selected customer which functions I need to implement on the creation of DDC object and how can I retrieve this value for the variable? Thanks very much for help me.
Re: Unknown tag name with Wicket namespace: 'panel'
On Tue, May 14, 2013 at 6:45 PM, vineet semwal vineetsemwa...@gmail.comwrote: Martin, thanks for the explanation,you are right ! ,i just tested that static block doesn't get executed .. but i could never reproduce Andy's problem .., i also checked and noticed that WicketTagIdentifier is registering the panel tagname so i don't know what is registering it but it's getting registered ,i tried looking a bit at code but could not find it .. actually later yesterday i was able to reproduce the problem in a pure quickstart ,earlier i was testing on some test project where i test/experiment odd things,something there was registering the panel tagname ,i also realized that corresponding issue was created and fixed so all is well :-)