package org.nocket.component.table.columns; import java.util.Set; import org.apache.wicket.extensions.model.AbstractCheckBoxModel; import org.apache.wicket.model.IModel; // TODO: Auto-generated Javadoc /** * Column adds check-box per table item. Information about the checked state is * hold in the Set. * * @author blaz02 * * @param <T> * Model object type following Java-Bean convention. */ @SuppressWarnings("serial") public class SetCheckBoxColum<T> extends CheckBoxColumn<T> { /** The selected. */ private Set<T> selected; /** * Instantiates a new sets the check box colum. * * @param displayModel the display model * @param selected the selected */ public SetCheckBoxColum(IModel<String> displayModel, Set<T> selected) { super(displayModel); this.selected = selected; } /* (non-Javadoc) * @see org.nocket.component.table.columns.CheckBoxColumn#newCheckBoxModel(org.apache.wicket.model.IModel) */ @Override protected IModel<Boolean> newCheckBoxModel(final IModel<T> rowModel) { return new AbstractCheckBoxModel() { private static final long serialVersionUID = 1L; @Override public boolean isSelected() { return selected.contains(rowModel.getObject()); } @Override public void unselect() { selected.remove(rowModel.getObject()); } @Override public void select() { selected.add(rowModel.getObject()); } @Override public void detach() { rowModel.detach(); } }; } }