package fr.openwide.core.wicket.more.markup.html.navigation.paging;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.list.LoopItem;
import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigation;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigationLink;
import fr.openwide.core.wicket.behavior.ClassAttributeAppender;
public class BootstrapPagingNavigation extends PagingNavigation {
private static final long serialVersionUID = -1227712391251278582L;
public BootstrapPagingNavigation(String id, IPageable pageable, IPagingLabelProvider labelProvider) {
super(id, pageable, labelProvider);
}
@Override
protected void populateItem(LoopItem loopItem) {
super.populateItem(loopItem);
long pageIndex = getStartIndex() + loopItem.getIndex();
if (pageable.getCurrentPage() == pageIndex) {
loopItem.add(new ClassAttributeAppender("active"));
}
}
public boolean isBeginning() {
return getStartIndex() == 0;
}
public boolean isEnding() {
return getStartIndex() + getViewSize() >= pageable.getPageCount();
}
public boolean lessThanViewSize() {
return pageable.getPageCount() < getViewSize();
}
@Override
protected AbstractLink newPagingNavigationLink(String id, IPageable pageable, long pageIndex) {
return new PagingNavigationLink<Void>(id, pageable, pageIndex).setAutoEnable(false);
}
}