Mine is not working.  I feel these "basic" data manipulation tasks
are little to "heavy" in Wicket. Some built-in custom/helper classes 
could help a bit. I found I am writing many of these kind of custom
class to do basic conversion and still have to worry if I am doing right,
like the detach() method Igor just pointed out.

>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]
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to