/* B50ZK714Controller.java {{IS_NOTE Purpose: Description: History: Dec 27, 2011 3:48:09 PM , Created by simonpai }}IS_NOTE Copyright (C) 2011 Potix Corporation. All Rights Reserved. {{IS_RIGHT }}IS_RIGHT */ package org.zkoss.zktest.test2; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.ForwardEvent; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Listbox; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; /** * * @author simonpai */ public class B50_ZK_714_Composer extends GenericForwardComposer { Listbox box; public void onCreate$win(Event event) { onClick$reload(); box.setItemRenderer(new ListitemRenderer() { public void render(Listitem item, Object data, int index) throws Exception { Listcell cell = new Listcell(); cell.setParent(item); cell.setLabel("wrong"); item.setValue(data); //in my case, cell's value was defered loaded, so I simulate it. Events.postEvent(new Event("onLater", box, new Object[]{ cell, data })); } }); } public void onLater$box(Event event) { event = ((ForwardEvent) event).getOrigin(); Listcell cell = (Listcell) ((Object[]) event.getData())[0]; String data = (String) ((Object[]) event.getData())[1]; cell.setLabel(data); } public void onClick$reload() { ListModelList model = new ListModelList(); for (int i = 0; i < 10; i++) model.add("Item" + i); box.setModel(model); } }