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.

LongMultiselect.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.vaadin.tests.components.table;
  2. import java.util.Collection;
  3. import com.vaadin.data.Property;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.tests.components.AbstractTestUI;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Table;
  8. import com.vaadin.ui.VerticalLayout;
  9. public class LongMultiselect extends AbstractTestUI {
  10. private enum ItemProperty {
  11. COLUMN1, COLUMN2
  12. }
  13. @Override
  14. protected void setup(VaadinRequest request) {
  15. final Table table = new Table("Ticket #8264 table");
  16. addComponent(table);
  17. table.setWidth("200px");
  18. table.setHeight("170px");
  19. table.setSelectable(true);
  20. table.setMultiSelect(true);
  21. table.setImmediate(true);
  22. // Create example data
  23. table.addContainerProperty(ItemProperty.COLUMN1, String.class, null);
  24. table.addContainerProperty(ItemProperty.COLUMN2, String.class, null);
  25. for (int i = 1; i < 100; i++) {
  26. table.addItem(new String[] { "Item " + i, null }, i);
  27. }
  28. // Add action button
  29. addComponent(new Button("Do It", new Button.ClickListener() {
  30. @Override
  31. public void buttonClick(Button.ClickEvent event) {
  32. // Set ItemProperty.COLUMN2 for all selected values of table
  33. Collection selectedIds = (Collection) table.getValue();
  34. for (final Object itemId : selectedIds) {
  35. final Property p = table.getItem(itemId).getItemProperty(
  36. ItemProperty.COLUMN2);
  37. if (p.getValue() instanceof String) {
  38. p.setValue(null);
  39. } else {
  40. p.setValue("updated");
  41. }
  42. }
  43. }
  44. }));
  45. }
  46. @Override
  47. protected String getTestDescription() {
  48. return "Multiselecting 94 rows (from \"item 5\" to \"item 98\") and modifying second column of each row selected (press Do It). This should work (update the 2nd column) and not cause JS exception.";
  49. }
  50. @Override
  51. protected Integer getTicketNumber() {
  52. return 8264;
  53. }
  54. }