是否可以对ListSelect组件使用自定义的Converter?
这是我尝试的:
ListSelect ls = new ListSelect();
ls.setConverter((Converter) new MyCustomConverter());
ObjectToDisplay ots = new ObjectToDisplay();
// ls.setConvertedValue(ots ); // Converter is called but ListSelect stays empty
lsConstruction.addItem(ots ); // Did not work
但是,ListSelect添加值后保持为空。
谢谢你的帮助!
最佳答案
使用setItemCaption()
:
final ListSelect ls = new ListSelect ();
final BeanItemContainer<ObjectToDisplay> container = new BeanItemContainer<>(ObjectToDisplay.class, objectList);
ls.setContainerDataSource(container);
for (final ObjectToDisplay o : objectList){
ls.setItemCaption(o, yourDesiredFormatFunction(o));
}
以编程方式添加对象将使用
container.addItem(object)
完成。关于转换器的使用:this post详细说明与AbstractSelect实现(例如ListSelect和ComboBoxes)一起使用的转换器。