낙서장/Java

페이징 전용 클래스 [PagingBean]

RunTimeException 2021. 8. 19. 12:37
public class PagingBean {

	private int nowPage = 1;
	private int postCountPerPage = 10;//페이지당 게시물수
	private int pageCountPrePageGroup = 5;//페이지 그룹당 페이지수
	private int totalPostCount;//총 게시물수
	
	public PagingBean(int totalPostCount) {
		super();
		this.totalPostCount = totalPostCount;
	}

	public PagingBean(int totalPostCount ,int nowPage) {
		super();
		this.nowPage = nowPage;
		this.totalPostCount = totalPostCount;
	}
	
	//현 페이지 번호
	public int getNowPage() {
		return nowPage;
	}
	
	//현 페이지 시작 게시물 번호 [(현 게시물 번호-1) * 페이지당 게시물]
	public int getStartRowNumber() {
		return (nowPage-1) * postCountPerPage + 1;
	}
	
	//현 페이지 끝 게시물 번호 [현 게시물 번호 * 페이지당 게시물] --> 총 게시물 수 보다 크면 총 게시물 수 반환
	public int getEndRowNumber() {
		return nowPage * postCountPerPage>totalPostCount ? totalPostCount : nowPage * postCountPerPage; 
	}
	
	//총 페이지 수 [총 게시물수/페이지당 게시물] --> 나머지 값이 0 아니면 +1 해준다.
	public int getTotalPage() {
		return totalPostCount%postCountPerPage==0 ? totalPostCount/postCountPerPage : totalPostCount/postCountPerPage+1;
	}
	
	//총 페이지 그룹 수 [총 페이지 수/ 그룹당 페이지수] --> 나머지 값이 0 아니면 +1 해준다.
	public int getTotalPageGroup() {
		return getTotalPage()%pageCountPrePageGroup==0 ? getTotalPage()/pageCountPrePageGroup : getTotalPage()/pageCountPrePageGroup+1;
	}
	
	//현 그룹 [현 페이지 / 그룹당 페이지수] --> 나머지 값이 0 아니면 +1 해준다.
	public int getNowPageGroup() {
		return nowPage%pageCountPrePageGroup==0 ? nowPage/pageCountPrePageGroup : nowPage/pageCountPrePageGroup+1;
	}
	
	//현 그룹 시작 페이지 번호 [(현 그룹-1) * 그룹당 페이지수]
	public int getStartPageOfPageGroup() {
	
		return (getNowPageGroup()-1) * pageCountPrePageGroup+1;
	}
	
	//현 그룹 끝 페이지 번호 [현 그룹 * 그룹당 페이지수] --> 총 페이지 그룹 수 보다 크면 총 페이지 그룹 수 반환
	public int getEndPageOfPageGroup() {
		return getNowPageGroup() * pageCountPrePageGroup>getTotalPage() ? getTotalPage() : getNowPageGroup() * pageCountPrePageGroup;
	}
	
	//이전: 현그룹이 1보다 크면 true 반환 
	public boolean isPreviousPageGroup() {
		return getNowPageGroup()>1;
	}
	
	//다음: 현 그룹이 총 페이지 그룹보다 작으면 true 반환
	public boolean isNextPageGroup() {
		return getNowPageGroup()<getTotalPageGroup();
	}
	
}