package fr.openwide.core.wicket.more.markup.html.form; import java.util.Collection; import java.util.List; import org.apache.commons.lang3.EnumUtils; import org.apache.wicket.markup.html.form.EnumChoiceRenderer; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import com.google.common.base.Supplier; import fr.openwide.core.wicket.more.markup.html.select2.GenericSelect2DropDownMultipleChoice; public class EnumDropDownMultipleChoice<E extends Enum<E>> extends GenericSelect2DropDownMultipleChoice<E> { private static final long serialVersionUID = 6244269987751271782L; public <C extends Collection<E>> EnumDropDownMultipleChoice(String id, IModel<C> collectionModel, Supplier<? extends C> collectionSupplier, Class<E> clazz) { this(id, collectionModel, collectionSupplier, Model.ofList(EnumUtils.getEnumList(clazz))); } public <C extends Collection<E>> EnumDropDownMultipleChoice(String id, IModel<C> collectionModel, Supplier<? extends C> collectionSupplier, IModel<? extends List<? extends E>> choicesModel) { this(id, collectionModel, collectionSupplier, choicesModel, new EnumChoiceRenderer<E>()); } protected <C extends Collection<E>> EnumDropDownMultipleChoice(String id, IModel<C> collectionModel, Supplier<? extends C> collectionSupplier, IModel<? extends List<? extends E>> choicesModel, IChoiceRenderer<? super E> renderer) { super(id, collectionModel, collectionSupplier, choicesModel, renderer); } }