我在Vaadin表中显示以下属性
public class Item
{
String itemName;
String itemSource;
String itemStatus;
...
}
接下来,我使用ItemContainer检索我的数据,并将其连接到表:
ItemContainer container = new ItemContainer(Item.class, app);
table.setContainerDataSource(container);
该表将显示基于Item类的数据。 问题:我可以“某种程度上”改变“飞行”字段的数据类型吗?因此,我希望将“itemStatus”更改为Label,因为以正确的样式显示HTML标记。
例如,“itemStatus”中的文字是:<b>Status is:</b><i>Completed</i>
。我想在表中看到格式化的字符串状态是: 已完成
答案 0 :(得分:1)
您可以通过添加具有相同ID的生成列来覆盖Table
中的容器属性:
tablet.addGeneratedColumn("itemStatus", new ColumnGenerator() {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Label label = new Label("" + source.getContainerProperty(itemId, columnId).getValue());
label.setContentMode(ContentMode.HTML);
label.setSizeUndefined();
return label;
}
});