package lt.inventi.wicket.component.enums; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.EnumChoiceRenderer; import org.apache.wicket.model.IModel; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumSet; import java.util.List; import java.util.Set; public class EnumDropDownChoice extends DropDownChoice<Enum<?>> { @SuppressWarnings({ "rawtypes", "unchecked" }) public EnumDropDownChoice(String id, Class<? extends Enum<?>> enumClass) { this(id, EnumSet.allOf((Class) enumClass)); } public EnumDropDownChoice(String id, Enum<?>[] choices) { this(id, Arrays.asList(choices)); } public EnumDropDownChoice(String id, Set<? extends Enum<?>> choices) { this(id, new ArrayList<Enum<?>>(choices)); } @SuppressWarnings({ "rawtypes", "unchecked" }) public EnumDropDownChoice(String id, List<? extends Enum<?>> choices) { super(id, choices); setChoiceRenderer(new EnumChoiceRenderer(this)); } public EnumDropDownChoice(String id, IModel<? extends List<? extends Enum<?>>> choices) { super(id, choices); setChoiceRenderer(new EnumChoiceRenderer(this)); } }