package org.nocket.component.select; import java.util.Collection; import java.util.List; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.html.form.ListMultipleChoice; import org.apache.wicket.model.IModel; /** * A multiple choice list component known from Jira implementation. It depends * on JQuery and Chosen JavaScript libraries. * * Use it and test it exactly in the same way as standard Wicket's * {@link ListMultipleChoice} component. * * @author blaz02 * * @param <T> * The model object type */ public class DMDListMultipleChoice<T> extends ListMultipleChoice<T> { protected Boolean behaviorsAdded = Boolean.FALSE; public DMDListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer) { super(id, model, choices, renderer); } public DMDListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices) { super(id, model, choices); } public DMDListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices, IChoiceRenderer<? super T> renderer) { super(id, object, choices, renderer); } public DMDListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices) { super(id, object, choices); } public DMDListMultipleChoice(String id, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer) { super(id, choices, renderer); } public DMDListMultipleChoice(String id, IModel<? extends List<? extends T>> choices) { super(id, choices); } public DMDListMultipleChoice(String id, List<? extends T> choices, IChoiceRenderer<? super T> renderer) { super(id, choices, renderer); } public DMDListMultipleChoice(String id, List<? extends T> choices, int maxRows) { super(id, choices, maxRows); } public DMDListMultipleChoice(String id, List<? extends T> choices) { super(id, choices); } public DMDListMultipleChoice(String id) { super(id); } @Override protected void onBeforeRender() { if (!behaviorsAdded) { add(new JSChosenBehavior("{display_selected_options : false}")); behaviorsAdded = true; } super.onBeforeRender(); } }