Hi Johan, Ok, I understand. Indeed, my model is a property in a bean that has the primitive type boolean.
Even though I have a workaround now, I would appreciate such a fix. If nobody disagrees I am happy to make a JIRA issue for it. Regards, Erik. Johan Compagner schreef: > my checkbox works fine: > > class MyDataObject > { > Boolean myBoolean; > > void setMyBoolean(Boolean b) > Boolean getMyBoolean() > } > > so it is not directly the checkbox. But if you map it to a boolean > (primitive) then you don't have > the three-state thing yes. (null, false, true) > > So i dont know if this is a bug or not that really needs to be fixed. > Because what is the fix? > > I can't do what you do here. Because if it is a Boolean object then > null/empty string is valid. > > Maybe for booleans we can make an exception that null will be false in > the converter > What do others think? > > johan > > > On 1/9/07, *Erik van Oosten * <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > 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]> > >> <mailto:[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/ > <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> > >> > <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> > >> <mailto:Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net>> > >> https://lists.sourceforge.net/lists/listinfo/wicket-user > <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 > > <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 > <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 > > <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 > <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