Added UI (JSF) and JPA to bayesian network entities.
[simdecs.git] / src / java / org / ufcspa / simdecs / bn / ui / util / PaginationHelper.java
diff --git a/src/java/org/ufcspa/simdecs/bn/ui/util/PaginationHelper.java b/src/java/org/ufcspa/simdecs/bn/ui/util/PaginationHelper.java
new file mode 100644 (file)
index 0000000..c9da86b
--- /dev/null
@@ -0,0 +1,57 @@
+package org.ufcspa.simdecs.bn.ui.util;
+
+import javax.faces.model.DataModel;
+
+public abstract class PaginationHelper {
+
+    private int pageSize;
+    private int page;
+
+    public PaginationHelper(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public abstract int getItemsCount();
+
+    public abstract DataModel createPageDataModel();
+
+    public int getPageFirstItem() {
+        return page * pageSize;
+    }
+
+    public int getPageLastItem() {
+        int i = getPageFirstItem() + pageSize - 1;
+        int count = getItemsCount() - 1;
+        if (i > count) {
+            i = count;
+        }
+        if (i < 0) {
+            i = 0;
+        }
+        return i;
+    }
+
+    public boolean isHasNextPage() {
+        return (page + 1) * pageSize + 1 <= getItemsCount();
+    }
+
+    public void nextPage() {
+        if (isHasNextPage()) {
+            page++;
+        }
+    }
+
+    public boolean isHasPreviousPage() {
+        return page > 0;
+    }
+
+    public void previousPage() {
+        if (isHasPreviousPage()) {
+            page--;
+        }
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+}