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]