Johan, I got it working as below. Shall I create a Jira issue for this? I think it would be more logical if checkbox could deal with cleared input.
Erik. // The reset button Button resetButton = new Button("resetbutton") { /** [EMAIL PROTECTED] */ protected void onSubmit() { // Clear the form form.visitChildren(FormComponent.class, new Component.IVisitor() { public Object component(Component component) { FormComponent formComponent = ((FormComponent) component); if (formComponent instanceof CheckBox) { ((CheckBox) formComponent).setModelObject("false"); } else { formComponent.clearInput(); formComponent.updateModel(); } return Component.IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER; } }); } }; // Perform only the onSubmit, no validation resetButton.setDefaultFormProcessing(false); form.add(resetButton); Erik van Oosten wrote: > Yes, correct. The model should be cleared as well. > And it indeed uses setDefaultFormProcessing(false). > > The approach your describing below will throw exceptions for checkboxes: > > WicketMessage: unable to set object null, model: > Model:classname=[wicket.model.PropertyModel]:attached=true:[EMAIL > PROTECTED]:expression=[searchInHistoricNames]:propertyType=[null], > called with component [MarkupContainer [Component id = formelement, page > = nl.amsterdam.rbrb.web.search.SearchPage, path = > 2:maincontent:searchform:form:formElements:2:inputfragment:formelement.CheckBox, > > isVisible = true, isVersioned = false]] > > Root cause: > > wicket.util.convert.ConversionException: Can't convert null value to a > primitive class: boolean for setting it on > [EMAIL PROTECTED] > at > wicket.util.lang.PropertyResolver$MethodGetAndSet.setValue(Ljava.lang.Object;Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(PropertyResolver.java:838) > at > wicket.util.lang.PropertyResolver$ObjectAndGetSetter.setValue(Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(PropertyResolver.java:447) > at > wicket.util.lang.PropertyResolver.setValue(Ljava.lang.String;Ljava.lang.Object;Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(PropertyResolver.java:136) > at > wicket.model.AbstractPropertyModel.onSetObject(Lwicket.Component;Ljava.lang.Object;)V(AbstractPropertyModel.java:182) > at > wicket.model.AbstractDetachableModel.setObject(Lwicket.Component;Ljava.lang.Object;)V(AbstractDetachableModel.java:131) > at > wicket.Component.setModelObject(Ljava.lang.Object;)Lwicket.Component;(Component.java:2042) > at > wicket.markup.html.form.FormComponent.updateModel()V(FormComponent.java:840) > at > nl.amsterdam.rbrb.web.form.FormPanel$5.component(Lwicket.Component;)Ljava.lang.Object;(FormPanel.java:214) > > <--- the line with formComponent.updateModel(); > > > Regards, > Erik. > > > > > Johan Compagner wrote: > >> why do you want to call updateFormComponentModels? >> You also want to clear all model data? So the models already did get >> some data from a previous request? >> (i take the reset button has setDefaultFormProcessing(false) ?) >> >> but why not do this: >> >> form.visitChildren(FormComponent.class, new >> Component.IVisitor() { >> public Object component(Component component) { >> ((FormComponent) component).clearInput(); >> ((FormComponent) component).updateModel(); >> return >> Component.IVisitor.CONTINUE >> >> _TRAVERSAL_BUT_DONT_GO_DEEPER; >> } >> }); >> >> >> On 1/9/07, *Erik van Oosten* < [EMAIL PROTECTED] >> <mailto:[EMAIL PROTECTED]>> wrote: >> >> Hi, >> >> I am trying the make a reset button (clears all fields) with code >> below. >> According to the class comment of Form I can call >> updateFormComponentModels, however that method is not visible. >> >> What can I do to get the desired effect? I am using wicket-1.2.4. >> >> Regards, >> Erik. >> >> >> // The reset button >> Button resetButton = new Button("resetbutton") { >> /** [EMAIL PROTECTED] */ >> protected void onSubmit() { >> // Clear the form >> form.visitChildren(FormComponent.class, new >> Component.IVisitor() { >> public Object component(Component component) { >> ((FormComponent) component).clearInput(); >> return >> Component.IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER; >> } >> }); >> * form.updateFormComponentModels(); // <------ method >> not visible >> * } >> }; >> // Perform only the onSubmit, no validation >> resetButton.setDefaultFormProcessing(false); >> form.add(resetButton); >> >> >> >> -- >> Erik van Oosten >> http://www.day-to-day-stuff.blogspot.com/ >> >> >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to >> share your >> opinions on IT & business topics through brief surveys - and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> >> <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> >> _______________________________________________ >> Wicket-user mailing list >> Wicket-user@lists.sourceforge.net >> <mailto:Wicket-user@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/wicket-user >> >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to share your >> opinions on IT & business topics through brief surveys - and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Wicket-user mailing list >> Wicket-user@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wicket-user >> >> > > -- Erik van Oosten http://www.day-to-day-stuff.blogspot.com/ ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user