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();
}
}