package fr.openwide.core.wicket.markup.html.form; import java.util.Collection; import java.util.List; import org.apache.wicket.model.IModel; import com.google.common.base.Supplier; import fr.openwide.core.commons.util.functional.Suppliers2; import fr.openwide.core.wicket.markup.html.model.ConcreteCollectionToCollectionWrapperModel; public class CheckGroup<T> extends org.apache.wicket.markup.html.form.CheckGroup<T> { private static final long serialVersionUID = -4650865960701373800L; public CheckGroup(String id) { super(id); } public CheckGroup(String id, Collection<T> collection) { super(id, collection); } public CheckGroup(String id, IModel<List<T>> model) { this(id, model, Suppliers2.<T>arrayList()); } /** * WARNING: using this constructor for anonymous classes (inline class declarations) will result in compilation * errors when using the official javac compilator. Only use this in named subclasses or for direct, non-subclassing * instantiation. * * @see InlineOverridableCheckGroup */ public <C extends Collection<T>> CheckGroup(String id, IModel<C> model, Supplier<? extends C> collectionSupplier) { super(id, new ConcreteCollectionToCollectionWrapperModel<T, C>(model, collectionSupplier)); } @Override public void updateModel() { if (getModelObject() == null) { setDefaultModelObject(getConvertedInput()); } else { modelChanging(); setDefaultModelObject(getConvertedInput()); modelChanged(); } } }