@Override protected boolean isLinkVisible() { return !getMiddlePagesRange().contains(getTargetPage()); } }
public <P extends Component & IPageableItems> BSPaginationPanel(String id, P pageable) { super(id); this.pageable = pageable; add(new OffsetLink("previous", -1)); add(new FirstLink("first")); add(new WebMarkupContainer("firstEllipse") .add($b.visibleIf($m.get(() -> (getCurrentPage() - getMiddlePagesRadius()) > 1)))); add(new ListView<Long>("pages", $m.get(() -> getMiddlePagesRange())) { @Override protected void populateItem(ListItem<Long> item) { item .add(new PageNavLink("page") { @Override protected long getTargetPage() { return item.getModelObject(); } }.setBody($m.get(() -> 1 + item.getModelObject()))) .add($b.classAppender("active", $m.get(() -> item.getModelObject() == getCurrentPage()))); } }); add(new WebMarkupContainer("lastEllipse") .add($b.visibleIf($m.get(() -> (getCurrentPage() + getMiddlePagesRadius()) < getLastPage() - 1)))); add(new LastLink("last")); add(new OffsetLink("next", +1)); }
public <P extends Component & IPageableItems> BSPaginationPanel(String id, P pageable) { super(id); this.pageable = pageable; add(new OffsetLink("previous", getPageable(), -1)); add(new FirstLink("first", getPageable())); add(new WebMarkupContainer("firstEllipse") .add($b.visibleIf($m.get(() -> (getCurrentPage() - getMiddlePagesRadius()) > 1)))); add(new RefreshingView<Long>("pages") { @Override protected Iterator<IModel<Long>> getItemModels() { return getMiddlePagesRange().stream().map($m::ofValue).map(m -> (IModel<Long>)m).iterator(); } @Override protected void populateItem(Item<Long> item) { item .add(newNumberedPageLink(item)) .add($b.classAppender("active", $m.get(() -> item.getModelObject() == getCurrentPage()))); } }); add(new WebMarkupContainer("lastEllipse") .add($b.visibleIf($m.get(() -> (getCurrentPage() + getMiddlePagesRadius()) < getLastPage() - 1)))); add(new LastLink("last", getPageable())); add(new OffsetLink("next", getPageable(), +1)); }
@Override protected boolean isLinkVisible() { return !getMiddlePagesRange().contains(getTargetPage()); } }