package zk.support; import org.zkoss.bind.annotation.Init; import org.zkoss.zul.SimpleListModel; import zk.support.data.Dictionary; public class BigComboboxViewModel { private SimpleListModel comboModel; private int maxNumberInSubModel = 1000; @Init public void init() { comboModel = new SimpleListModel(Dictionary.getDirectory()) { @Override protected boolean inSubModel(Object key, Object value) { return key == null || value.toString().startsWith(key.toString()); } @Override protected int getMaxNumberInSubModel(int nRows) { return Math.min(this.getSize(), maxNumberInSubModel); } }; } public SimpleListModel getComboModel() { return comboModel; } public int getMaxNumberInSubModel() { return maxNumberInSubModel; } public int getTotalSize() { return comboModel.getSize(); } public void setMaxNumberInSubModel(int maxNumberInSubModel) { this.maxNumberInSubModel = maxNumberInSubModel; } }