package be.selckin.swu.model; import org.apache.wicket.model.IModel; import java.util.List; public class ListItemModelAdapter<T> implements IModel<T> { private final IModel<List<T>> listModel; private int index; public ListItemModelAdapter(IModel<List<T>> listModel, int index) { this.listModel = listModel; this.index = index; } @Override public T getObject() { return index < size() ? listModel.getObject().get(index) : null; } @Override public void setObject(T object) { listModel.getObject().set(index, object); } public int getIndex() { return index; } public int size() { return listModel.getObject().size(); } @Override public void detach() { listModel.detach(); } public boolean hasPrev() { return index > 0; } public void prev() { if (hasPrev()) index--; else index = 0; } public void next() { if (hasNext()) index++; else index = size() - 1; } public boolean hasNext() { return index < size() - 1; } public boolean isEmpty() { return listModel.getObject().isEmpty(); } }