Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

AddItemToEmptyTable.java 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.vaadin.tests.components.table;
  2. import com.vaadin.data.Item;
  3. import com.vaadin.data.Property.ValueChangeEvent;
  4. import com.vaadin.data.Property.ValueChangeListener;
  5. import com.vaadin.tests.components.TestBase;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Button.ClickEvent;
  8. import com.vaadin.ui.CheckBox;
  9. import com.vaadin.ui.Table;
  10. public class AddItemToEmptyTable extends TestBase {
  11. private Table rightTable;
  12. @Override
  13. protected void setup() {
  14. CheckBox cb = new CheckBox("Set first column width");
  15. cb.setValue(false);
  16. cb.setImmediate(true);
  17. cb.addListener(new ValueChangeListener() {
  18. @Override
  19. public void valueChange(ValueChangeEvent event) {
  20. if ((Boolean) event.getProperty().getValue()) {
  21. rightTable.setColumnWidth("name", 150);
  22. } else {
  23. rightTable.setColumnWidth("name", -1);
  24. }
  25. }
  26. });
  27. addComponent(cb);
  28. cb = new CheckBox("Set second column width");
  29. cb.setValue(true);
  30. cb.setImmediate(true);
  31. cb.addListener(new ValueChangeListener() {
  32. @Override
  33. public void valueChange(ValueChangeEvent event) {
  34. if ((Boolean) event.getProperty().getValue()) {
  35. rightTable.setColumnWidth("info", 20);
  36. } else {
  37. rightTable.setColumnWidth("info", -1);
  38. }
  39. }
  40. });
  41. addComponent(cb);
  42. rightTable = new Table();
  43. rightTable.setSizeFull();
  44. rightTable.setPageLength(7);
  45. rightTable.setColumnReorderingAllowed(false);
  46. rightTable.setColumnCollapsingAllowed(true);
  47. rightTable.setSelectable(true);
  48. rightTable.setMultiSelect(true);
  49. rightTable.setImmediate(true); // react at once when something is
  50. // selected
  51. rightTable.addContainerProperty("name", String.class, null);
  52. // rightTable.setColumnWidth("name", 150);
  53. rightTable.setColumnAlignment("name", Table.ALIGN_LEFT);
  54. rightTable.addContainerProperty("info", Button.class, null);
  55. rightTable.setColumnWidth("info", 20);
  56. rightTable.setColumnAlignment("info", Table.ALIGN_LEFT);
  57. addComponent(rightTable);
  58. Button b = new Button("Add item", new Button.ClickListener() {
  59. @Override
  60. public void buttonClick(ClickEvent event) {
  61. Object id = rightTable.addItem();
  62. Item item = rightTable.getItem(id);
  63. item.getItemProperty("name").setValue("Role");
  64. item.getItemProperty("info").setValue(new Button("Button"));
  65. }
  66. });
  67. addComponent(b);
  68. b = new Button("Clear", new Button.ClickListener() {
  69. @Override
  70. public void buttonClick(ClickEvent event) {
  71. rightTable.removeAllItems();
  72. }
  73. });
  74. addComponent(b);
  75. }
  76. @Override
  77. protected String getDescription() {
  78. return "Adding an item to a Table should work independent of column width settings...";
  79. }
  80. @Override
  81. protected Integer getTicketNumber() {
  82. return 7731;
  83. }
  84. }