@Override public boolean isPreviousPageAvailable() { long offset = getCurrentPageOffset(); return offset > 0; }
@Override public long getCurrentPageIndex() { long pageSize = getPageSize(); if (pageSize == 0) { return 0; } long offset = getCurrentPageOffset(); return offset / pageSize; }
@Override public void nextPage() { long pageSize = getPageSize(); if (pageSize == 0) { // do nothing return; } long offset = getCurrentPageOffset(); offset += pageSize; setCurrentPageOffset(offset); pageChanged(); }
@Override public void firstPage() { long pageSize = getPageSize(); if (pageSize == 0) { // do nothing return; } long offset = getCurrentPageOffset(); if (offset != 0) { setCurrentPageOffset(0); pageChanged(); } }
@Override public void previousPage() { long pageSize = getPageSize(); if (pageSize == 0) { // do nothing return; } long offset = getCurrentPageOffset(); if (offset >= pageSize) { offset -= pageSize; setCurrentPageOffset(offset); pageChanged(); } }
@Override public boolean isNextPageAvailable() { long pageSize = getPageSize(); if (pageSize == 0) { return false; } long resultsCount = getResultsCount(); if (resultsCount < 0) { long currentPageIndex = getCurrentPageIndex(); return currentPageIndex < getCurrentHigherNonEmptyPageIndex() + getMaxNumberOfEmptyPages(); } else { long offset = getCurrentPageOffset(); return resultsCount > pageSize + offset; } }