You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GridEditorEnableDisable.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.vaadin.tests.components.grid;
  2. import com.vaadin.data.Binder;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.tests.components.AbstractTestUI;
  5. import com.vaadin.tests.data.bean.Person;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Grid;
  8. import com.vaadin.ui.TextField;
  9. public class GridEditorEnableDisable extends AbstractTestUI {
  10. @Override
  11. protected void setup(VaadinRequest request) {
  12. final Grid<Person> grid = new Grid<>();
  13. Person person1 = new Person();
  14. person1.setFirstName("Foo");
  15. Person person2 = new Person();
  16. person2.setFirstName("Bar");
  17. grid.setItems(person1, person2);
  18. Grid.Column<Person, String> column = grid
  19. .addColumn(Person::getFirstName);
  20. Binder<Person> binder = grid.getEditor().getBinder();
  21. grid.getEditor().setEnabled(true);
  22. TextField field = new TextField();
  23. Binder.Binding<Person, String> binding = binder.bind(field,
  24. Person::getFirstName, Person::setFirstName);
  25. column.setEditorBinding(binding);
  26. addComponent(grid);
  27. final Button disableButton = new Button("Disable");
  28. disableButton.addClickListener((event) -> {
  29. grid.getEditor().setEnabled(false);
  30. });
  31. addComponent(disableButton);
  32. final Button cancelAndDisableButton = new Button("Cancel & Disable");
  33. cancelAndDisableButton.addClickListener((event) -> {
  34. if (grid.getEditor().isOpen())
  35. grid.getEditor().cancel();
  36. grid.getEditor().setEnabled(false);
  37. });
  38. addComponent(cancelAndDisableButton);
  39. final Button enableButton = new Button("Enable");
  40. enableButton.addClickListener((event) -> {
  41. grid.getEditor().setEnabled(true);
  42. });
  43. addComponent(enableButton);
  44. final Button enableAndEditRowButton = new Button("Enable & Edit Row");
  45. enableAndEditRowButton.addClickListener((event) -> {
  46. grid.getEditor().setEnabled(true);
  47. grid.getEditor().editRow(0);
  48. });
  49. addComponent(enableAndEditRowButton);
  50. }
  51. }