Java vaadin表字段自定义

时间:2015-01-30 11:25:58

标签: java styles vaadin

我在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>。我想在表中看到格式化的字符串状态是: 已完成

1 个答案:

答案 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;
    }
});