private void refreshPaging(AjaxRequestTarget art, SearchCriteria criteria) { updateListItems(art); globalContainer.replace(numbers.setList(criteria.getNumbers())); // prev.add(AttributeModifier.remove("class")); // sprev.add(AttributeModifier.remove("class")); // next.add(AttributeModifier.remove("class")); // snext.add(AttributeModifier.remove("class")); // if (criteria.isFirstPage()) { // prev.add(AttributeModifier.append("class", "disabled")); // sprev.add(AttributeModifier.append("class", "disabled")); // } // if (criteria.isLastPage()) { // next.add(AttributeModifier.append("class", "disabled")); // snext.add(AttributeModifier.append("class", "disabled")); // } art.add(next, prev, snext, sprev, globalContainer); }
public AjaxPagingPanel(String id, final SearchCriteria criteria) { super(id); globalContainer = new WebMarkupContainer("globalContainer"); add(globalContainer.setOutputMarkupId(true)); next = new AjaxLink("next") { @Override public void onClick(AjaxRequestTarget art) { criteria.next(); refreshPaging(art, criteria); } @Override public boolean isEnabled() { return !criteria.isLastPage(); } }; globalContainer.add(next.setOutputMarkupId(true)); prev = new AjaxLink("prev") { @Override public void onClick(AjaxRequestTarget art) { criteria.prev(); refreshPaging(art, criteria); } @Override public boolean isEnabled() { return !criteria.isFirstPage(); } }; globalContainer.add(prev.setOutputMarkupId(true)); snext = new AjaxLink("snext") { @Override public void onClick(AjaxRequestTarget art) { criteria.snext(); refreshPaging(art, criteria); } @Override public boolean isEnabled() { return !criteria.isLastPage(); } }; globalContainer.add(snext.setOutputMarkupId(true)); sprev = new AjaxLink("sprev") { @Override public void onClick(AjaxRequestTarget art) { criteria.sprev(); refreshPaging(art, criteria); } @Override public boolean isEnabled() { return !criteria.isFirstPage(); } }; globalContainer.add(sprev.setOutputMarkupId(true)); numbers = new ListView("numbers", criteria.getNumbers()) { @Override protected void populateItem(ListItem li) { final long pageNum = (Long) li.getModelObject(); final Label number = new Label("number", pageNum + ""); final AjaxLink numberLink = new AjaxLink("numberLink") { @Override public void onClick(AjaxRequestTarget art) { criteria.toPage(pageNum); refreshPaging(art, criteria); } }; if (pageNum != criteria.getCurrent()) { numberLink.setEnabled(true); li.add(AttributeModifier.remove("class")); } else { numberLink.setEnabled(false); li.add(AttributeModifier.append("class", "active")); } numberLink.add(number); li.add(numberLink); } }; globalContainer.add(numbers.setOutputMarkupId(true)); }