Vaadin:使用ListSelect的自定义Converter

时间:2016-09-07 10:43:31

标签: java type-conversion converter vaadin

是否可以为ListSelect组件使用自定义转换器? 这就是我试过的:

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在添加值后保持为空。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用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)一起使用的转换器。