ich ein Raster wie diese Vaadin 8 unter Verwendung von definierten einzustellen:Gibt es eine Möglichkeit, eine Zelle in Raster im Bearbeitungsmodus mit Vaadin 8 Raster
ListDataProvider<Value> gridDataProvider =
new ListDataProvider<>(new ArrayList<>());
GridSelectionModel<Value> selectionModel;
Grid<Value> grid = new Grid<>(Value.class);
TextField editorField = new TextField();
editorField.setSizeFull();
Binder<Value> binder = new Binder<>();
binder.bind(editorField, Value::getValue, Value::setValue);
Editor<Value> gridEditor = grid.getEditor();
gridEditor.setBinder(binder);
gridEditor.addSaveListener((EditorSaveListener<Value>) event -> {
gridDataProvider.refreshAll();
});
gridEditor.setEnabled(true);
grid.addColumn(Value::getValue).setEditorComponent(editorField, Value::setValue);
grid.removeHeaderRow(0);
selectionModel = grid.setSelectionMode(Grid.SelectionMode.MULTI);
grid.setDataProvider(gridDataProvider);
grid.setSizeFull();
Der Wert Bean ist nur eine ganz normale Bohne
private class Value {
private String value;
Value(String value) {
this.value = value;
}
String getValue() {
return value;
}
void setValue(String value) {
this.value = value;
}
@Override public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Value value1 = (Value) o;
return Objects.equals(value, value1.value);
}
Was ich tun möchte, ist die Schaltfläche hinzufügen, so dass durch Klicken auf diese Schaltfläche eine neue Zeile zum Raster hinzugefügt werden sollte und die einzige Spalte in der neuen Zeile sollte Bearbeitungsmodus eingestellt werden, so dass Benutzer einen neuen Wert direkt schreiben können. Ist es möglich, dies zu tun?