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.

ComboBoxItemIcon.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.vaadin.tests.components.combobox;
  2. import java.net.URISyntaxException;
  3. import java.nio.file.Paths;
  4. import java.util.Locale;
  5. import java.util.stream.IntStream;
  6. import com.vaadin.server.ClassResource;
  7. import com.vaadin.server.FileResource;
  8. import com.vaadin.server.StreamResource;
  9. import com.vaadin.server.ThemeResource;
  10. import com.vaadin.tests.components.TestBase;
  11. import com.vaadin.ui.ComboBox;
  12. import com.vaadin.ui.IconGenerator;
  13. public class ComboBoxItemIcon extends TestBase {
  14. private IconGenerator<Integer> iconGenerator = i -> {
  15. switch (i % 3) {
  16. case 0:
  17. return new StreamResource(() -> getClass().getResourceAsStream(
  18. "/com/vaadin/tests/integration/se.gif"), "se.gif");
  19. case 1:
  20. try {
  21. return new FileResource(Paths.get(getClass()
  22. .getResource("/com/vaadin/tests/integration/fi.gif")
  23. .toURI()).toFile());
  24. } catch (URISyntaxException e) {
  25. return null;
  26. }
  27. case 2:
  28. return new ClassResource("/com/vaadin/tests/m.gif");
  29. default:
  30. return null;
  31. }
  32. };
  33. @Override
  34. protected Integer getTicketNumber() {
  35. return 2455;
  36. }
  37. @Override
  38. protected String getDescription() {
  39. return "All items in the ComboBoxes should have icons.";
  40. }
  41. @Override
  42. protected void setup() {
  43. {
  44. ComboBox<String> cb = new ComboBox<>();
  45. cb.setItems("FI", "SE");
  46. cb.setItemIconGenerator(
  47. item -> new ThemeResource("../tests-tickets/icons/"
  48. + item.toLowerCase(Locale.ROOT) + ".gif"));
  49. addComponent(cb);
  50. }
  51. {
  52. ComboBox<String> cb = new ComboBox<>();
  53. cb.setItems("Finland", "Australia", "Hungary");
  54. cb.setItemIconGenerator(
  55. item -> new ThemeResource("../tests-tickets/icons/"
  56. + item.substring(0, 2).toLowerCase(Locale.ROOT)
  57. + ".gif"));
  58. cb.setValue("Hungary");
  59. addComponent(cb);
  60. }
  61. {
  62. ComboBox<Integer> cb = new ComboBox<>();
  63. cb.setItems(IntStream.range(0, 3).boxed());
  64. cb.setItemIconGenerator(iconGenerator);
  65. cb.setValue(1);
  66. addComponent(cb);
  67. }
  68. }
  69. }