MyObj是不可变的,因此无法对其进行编辑,但是我应该能够在列表中交换它们。我应该如何实现?
这是我的Vaadin网格:
List<MyOBj> data = new ArrayList<>();
data.add(new MyObj(..));
data.add(new MyObj(..));
Grid<MyOBj> grid = new Grid<>(MyOBj.class);
grid.setItems(data);
grid.getEditor().setEnabled(true);
grid.addColumn(MyObj::someField).setCaption("someField");
MyObj可变吗,我将绑定编辑器:
Binder<MyOBj> binder = grid.getEditor().getBinder();
Binding<MyOBj, Boolean> binding = binder.bind(..binding setters/getter..);
column.setEditorBinding(binding);
现在我正在寻找这样的东西:
Binder<MyOBj> binder = grid.getEditor().getBinder();
Binding<MyOBj, Boolean> binding = binder.bind(..creating new Object and put on the given index of the list..);
column.setEditorBinding(binding);
有可能吗?
答案 0 :(得分:1)
两个通用解决方案构成了我的主意:
MyObj
实例。Binder
,以编辑对MyObj
的引用,而不是直接编辑MyOjb
。尽管语义不匹配很小,但这样做的实用方法是进行Binder<AtomcReference<MyObj>>
。