Mercurial > hg > LGServices
diff src/main/java/de/mpiwg/web/jsp/DataPaginator.java @ 0:3e62083dbcbf
First commit. This project comes from LGServer. We removed the framework icefaces. Now, LGServices uses just JSP and jquery.
author | "jurzua <jurzua@mpiwg-berlin.mpg.de>" |
---|---|
date | Thu, 23 Apr 2015 15:46:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/web/jsp/DataPaginator.java Thu Apr 23 15:46:01 2015 +0200 @@ -0,0 +1,127 @@ +package de.mpiwg.web.jsp; +import java.text.MessageFormat; + +public class DataPaginator { + + private int itemsPerPage = 100; + private int rewindFastForwardBy = 10; + + private int currentPage; + private int numberOfPages; + + private String recordStatus; + + public void first(){ + this.currentPage = 0; + } + + public void last(){ + this.currentPage = this.numberOfPages -1; + } + + public void fastRewind () { + this.rewind(this.rewindFastForwardBy); + } + + private void rewind (int aRewindFastForwardBy) { + int newPageNumber = currentPage - aRewindFastForwardBy; + if (newPageNumber < 0) { + currentPage = 0; + } else { + currentPage = newPageNumber; + } + } + + public void goToPage(int newPageNumber){ + if (newPageNumber > this.numberOfPages -1) { + currentPage = this.numberOfPages -1; + } else if(newPageNumber < 0 ){ + currentPage = 0; + }else{ + currentPage = newPageNumber; + } + + } + + private void forward (int aRewindFastForwardBy) { + int newPageNumber = currentPage + aRewindFastForwardBy; + if (newPageNumber > this.numberOfPages - 1) { + currentPage = this.numberOfPages -1; + } else { + currentPage = newPageNumber; + } + } + + public void previous () { + this.rewind(1); + } + + public void next () { + this.forward(1); + } + + public void fastForward () { + this.forward(this.rewindFastForwardBy); + } + + public void initCount() { + if (currentPage > numberOfPages) { + currentPage=numberOfPages; + } + } + + public int getNumberOfPages() { + return numberOfPages; + } + + public void setNumberOfPages(int numberOfPages) { + this.numberOfPages = numberOfPages; + } + + public void resetNumberOfPages(int itemsTotal){ + int numberOfPages = (itemsTotal + % this.getItemsPerPage() == 0) ? + itemsTotal + / this.getItemsPerPage() : + (itemsTotal + / this.getItemsPerPage()) + 1; + this.setNumberOfPages(numberOfPages); + } + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public String getRecordStatus () { + this.recordStatus = MessageFormat.format("{0} of {1}", + new Object []{ + Integer.valueOf(currentPage + 1), + Integer.valueOf(numberOfPages) + }); + return recordStatus; + } + + public void setRecordStatus(String recordStatus) { + this.recordStatus = recordStatus; + } + + public int getItemsPerPage() { + return itemsPerPage; + } + + public void setItemsPerPage(int itemsPerPage) { + this.itemsPerPage = itemsPerPage; + } + + public int getRewindFastForwardBy() { + return rewindFastForwardBy; + } + + public void setRewindFastForwardBy(int rewindFastForwardBy) { + this.rewindFastForwardBy = rewindFastForwardBy; + } +} \ No newline at end of file