package example.controller; import java.io.Serializable; import java.util.List; import java.util.Map; import org.icefaces.ace.event.SelectEvent; import org.icefaces.ace.model.table.LazyDataModel; import org.icefaces.ace.model.table.RowStateMap; import org.icefaces.ace.model.table.SortCriteria; import example.util.Student; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="aceLazyBean") @SessionScoped public class AceLazyBean implements Serializable { private static final long serialVersionUID = 1L; private LazyDataModel studentList; private Student selectedStudent; private RowStateMap rowStateMap; public AceLazyBean() { studentList = new LazyDataModel() { List students = Student.generateList(0, 20); // the underlying data is not generated at every request // this method is called at every request @Override public List load(int first, int pageSize, SortCriteria[] sortCriteria, Map filters) { List ret = new java.util.ArrayList(pageSize); // a partial list is prepared at every request for (int i = 0; i < pageSize; i++) { ret.add(students.get(first+i)); // the data is taken from the original source } return ret; } }; studentList.setRowCount(20); } public void select(SelectEvent event) { selectedStudent = (Student) event.getObject(); } public void selectFirst(){ rowStateMap.setAllSelected(false); Student first = (Student) studentList.iterator().next(); rowStateMap.get(first).setSelected(true); setSelectedStudent(first); } /* GETTERS AND SETTERS */ public LazyDataModel getStudentList() {return studentList;} public void setStudentList(LazyDataModel studentList) {this.studentList = studentList;} public Student getSelectedStudent() {return selectedStudent;} public void setSelectedStudent(Student selectedStudent) {this.selectedStudent = selectedStudent;} public RowStateMap getRowStateMap() {return rowStateMap;} public void setRowStateMap(RowStateMap rowStateMap) {this.rowStateMap = rowStateMap;} }