Subversion Repositories general

Rev

Rev 1027 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1020 dev 1
package ak.hostadmiral.util;
2
 
3
public class CollectionInfo
4
{
1027 dev 5
	/** total number of rows in list */
1020 dev 6
	private int size;
7
 
8
	public int getSize()
9
	{
10
		return size;
11
	}
12
 
13
	public void setSize(int size)
14
	{
15
		this.size = size;
1027 dev 16
		recalc();
1020 dev 17
	}
1027 dev 18
 
19
    /** current selected page */
20
	private int currentPage;
21
 
22
	protected int normPage(int page)
23
	{
24
		if(totalPages <= 0 || page <= 0)
25
			return 0;
26
		else if(page < totalPages)
27
			return page;
28
		else
29
			return (totalPages - 1);
30
	}
31
 
32
	public int getCurrentPage()
33
	{
34
		return normPage(currentPage);
35
	}
36
 
37
	public void setCurrentPage(int currentPage)
38
	{
39
		this.currentPage = currentPage;
40
	}
41
 
42
    /** number of rows on one page */
43
	private int rowsPerPage;
44
 
45
	public int getRowsPerPage()
46
	{
47
		return rowsPerPage;
48
	}
49
 
50
	public void setRowsPerPage(int rowsPerPage)
51
	{
52
		this.rowsPerPage = rowsPerPage;
53
		recalc();
54
	}
55
 
56
    /** total number of pages */
57
	private int totalPages;
58
 
59
	public int getTotalPages()
60
	{
61
		return totalPages;
62
	}
63
 
64
	public int getFirstPage()
65
	{
66
		return 0;
67
	}
68
 
69
	public int getLastPage()
70
	{
71
		return normPage(totalPages - 1);
72
	}
73
 
74
	public int getPrevPage()
75
	{
76
		return normPage(currentPage - 1);
77
	}
78
 
79
	public int getNextPage()
80
	{
81
		return normPage(currentPage + 1);
82
	}
83
 
84
	protected void recalc()
85
	{
86
		if(rowsPerPage > 0)
1073 dev 87
			totalPages = (size + rowsPerPage - 1) / rowsPerPage;
1027 dev 88
	}
89
 
90
	public void init(int size, int currentPage, int rowsPerPage)
91
	{
92
		this.size        = size;
93
		this.currentPage = currentPage;
94
		this.rowsPerPage = rowsPerPage;
95
		recalc();
96
	}
1020 dev 97
}