我们有一个BeanItemContainer,我们显示为一个非常好的Vaadin表。 唯一的问题是其中一个bean属性是一个URL,我们希望它是一个链接。
将“a href = ...”添加到setURL()中的url - 函数可以正常工作,但
向表中添加单击侦听器也可以,但
有没有办法控制进程Vaadin将bean属性值转换为表格单元格?
答案 0 :(得分:6)
在表格上使用ColumnGenerator,并生成链接组件,例如
table.addGeneratedColumn("link", new Table.ColumnGenerator() {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
Item item = source.getItem(itemId);
String columnValue = String.valueOf(item.getItemProperty(columnId).getValue());
String urlValue = columnValue; // Assume columnValue contains full url including protocol, e.g. http://stackoverflow.com
String urlDescription = columnValue; // Description is the same as the
return new Link(urlDescription, new ExternalResource(urlValue));
}
})
有关详细信息,请参阅documentation和javadoc