public class CalculationPage {
private Boolean showStartPagerDot;
private Boolean showEndPagerDot;
private int pageIndex;
private int pageSise;
private int totalPages;
private int dataTotal;
private List<Long> pageNumbers;
private int prevPage;
private int nextPage;
public CalculationPage(int pageIndex, int pageSise, int dataTotal) {
this.pageIndex = pageIndex;
this.pageSise = pageSise;
this.dataTotal = dataTotal;
double dDataTotal = (double) this.dataTotal;
double dPageSize = (double) this.pageSise;
this.totalPages = (int) Math.ceil((dDataTotal / dPageSize));
this.pageNumbers = new ArrayList<>();
int start = 1;
int pagerCount = 8;
int end = pagerCount;
if (this.pageIndex >= pagerCount) {
start = this.pageIndex - pagerCount / 2;
this.showStartPagerDot = false;
} else {
prevPage = this.pageIndex - 1;
if (prevPage <= 0) {
this.showStartPagerDot = false;
} else {
this.showStartPagerDot = true;
}
}
end = start + pagerCount - 1;
if (end > this.totalPages) {
end = this.totalPages;
if (pageIndex == end) {
this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
this.nextPage = pageIndex + 1;
}
} else {
this.nextPage = end + 1;
if (this.nextPage >= this.totalPages) {
this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
}
}
for (int i = start; i <= end; i++) {
this.pageNumbers.add((long) i);
}
;
}
public Boolean getShowStartPagerDot() {
return showStartPagerDot;
}
public void setShowStartPagerDot(Boolean showStartPagerDot) {
this.showStartPagerDot = showStartPagerDot;
}
public Boolean getShowEndPagerDot() {
return showEndPagerDot;
}
public void setShowEndPagerDot(Boolean showEndPagerDot) {
this.showEndPagerDot = showEndPagerDot;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSise() {
return pageSise;
}
public void setPageSise(int pageSise) {
this.pageSise = pageSise;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getDataTotal() {
return dataTotal;
}
public void setDataTotal(int dataTotal) {
this.dataTotal = dataTotal;
}
public void setPageNumbers(List<Long> pageNumbers) {
this.pageNumbers = pageNumbers;
}
public List<Long> getPageNumbers() {
return pageNumbers;
}
public int getPrevPage() {
return prevPage;
}
public void setPrevPage(int prevPage) {
this.prevPage = prevPage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
}