我有一个由 CrudBeanItemContainer 支持的 vaadin 表:
CrudBeanItemContainer<MyBean> beanItemContainer = new CrudBeanItemContainer<MyBean>(
MyBean.class, getTableFields());
for (MyBean bean : beanCollection) {
beanItemContainer.addBean(bean);
}
table.setContainerDataSource(beanItemContainer);
MyBean 有 3 个字段:
public class ProcessInstanceVariable {
private String name;
private Object value;
private VariableType variableType;
...
}
VariableType 存储值的类型:Integer、Date、String、Boolean 等。
我在表中列出了 MyBeans。我希望用户能够编辑表格上的值。为此,我需要在Value列中添加一个字段,根据 VariableType,它可以是 DateField、CheckBox 等。
我试过这个:
Collection<?> itemIds = getTable().getItemIds();
for (Object itemId : itemIds) {
Item item = getTable().getItem(itemId);
Property value = item.getItemProperty("value");
MyBean myBean = (MyBean) itemId;
Property property = getField(myBean);
boolean isRemoved = item.removeItemProperty("value");
boolean isAdded = item.addItemProperty("value", property);
}
getField 方法返回所需的字段(CheckBox、DateField...)。虽然isRemoved和isAdded为真,但我没有看到表中的字段。
如何在 MyBean 中添加 VariableType 字段?