1 /**
2 *
3 */
4 package sf.net.kayestry;
5
6 import java.util.Iterator;
7
8 import org.apache.tapestry.contrib.table.model.IBasicTableModel;
9 import org.apache.tapestry.contrib.table.model.ITableColumn;
10
11 import ar.com.jiji.kaya.dao.PageableTableDAO;
12 import ar.com.jiji.kaya.utils.ValidateUtils;
13
14 /**
15 * @author lparra
16 * @version $Revision$ $Date$ TODO: paginable no se escribe asi, no... ?
17 */
18 public class PageableTable implements IBasicTableModel {
19
20 private PageableTableDAO dao;
21
22 public PageableTable(PageableTableDAO dao) {
23 ValidateUtils.argNotNull(dao, "dao");
24 this.dao = dao;
25 }
26
27 @SuppressWarnings("unchecked")
28 public int getRowCount() {
29 return dao.getSize();
30 }
31
32 /**
33 * @param objSortColumn
34 * La columna sobre la que se va a ordenar. Puede ser null.
35 */
36 public Iterator getCurrentPageRows(int nFirst, int nPageSize,
37 ITableColumn objSortColumn, boolean bSortOrder) {
38
39
40 String columnName = (objSortColumn == null ? null : objSortColumn
41 .getColumnName());
42 return dao.getPage(nFirst, nPageSize, columnName, bSortOrder)
43 .iterator();
44 }
45
46 }