package org.zkoss.zktest.test2.select.models;
import java.util.*;
import org.zkoss.zul.*;
public class SimpleListModels {
public static final int DEFAULT = 0;
public static final int MULTIPLE = 1;
public static final int CLONEABLE = 2;
public static final int MULTIPLE_AND_CLONEABLE = 3;
private static final int defaultAmount = 300 ;
public static SimpleListModel getModel(int config) {
return getModel(config, defaultAmount);
}
public static SimpleListModel getModel(int config,int items) {
SimpleListModel model = null;
if (config == CLONEABLE || config == MULTIPLE_AND_CLONEABLE)
model = (SimpleListModel)org.zkoss.zktest.util.Serializations.toCloneableSimpleListModel(getItems(items).toArray(new String[0]));
else
model = new SimpleListModel(getItems(items));
if(config == MULTIPLE || config == MULTIPLE_AND_CLONEABLE)
model.setMultiple(true);
return model;
}
public static Comparator getRowComparator(boolean asc) {
return new MyRowComparator(asc);
}
private static class MyRowComparator implements Comparator, java.io.Serializable {
boolean _asc;
public MyRowComparator(boolean asc) {
_asc = asc;
}
public int compare(Object o1, Object o2) {
int i1 = SimpleListModels.getNumberFromData((String)o1);
int i2 = SimpleListModels.getNumberFromData((String)o2);
if (_asc && i1 > i2 || !_asc && i1 < i2)
return 1;
return -1;
}
}
public static int getNumberFromData(String data) {
return Integer.parseInt(data.replace("data", "").trim());
}
private static List getItems(int items) {
List Items = new ArrayList();
for (int i = 0; i < items; i++) {
Items.add(new String("data "+i));
}
return Items;
}
}