-
Bug
-
Resolution: Fixed
-
Normal
-
6.0.0
-
None
-
None
MyGroupModel.java
package test; import java.util.Comparator; import java.util.List; import org.zkoss.zul.GroupsModelArray; public class MyGroupModel<D, H, F, E> extends GroupsModelArray<D, H, F, E> { public MyGroupModel(List<D> data, Comparator<D> cmpr) { super(data, cmpr, 0); } protected H createGroupHead(D[] groupdata, int index, int col) { return (H)new Object[] { groupdata[0], new Integer(col) }; } }
<zk> <zscript><![CDATA[ import java.util.Calendar; import java.text.DateFormat; import java.text.SimpleDateFormat; import org.zkoss.lang.reflect.Fields; public class SampleBean { private String name; private int number; private Date date; public SampleBean(String name, int number, Date date) { super(); this.name = name; this.number = number; this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } } int count = 10; List list = new ArrayList(count); Random rand = new Random(new Random().nextLong()); Calendar cal = Calendar.getInstance(); for (int i = 0; i < count; i++) { list.add(new SampleBean("item " + rand.nextInt(count), rand.nextInt(count), cal.getTime())); cal.add(Calendar.DAY_OF_MONTH, 1); } GroupsModelArray model = new test.MyGroupModel(list, new FieldComparator("name", true)); DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); RowRenderer renderer = new RowRenderer() { public void render(Row row, Object data, int index) { if (row instanceof Group) { Object[] obj = (Object[]) data; // prepared by // createGroupHead() row.appendChild(new Label( getGroupHead(row, (SampleBean) obj[0], ((Integer) obj[1]).intValue()))); } else { SampleBean b = (SampleBean) data; row.appendChild(new Label(b.getName())); row.appendChild(new Label(b.getNumber()+"")); row.appendChild(new Label(df.format(b.getDate()))); } } private String getGroupHead(Row row, SampleBean bean, int index) { Column column = (Column) row.getGrid().getColumns().getChildren().get(index); String field = //print: category ((FieldComparator) column.getSortAscending()).getRawOrderBy(); try { return Fields.get(bean, field).toString(); } catch (NoSuchMethodException ex) { throw UiException.Aide.wrap(ex); } } }; ]]></zscript> <grid model="${model}" rowRenderer="${renderer}"> <columns menupopup="auto"> <column label="name" sort="auto(name)"/> <column label="number" sort="auto(number)"/> <column label="date" sort="auto(date)"/> </columns> </grid> </zk>
- relates to
-
ZK-981 There are issues when opening and closing groups using the GroupModelArray and databining
- Closed