Hi, I’m using Vaadin 8.4.2 and I found this issue:
I don’t able to edit the first row on editable grid.
I attach the source code:
@Theme("mytheme")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest vaadinRequest) {
final VerticalLayout layout = new VerticalLayout();
ArrayList<Item> items = new ArrayList<Item>();
InLineForm inline = new InLineForm();
Grid<Item> grid = new Grid<Item>(Item.class);
grid.setSizeFull();
grid.setDataProvider(new ListDataProvider<>(items));
grid.removeAllColumns();
Binder<Item> binder = grid.getEditor().getBinder();
Binding<Item, ?> binding1 = binder.forField(inline.string1).bind("string1");
Binding<Item, ?> binding2 = binder.forField(inline.string2).bind("string2");
binder.bindInstanceFields(inline);
grid.addColumn("string1").setEditorBinding(binding1);
grid.addColumn("string2").setEditorBinding(binding2);;
grid.getEditor().setEnabled(true);
grid.getEditor().setBuffered(false);
items.addAll(Arrays.asList(new Item("1","2"),new Item("3","4")));
grid.getDataProvider().refreshAll();
layout.addComponents(grid);
setContent(layout);
}
public class InLineForm {
public TextField string1 = new TextField();
public TextField string2 = new TextField();
}
public class Item {
public Item() {
}
public Item(String string1, String string2) {
super();
this.string1 = string1;
this.string2 = string2;
}
public String string1;
public String string2;
public String getString1() {
return string1;
}
public void setString1(String string1) {
this.string1 = string1;
}
public String getString2() {
return string2;
}
public void setString2(String string2) {
this.string2 = string2;
}
}
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
}