wondering if that really always works.
looking at the current getConverter doc:

/**
     * CheckBox will by default always just use the boolean converter
because the implementation
     * expects that the string is can be converted to a boolean [EMAIL 
PROTECTED]
Strings#isTrue(String)}
     *
     * @see org.apache.wicket.Component#getConverter(java.lang.Class)
     */
    public IConverter getConverter(Class type)
    {
        return BooleanConverter.INSTANCE;
    }

but i guess yours works by accident because
Strings#isTrue(String) returns the right value for Y or N

Also with generics i believe we have this:

public class Checkbox extends FormComponent<Boolean>

so the model type is hard to a boolean.

johan


On Tue, Mar 25, 2008 at 11:30 PM, <[EMAIL PROTECTED]> wrote:

> I just tested and it worked. Thanks very much.
> Pardon me for being stubbon here. For a simple
> convertion like this, So much has to be created so it seems a little heavy
> weight.
>  For this one,
> first a subclass of Checkbox (possibly creating multiple constructors)
> overide initmodel and separate custom model class  just to convert
> a simple data object to another.  I'd still prefer the direct converter
> method.
> Even though one could see it as in business domain, this kind of
> conversion
> is generic enough to be put in the convert phase. Also, I saw you saying
> about
> the detach() method, it could add some performance overhead, I guess.
> Could you show me what I am doing wrong below for the converter method?
> If this works, I'd even suggest to make it in the wicket core release:-)
> by adding a method such as
> new CheckBox(id).setTrueFalse("y","n"),  you get the idea.
>
> public class CheckBoxYN extends CheckBox{
>
>    public CheckBoxYN(String id){
>        super(id);
>    }
>
>    @Override
>    public final IConverter getConverter(Class arg0){
>        IConverter icYN = new IConverter(){
>
>            public Object convertToObject(String arg0, Locale arg1) {
>               if (arg0.equals("true")){
>                   return 'Y';
>               }else{
>                   return 'N';
>               }
>
>            }
>
>            public String convertToString(Object arg0, Locale arg1) {
>                if(arg0.toString().equals('Y')){
>                    return "true";
>
>                }else{
>                    return "false";
>                }
>
>            }
>
>        };
>        return icYN;
>    }
>
> }
>
>
>
> >what i have shown you will work independently of the fact that you are
> >sure or not :)
> >
> >-igor
> >
> >
> >On Tue, Mar 25, 2008 at 2:51 PM,  <[EMAIL PROTECTED]> wrote:
> >> I am not sure how this would solve my problem
> >>  I intend to only use
> >>  new CheckBox("checked")  without adding any other arguments
> >>  since I expect it to resolve the form's compoundpropertymodel
> >>  whose object is entitybean with "checked" as column name.
> >>
> >>
> >>
> >>
> >>
> >>
> >>  >or you can simply do:
> >>  >
> >>  >class YesNoCheckBox extends CheckBox {
> >>  >
> >>  >  protected IModel initModel() {
> >>  >     return new CheckBoxYesNoModel(super.initModel());
> >>  >  }
> >>  >}
> >>  >
> >>  >-igor
> >>  >
> >>  >On Tue, Mar 25, 2008 at 2:29 PM,  <[EMAIL PROTECTED]> wrote:
> >>  >> Use model decorator sometimes seems troublesome.
> >>  >>  I need to use a form containing a lot of checkboxes and other
> types
> >>  >>  with compoundproperty model with a entity bean, say record.
> >>  >>  Most formcoponent ids are identical to their record property name,
> >>  >>  such as Textfield("firstName") and record also has "firstName"
> >>  >>  if I use the extra decorator indirection for checkbox,
> >>  >>  I'd have to use
> >>  >>  CheckBox("checked",new CustomerModel(new
> >PropertyModel(record,"checked"))
> >>  >>  or is there a better/convenient way to do this?
> >>  >>
> >>  >>
> >>  >>
> >>  >>  >you forgot the important detach() { room.detach(); }
> >>  >>  >
> >>  >>
> >>  >> >-igor
> >>  >>  >
> >>  >>  >
> >>  >>  >On Tue, Mar 25, 2008 at 1:52 PM, Timo Rantalaiho
> ><[EMAIL PROTECTED]>
> >>  >>  >wrote:
> >>  >>  >>
> >>  >>
> >>  >>
> >>  >> >> On Tue, 25 Mar 2008, [EMAIL PROTECTED] wrote:
> >>  >>  >>  > Is there built-in mechanism to auto convert the checkbox
> model
> >value
> >>  >>  >>  > to be a character set Y/N  or Yes/No or any other pairs?
> >>  >>  >>  > This is frequently used pattern.
> >>  >>  >>
> >>  >>  >>  Probably you could set your own IConverter on the component
> >>  >>  >>  corresponding the checkbox. The converter can then be reused
> >>  >>  >>  as needed.
> >>  >>  >>
> >>  >>  >>  I've typically (if not always) used checkboxes with custom
> models
> >>  >>  >>  directly toggling things in domain objects, e.g.
> >>  >>  >>
> >>  >>  >>  class RoomReservedModel extends Model {
> >>  >>  >>   private IModel room;
> >>  >>  >>
> >>  >>  >>   public RoomReservedModel(IModel room) {
> >>  >>  >>       this.room = room;
> >>  >>  >>   }
> >>  >>  >>
> >>  >>  >>   @Override
> >>  >>  >>   public void setObject(Object object) {
> >>  >>  >>       room().setReserved((Boolean) object);
> >>  >>  >>   }
> >>  >>  >>
> >>  >>  >>   @Override
> >>  >>  >>   public Object getObject() {
> >>  >>  >>       return room().isReserved();
> >>  >>  >>   }
> >>  >>  >>
> >>  >>  >>   private Room room() {
> >>  >>  >>       return (Room) room.getObject();
> >>  >>  >>   }
> >>  >>  >>  }
> >>  >>  >>
> >>  >>  >>  Best wishes,
> >>  >>  >>  Timo
> >>  >>  >>
> >>  >>  >>  --
> >>  >>  >>  Timo Rantalaiho
> >>  >>  >>  Reaktor Innovations Oy    <URL: http://www.ri.fi/ >
> >>  >>  >>
> >>  >>  >>
> >---------------------------------------------------------------------
> >>  >>  >>  To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>  >>  >>  For additional commands, e-mail: [EMAIL PROTECTED]
> >>  >>  >>
> >>  >>  >>
> >>  >>  >
> >>  >>
>  >---------------------------------------------------------------------
> >>  >>  >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>  >>  >For additional commands, e-mail: [EMAIL PROTECTED]
> >>  >>  >
> >>  >>
> >>  >>
>  ---------------------------------------------------------------------
> >>  >>  To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>  >>  For additional commands, e-mail: [EMAIL PROTECTED]
> >>  >>
> >>  >>
> >>  >
> >>  >---------------------------------------------------------------------
> >>  >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>  >For additional commands, e-mail: [EMAIL PROTECTED]
> >>  >
> >>
> >>  ---------------------------------------------------------------------
> >>  To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>  For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to