package org.zkoss.bind.examples.order; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.lang.Objects; import org.zkoss.zul.ListModel; import org.zkoss.zul.ListModelList; import org.zkoss.zul.ListModels; public class ChosenBoxBugViewModel { private List qtAlloyElementList = new ArrayList(); private List ctEntityMasterList = new ArrayList(); private List items = new ArrayList(); private int selectedShtCastPlnItemIndex = -1; public ChosenBoxBugViewModel(){ for(int i=0;i<20;i++){ CtEntityMaster ctEntityMaster = new CtEntityMaster(); ctEntityMaster.setEntityCode("Entity "+i); ctEntityMasterList.add(ctEntityMaster); } //-- simple string array for(int i=0;i<20;i++){ items.add("Item "+i); } QtAlloyElement qt = new QtAlloyElement(); qt.setChemicalElementName("Cobal"); qtAlloyElementList.add(qt); } public List getItems() { System.out.println("getItems"); //return ListModels.toListSubModel(new ListModelList(items)); return items; } /** * @return the ctEntityMasterList */ public ListModel getCtEntityMasterList() { System.out.println("in getCtEntityMasterList "); //return ctEntityMasterList; return ListModels.toListSubModel(new ListModelList(ctEntityMasterList),new CustomerSortComparator(),10); } /** * @param ctEntityMasterList the ctEntityMasterList to set */ public void setCtEntityMasterList(List ctEntityMasterList) { this.ctEntityMasterList = ctEntityMasterList; } /** * @return the qtAlloyElementList */ public List getQtAlloyElementList() { return qtAlloyElementList; } /** * @param qtAlloyElementList the qtAlloyElementList to set */ public void setQtAlloyElementList(List qtAlloyElementList) { this.qtAlloyElementList = qtAlloyElementList; } /** * Method changeSelectedIndex */ @Command public void changeIndex(@BindingParam("index") int index){ System.out.println("in changeIndex index === "+index); this.selectedShtCastPlnItemIndex = index; } /** * @return the selectedShtCastPlnItemIndex */ public int getSelectedShtCastPlnItemIndex() { return selectedShtCastPlnItemIndex; } /** * @param selectedShtCastPlnItemIndex the selectedShtCastPlnItemIndex to set */ public void setSelectedShtCastPlnItemIndex(int selectedShtCastPlnItemIndex) { this.selectedShtCastPlnItemIndex = selectedShtCastPlnItemIndex; } /** * Class CustomerSortComparator * @author Administrator * */ class CustomerSortComparator implements Comparator { public int compare(Object key, Object value) { String idx = Objects.toString(key); System.out.println("idx == "+idx); System.out.println("value == "+value.toString()); if (idx.isEmpty()) return 0; return idx != null && value != null && idx.length() > 0 && Objects.toString(((CtEntityMaster)value).getEntityCode().toUpperCase()).startsWith(idx.toUpperCase()) ? 0 : 1; } } }