/**
* 依照google計算頁碼的方法
* 據選擇的頁碼計算出將顯示的起止碼(如﹕上一頁 1 2 3 4 下一頁 ,即1和4是起止碼),計算結果存儲在PageDescription里
* @param selectedPageNo int
*/
private void calculateStart_EndPageNo(int selectedPageNo) {
String log_MM = "calculateStart_EndPageNo";
int log_Index = 0;
log.info(log_CM + log_MM + log_Index++ +log_RM +
"進入calculateStart_EndPageNo方法...");
log.debug(log_CM + log_MM + log_Index++ +log_RM +
"檢查當前選擇的頁碼﹕" + selectedPageNo);
int startPageNo = 1;
int endPageNo = pgDes.getTotalPages();
int halfSize = pgDes.getPageRange() / 2;
if (pgDes.getTotalPages() <= pgDes.getPageRange()) {
endPageNo = pgDes.getTotalPages();
} else if (selectedPageNo <= halfSize) {
endPageNo = pgDes.getPageRange(); //因要去掉下面那功能而加的﹐即一開始就固定其頁碼范圍
// endPageNo = halfSize + selectedPageNo - 1;//暫時不要這個功能
} else {
endPageNo = selectedPageNo + halfSize - 1;
if (endPageNo <= pgDes.getTotalPages()) {
startPageNo = endPageNo - pgDes.getPageRange() + 1;
} else {
startPageNo = pgDes.getTotalPages() - pgDes.getPageRange() + 1;
}
}
if (endPageNo > pgDes.getTotalPages()) {
endPageNo = pgDes.getTotalPages();
}
pgDes.setStartPageNo(startPageNo);
pgDes.setEndPageNo(endPageNo);
log.debug(log_CM + log_MM + log_Index++ +log_RM +
"由計算得出﹕startPageNo=" + startPageNo + " endPageNo=" +
endPageNo);
log.info(log_CM + log_MM + log_Index++ +log_RM +
"正常結束calculateStart_EndPageNo方法.");
}