public void rebuild(SessionInfo session) {
availableValues = new ArrayList<LabelValueBean>(dataSource.getValues(session));
selectedValues = new ArrayList<LabelValueBean>();
availableMap = new HashMap<String, LabelValueBean>();
for(Iterator i = availableValues.iterator(); i.hasNext(); ) {
LabelValueBean lvb = (LabelValueBean)i.next();
availableMap.put(lvb.getValue(), lvb);
}
for(Iterator i = propertyList.iterator(); i.hasNext(); ) {
String v = (String)i.next();
LabelValueBean lvb = (LabelValueBean)availableMap.get(v);
if(lvb != null) {
selectedValues.add(lvb);
availableValues.remove(lvb);
availableMap.remove(lvb.getValue());
}
}
}