hi, i need to display/update some boolean properties in my domain model. to achieve that i'm using a custom AjaxEditableChoiceLabel (from wicket extensions) in my user interface.
why dropdown and not checkbox? well, because in fact there are 3 choices for this property in the database: true (yes), false (no), null (unknown). my problem comes here: i'm having a bad time figuring out how to "translate" between Boolean.TRUE, Boolean.FALSE, null and yes, no, unknown. at first i thought it should be enough with a converter, so i overrode that in my custom dropdown: class CustomAjaxEditableChoiceLabel extends AjaxEditableChoiceLabel { public CustomAjaxEditableChoiceLabel(String id) { super(id, Arrays.asList(Boolean.TRUE, Boolean.FALSE, null)); } @Override protected void onEdit(AjaxRequestTarget target) { if (VdWebSession.get().isAuthenticated()) { super.onEdit(target); } } @Override protected void onSubmit(AjaxRequestTarget target) { super.onSubmit(target); repo.persist((Doctor)getParent().getModelObject()); } @Override public IConverter getConverter(Class type) { return new CustomBooleanConverter(); } } ...and the converter public class CustomBooleanConverter implements IConverter { @Override public Object convertToObject(String string, Locale locale) { if (string.equals("yes")) { return Boolean.TRUE; } else if (string.equals("no")) { return Boolean.TRUE; } else { return null; } } @Override public String convertToString(Object object, Locale locale) { if (object == null) { return "unknown"; } Boolean b = (Boolean) object; if (b) { return "yes"; } else { return "no"; } } } and i'm instantiating the component like this: setModel(new CompoundPropertyModel(doctor)); (...) add(new CustomAjaxEditableChoiceLabel("free").setOutputMarkupId(true)); this is working very well, except for the labels when i enter the dropdown mode.... i still see "true", "false", (blank). i want my labels also to be displayed when entering in "edit mode". i read about IChoiceRenderer and i even implemented one, but i can't use it with the CompoundPropertyModel (?).... cause in my component constructor i can't do super(id, Arrays.asList(Boolean.TRUE, Boolean.FALSE, null), new CustomDropDownRenderer()); (i need to pass in a Model, which is not updated as it is with the compound one. or how would you do?) i would really appreciate some hints/ pointers; i've lost time with this "little" issue. thanks in advance! francisco --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]