Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

GridEditRow.java 2.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.vaadin.tests.components.grid;
  2. import java.util.ArrayList;
  3. import com.vaadin.annotations.Widgetset;
  4. import com.vaadin.data.provider.ListDataProvider;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.tests.components.AbstractTestUI;
  7. import com.vaadin.ui.Button;
  8. import com.vaadin.ui.Grid;
  9. import com.vaadin.ui.TextField;
  10. @Widgetset("com.vaadin.DefaultWidgetSet")
  11. public class GridEditRow extends AbstractTestUI {
  12. private ArrayList<TestBean> items = new ArrayList<>();
  13. private TestBean bean = null;
  14. private int counter = 0;
  15. @SuppressWarnings("unchecked")
  16. @Override
  17. protected void setup(VaadinRequest request) {
  18. Grid<TestBean> grid = new Grid<TestBean>(TestBean.class);
  19. grid.setDataProvider(new ListDataProvider<>(items));
  20. grid.setWidth("100%");
  21. grid.setHeight("400px");
  22. grid.getEditor().setEnabled(true);
  23. grid.getColumn("name").setEditorComponent(new TextField());
  24. grid.getColumn("value").setEditorComponent(new TextField());
  25. getLayout().addComponent(new Button("Add", event -> {
  26. bean = new TestBean();
  27. items.add(bean);
  28. grid.getDataProvider().refreshAll();
  29. }));
  30. getLayout().addComponent(new Button("Add, Select & Edit", event -> {
  31. bean = new TestBean();
  32. items.add(bean);
  33. grid.getDataProvider().refreshAll();
  34. grid.select(bean);
  35. int row = ((ArrayList<TestBean>) ((ListDataProvider<TestBean>) grid
  36. .getDataProvider()).getItems()).indexOf(bean);
  37. grid.getEditor().editRow(row);
  38. }));
  39. getLayout().addComponent(new Button("Edit", event -> {
  40. int row = ((ArrayList<TestBean>) ((ListDataProvider<TestBean>) grid
  41. .getDataProvider()).getItems()).indexOf(bean);
  42. grid.getEditor().editRow(row);
  43. }));
  44. getLayout().addComponent(new Button("Select & Edit", event -> {
  45. grid.select(bean);
  46. int row = ((ArrayList<TestBean>) ((ListDataProvider<TestBean>) grid
  47. .getDataProvider()).getItems()).indexOf(bean);
  48. grid.getEditor().editRow(row);
  49. }));
  50. getLayout().addComponent(grid);
  51. }
  52. @Override
  53. protected Integer getTicketNumber() {
  54. return 10558;
  55. }
  56. @Override
  57. protected String getTestDescription() {
  58. return "Calling editRow shouldn't cause any other rows to be emptied.";
  59. }
  60. public class TestBean {
  61. private String name = "name" + counter;
  62. private String value = "value" + counter;
  63. public TestBean() {
  64. ++counter;
  65. }
  66. public String getName() {
  67. return name;
  68. }
  69. public void setName(String inName) {
  70. name = inName;
  71. }
  72. public String getValue() {
  73. return value;
  74. }
  75. public void setValue(String inValue) {
  76. value = inValue;
  77. }
  78. }
  79. }