i'm sorry i didn't see this post before-- i came up with a solution a
couple of weeks ago.

i called it EnumCheckGroup (that is, i went for CheckGroup rather than
CheckBox).

usage:

for a given enum:

        public static enum Niveau {
                etage, mezzanine, sous_sol;
        }

       form.add(new EnumCheckGroup<Plan.Niveau>("niveaux",
Plan.Niveau.values()));


              <span wicket:id="niveaux">
                       <span wicket:id="items">
                               <input type="checkbox" wicket:id="check" />
                               <span wicket:id="label"></span><br />
                       </span>
               </span>


impl:

public class EnumCheckGroup<T extends Enum<T>> extends CheckGroup<T> {

       public EnumCheckGroup(String id, T[] values) {
               super(id);

               ListView<T> listview = new ListView<T>("items",
Arrays.asList(values)) {
       protected void populateItem(ListItem<T> item) {
           item.add(new Check<T>("check", item.getModel()));
           item.add(new Label("label", new
ResourceModel(item.getModelObject().name())));
       };
   }.setReuseItems(true);

   add(listview);

       }

}

obviously you must have the keys in your properties file, such as:

etage=Étage
mezzanine=Mezzanine
sous_sol=Sous-sol


francisco


On Fri, Sep 26, 2008 at 4:29 PM, Cédric Thiébault
<[EMAIL PROTECTED]> wrote:
> Thanks Igor, it was exactly what i needed :-)
>
> To complete this post, here is the solution I found :
> http://surunairdejava.blogspot.com/2008/09/wicket-checkbox-abstractcheckboxmodel.html
>
> Sorry it's in french but the code is easy to understand...
>
> Cedric
>
>
> On Wed, Sep 24, 2008 at 2:46 PM, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
>> see abstractcheckboxmodel
>>
>> -igor
>>
>> On Wed, Sep 24, 2008 at 11:37 AM, Cédric Thiébault
>> <[EMAIL PROTECTED]> wrote:
>>> Hi,
>>>
>>> I'm trying to use a checkbox to set an enum value on my form object
>>> but I always get a type mismatch error (boolean is not an enum and
>>> vice versa).
>>>
>>> My form object has an enum and I want to display a list of checkboxes
>>> to allow the user to select the value.
>>> I don't want to use a radio because my enum can be null and I can't
>>> unselect my radio group once a radio is selected.
>>>
>>> I tried to extends Checkbox to convert teh boolean to the specified
>>> enum... it works only in one way (to set the enum value) but it does
>>> not work when my enum has a value and the checkbox need to render
>>> itself (the value must be a boolean).
>>>
>>>
>>> public class CheckBoxEnum extends CheckBox {
>>>
>>>  private final Enum<?> enumValue;
>>>
>>>  public CheckBoxEnum(String id, IModel model, String property,
>>> Enum<?> enumValue) {
>>>    super(id, new PropertyModel(model, property));
>>>    this.enumValue = enumValue;
>>>  }
>>>
>>>  @Override
>>>  protected void convertInput() {
>>>    String value = getValue();
>>>    if (value != null && BooleanUtils.toBoolean(value))
>>> setConvertedInput(enumValue);
>>>  }
>>> }
>>>
>>> Any ideas ?
>>>
>>> Thanks
>>>
>>> Cedric
>>>
>>> ---------------------------------------------------------------------
>>> 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