Skip to content

Instantly share code, notes, and snippets.

@ywjno
Last active December 17, 2015 09:39
Show Gist options
  • Save ywjno/5588762 to your computer and use it in GitHub Desktop.
Save ywjno/5588762 to your computer and use it in GitHub Desktop.
about paginate by java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Paginate {
private static final int DEFALUT_SHOW_PAGE_COUNT = 5;
public static List<Map<String, String>> paginate(String pageSizeStr, String pageCdStr) {
int pageSize = Integer.valueOf(pageSizeStr);
int pageCd = Integer.valueOf(pageCdStr);
List<Map<String, String>> paginate = new ArrayList<Map<String, String>>();
if (pageCd > DEFALUT_SHOW_PAGE_COUNT) {
if (pageSize - pageCd >= DEFALUT_SHOW_PAGE_COUNT) {
paginate.add(getLink(pageCd - 2));
paginate.add(getLink(pageCd - 1));
paginate.add(getLink(pageCd));
paginate.add(getLink(pageCd + 1));
paginate.add(getLink(pageCd + 2));
} else {
for (int i = pageSize - DEFALUT_SHOW_PAGE_COUNT; i < pageSize; i++) {
paginate.add(getLink(i + 1));
}
}
} else {
for (int i = 0; i < pageCd; i++) {
paginate.add(getLink(i + 1));
}
int count = 0;
if (pageSize > DEFALUT_SHOW_PAGE_COUNT) {
if (paginate.size() < DEFALUT_SHOW_PAGE_COUNT) {
count = DEFALUT_SHOW_PAGE_COUNT - paginate.size();
}
} else {
count = pageSize - paginate.size();
}
for (int i = 0; i < count; i++) {
paginate.add(getLink(i + pageCd + 1));
}
}
if (!"1".equals(paginate.get(0).get("key"))) {
paginate.add(0, getLink("#", "<span class='gap'>…</span>"));
paginate.add(0, getLink(String.valueOf(pageCd - 1), "<"));
paginate.add(0, getLink("1", "<<"));
}
if (!pageSizeStr.equals(paginate.get(paginate.size() - 1).get("key"))) {
paginate.add(getLink("#", "<span class='gap'>…</span>"));
paginate.add(getLink(String.valueOf(pageCd + 1), ">"));
paginate.add(getLink(pageSizeStr, ">>"));
}
return paginate;
}
private static <T> Map<String, String> getLink(T... linkPageCd) {
Map<String, String> link = new HashMap<String, String>();
if (linkPageCd.length == 1) {
link.put("key", String.valueOf(linkPageCd[0]).toString());
link.put("value", String.valueOf(linkPageCd[0]).toString());
} else {
link.put("key", String.valueOf(linkPageCd[0]).toString());
link.put("value", String.valueOf(linkPageCd[1]).toString());
}
return link;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment