我有一个由BeanItemContainer支持的Grid。有没有办法为它添加列?我找不到办法,因为它给了我很多错误。我最终手动将行添加到网格中。我试着添加生成的属性或普通属性而没有运气。
public final class ExecutionGrid extends Grid {
public ExecutionGrid(String caption) {
super(caption);
}
public ExecutionGrid(String caption, List<Step> steps) {
super(caption);
setSteps(steps);
}
/**
* Add steps to this grid.
*
* @param steps Steps to set. It deletes any previous ones stored.
*/
public void setSteps(List<Step> steps) {
//Clear grid
removeAllColumns();
setHeightByRows(steps.size());
setHeightMode(HeightMode.ROW);
Grid.Column textColumn = addColumn("text", byte[].class);
textColumn.setHeaderCaption("Text");
textColumn.setConverter(new ByteToStringConverter());
Grid.Column expectedResultColumn = addColumn("expectedResult", byte[].class);
expectedResultColumn.setHeaderCaption("Expected Result");
expectedResultColumn.setConverter(new ByteToStringConverter());
Grid.Column notesColumn = addColumn("notes", String.class);
notesColumn.setHeaderCaption("Notes");
Grid.Column resultColumn = addColumn("result", String.class);
resultColumn.setHeaderCaption("Result");
steps.forEach((s) -> {
addRow(s.getText(), s.getExpectedResult(), s.getNotes(), "");
});
}
}
想知道我是否遗漏了什么。
答案 0 :(得分:0)
如果我错了,请纠正我,但认为没有办法直接在Grid中执行此操作。它可能与BeanItemContainer中使用的反射内容有关。 但是,您可以创建某种具有所需属性的POJO。