Example usage for com.google.gwt.user.cellview.client SimplePager hasNextPages

List of usage examples for com.google.gwt.user.cellview.client SimplePager hasNextPages

Introduction

In this page you can find the example usage for com.google.gwt.user.cellview.client SimplePager hasNextPages.

Prototype

@Override
    public boolean hasNextPages(int pages) 

Source Link

Usage

From source file:com.github.gwtbootstrap.showcase.client.CellTables.java

License:Apache License

private void rebuildPager(final Pagination pagination, final SimplePager pager) {
    pagination.clear();/*from ww w  . ja v a 2 s. c o m*/

    if (pager.getPageCount() == 0) {
        return;
    }

    NavLink prev = new NavLink("<");

    prev.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            GWT.log(String.valueOf("prev"));
            pager.previousPage();
        }
    });

    prev.setDisabled(!pager.hasPreviousPage());

    pagination.add(prev);

    int before = 2;
    int after = 2;

    while (!pager.hasPreviousPages(before) && before > 0) {
        before--;
        if (pager.hasNextPages(after + 1)) {
            after++;
        }
    }

    while (!pager.hasNextPages(after) && after > 0) {
        after--;
        if (pager.hasPreviousPages(before + 1)) {
            before++;
        }
    }

    for (int i = pager.getPage() - before; i <= pager.getPage() + after; i++) {

        final int index = i + 1;

        NavLink page = new NavLink(String.valueOf(index));

        page.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                pager.setPage(index - 1);
            }
        });

        if (i == pager.getPage()) {
            page.setActive(true);
        }

        pagination.add(page);
    }

    NavLink next = new NavLink(">");

    next.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            GWT.log(String.valueOf("next"));
            pager.nextPage();
        }
    });

    next.setDisabled(!pager.hasNextPage());

    pagination.add(next);
}