Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to keep "Choose One" option in a DropDownChoice Wicket?

When I first load a page, the default option on a dropdownchoice is "Choose One". Is there a way to keep it in the dropdown, even when I have selected a choice?
(In case I would like to put nothing later)

like image 995
Sephy Avatar asked Aug 08 '11 15:08

Sephy


2 Answers

You need to use the DropDownChoice.setNullValid() method. From the javadoc:

Determines whether or not the null value should be included in the list of choices when the field's model value is nonnull, and whether or not the null_valid string property (e.g. "Choose One") should be displayed until a nonnull value is selected. If set to false, then "Choose One" will be displayed when the value is null. After a value is selected, and that change is propagated to the underlying model, the user will no longer see the "Choose One" option, and there will be no way to reselect null as the value. If set to true, the null string property (the empty string, by default) will always be displayed as an option, whether or not a nonnull value has ever been selected. Note that this setting has no effect on validation; in order to guarantee that a value will be specified on form validation, FormComponent.setRequired(boolean). This is because even if setNullValid() is called with false, the user can fail to provide a value simply by never activating (i.e. clicking on) the component.

If you want to keep the "Choose One" text with NullValid = true you can use a line similar to the following one in your Application.properties file:

nullValid=[Choose one]
like image 126
Marcelo Avatar answered Oct 25 '22 16:10

Marcelo


In .java:

DropDownChoice<Boolean> myDropDown = new DropDownChoice<>(
    "myDropDownWicketId", model, Arrays.asList(true, false), renderer);
myDropDown.setNullValid(true);

In .properties file associated with java class add:

myDropDownWicketId.nullValid=Choose One
myDropDownWicketId.true=Yes
myDropDownWicketId.false=No
like image 37
Rytis Guntulis Avatar answered Oct 25 '22 14:10

Rytis Guntulis