📄 paginationmodel.java
字号:
package com.component.pagination;
import java.util.Vector;
/**
*
* @author chetan_bh
*/
public class PaginationModel implements Pager {
@Deprecated
int paginationType;
/**
* Unmodified user data.
*/
Vector<PageElement> rawPageData;
/**
* A pager, which performs the actual pagination of the user data.
*/
Pager pager;
public PaginationModel()
{
this(null);
}
public PaginationModel(Vector<PageElement> elements)
{
this(elements, new NumericPager(elements));
}
public PaginationModel(Vector<PageElement> elements, Pager pager)
{
this.rawPageData = elements;
this.pager = pager;
}
// TODO this function is complicated. not working now
/**
* After changing the pager the entire pagination component shoul get refreshed
* So, this has to fire an event and JPageBar, JPagination should have registerred to this
* event to listen then they should get respective updated data and refresh their UI.
*
* This functionality is little complicated, needs good design.
*/
public void changePager(Pager pager)
{
//pager = pager;
}
/**
* Returns the requested page.
*/
public Vector<PageElement> getPage(String index) {
return pager.getPage(index);
}
/**
* Returns the page, next to the current page.
*/
public Vector<PageElement> nextPage() {
return pager.nextPage();
}
//TODO not neede here, this function is moved to PageBarModel
// public Vector nextPageIndices() {
// return pager.nextPageIndices();
// }
/**
* Returns the page, privious to the current page.
*/
public Vector<PageElement> previousPage() {
return pager.previousPage();
}
// public Vector previousPageIndices() {
// return pager.previousPageIndices();
// }
/**
* Returns true if there are pages after the current page.
*/
public boolean hasNextPage() {
return pager.hasNextPage();
}
/**
* Returns true if there are pages before the current page.
*/
public boolean hasPreviousPage()
{
return pager.hasPreviousPage();
}
/**
* Returns the first page.
*/
public Vector<PageElement> firstPage() {
return pager.firstPage();
}
/**
* Returns a collection of page indices, used to display in the page bar.
*/
public Vector<String> getAllPageIndices() {
return pager.getAllPageIndices();
}
/**
* Returns the current page index.
*/
public String getCurrentPageIndex()
{
return pager.getCurrentPageIndex();
}
/**
* Returns elements per page parameter.
*/
public int getElementsPerPage()
{
return pager.getElementsPerPage();
}
/**
* Sets elements per page parameter.
*/
public void setElementsPerPage(int newValue)
{
pager.setElementsPerPage(newValue);
}
/**
* Returns the PageElement for the given page element index.
*/
public PageElement getPageElement(PageElementIndex pageEleIndex)
{
return pager.getPageElement(pageEleIndex);
}
/**
* Returns pager name.
*/
public String getPagerName()
{
return pager.getPagerName();
}
/**
* @param args
*/
public static void main(String[] args) {
Vector<PageElement> elements = new Vector<PageElement>();
String alphabets = "ABCDEFGHHJASDGEWYVCBZXHhfdaADA";
for(int i = 0; i < alphabets.length(); i++)
{
PageElement element = new PageElementImpl();
element.setDisplayName(alphabets.charAt(i)+"-123");
elements.add(element);
}
PaginationModel pageModel = new PaginationModel(elements, new AlphabeticPager(elements));
System.out.println("pagination mmodel . pager "+pageModel.pager);
System.out.println("pageModel "+pageModel.hasNextPage());
while(pageModel.hasNextPage())
{
Vector page = pageModel.nextPage();
System.out.println("page "+page);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -