Why not just pass the enum class into the constructor? But, also have one that allows you to provide a subset of enum values (as you already have).
On Fri, Sep 26, 2008 at 4:43 PM, francisco treacy <[EMAIL PROTECTED]> wrote: > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]