package support.hfconsulting; import java.util.*; import org.zkoss.bind.annotation.*; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.select.Selectors; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.*; public class PagingViewModel { @Wire private Grid gridSaldiGiornalieri; private int totalSize = 46; ListModel list = new ListModelList(); List dataList = new LinkedList(); private int pageSize = 5; private int activePage = 0; List columnList = new LinkedList(); @Init public void init() { for (int i = 0; i < totalSize ; i++){ dataList.add("row "+i); } for (int i = 0; i < 20 ; i++){ columnList.add("col "+i); } updateList(); } @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { Selectors.wireComponents(view, this, false); // displayOnlyInError = false; } @Command @NotifyChange({"activePge", "list"}) public void paging(){ updateList(); } public ListModel getList(){ return list; } private void updateList(){ int start = activePage * pageSize; int end = start + pageSize > dataList.size()-1 ? dataList.size() : start + pageSize; list = new ListModelList(dataList.subList(start, end)); } public int getTotalSize() { return totalSize; } public void setTotalSize(int totalSize) { this.totalSize = totalSize; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getActivePage() { return activePage; } public void setActivePage(int activePage) { this.activePage = activePage; } public List getColumns() { return columnList; } public void setColumns(List columns) { this.columnList = columns; } public List getColumnList() { return columnList; } }