final TextField search = (TextField) findByName("Search", f);
search.addDataChangeListener(new DataChangedListener() {
public void dataChanged(int type, int index) {
Log.p("Searchfield changed", Log.DEBUG);
String searchEntry = search.getText();
Log.p("Search Entry: " + searchEntry);
List list = (List) findByName("MultiList", search.getComponentForm());
FilterProxyListModel f = new FilterProxyListModel(list.getModel()) {
private ListModel underlying = this.getUnderlying();
private ArrayList<Integer> filter;
@Override
public void filter(String str) {
filter = new ArrayList<Integer>();
str = str.toUpperCase();
for (int iter = 0; iter < underlying.getSize(); iter++) {
Object o = underlying.getItemAt(iter);
if (o != null) {
Hashtable h = (Hashtable) o;
Object val = h.get("ssid");
Object val2 = h.get("strasse");
if ((val != null && ((String)val).toUpperCase().indexOf(str) > -1)) {
filter.add(new Integer(iter));
} else if ((val2 != null && ((String)val2).toUpperCase().indexOf(str) > -1)) {
filter.add(new Integer(iter));
}
}
}
}
};
f.filter(searchEntry);
list.setModel(f);
list.getParent().revalidate();