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.

IconsInCaption.java 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.vaadin.tests.components.caption;
  2. import com.vaadin.server.ThemeResource;
  3. import com.vaadin.shared.ui.ContentMode;
  4. import com.vaadin.tests.VaadinClasses;
  5. import com.vaadin.tests.components.TestBase;
  6. import com.vaadin.tests.util.Log;
  7. import com.vaadin.ui.ComboBox;
  8. import com.vaadin.ui.ComponentContainer;
  9. import com.vaadin.ui.Embedded;
  10. import com.vaadin.ui.Label;
  11. import com.vaadin.ui.VerticalLayout;
  12. public class IconsInCaption extends TestBase {
  13. private static final String TYPE_EMBEDDED = "Embedded";
  14. private static final String TYPE_CAPTION = "In caption";
  15. private static final String[] icons = new String[] { "arrow-down.png",
  16. "arrow-left.png", "arrow-right.png", "arrow-up.png",
  17. "attention.png", "calendar.png", "cancel.png", "document.png",
  18. "document-add.png", "document-delete.png", "document-doc.png",
  19. "document-image.png", "document-pdf.png", "document-ppt.png",
  20. "document-txt.png", "document-web.png", "document-xsl.png",
  21. "email.png", "email-reply.png", "email-send.png", "folder.png",
  22. "folder-add.png", "folder-delete.png", "globe.png", "help.png",
  23. "lock.png", "note.png", "ok.png", "reload.png", "settings.png",
  24. "trash.png", "trash-full.png", "user.png", "users.png" };
  25. private static final String[] sizes = new String[] { "16", "32", "64" };
  26. private ComponentContainer container = new VerticalLayout();
  27. private Log log = new Log(5);
  28. private ComboBox<Class<? extends ComponentContainer>> containerSelect;
  29. private ComboBox<String> iconTypeSelect;
  30. @Override
  31. protected void setup() {
  32. iconTypeSelect = new ComboBox<>("Icon container");
  33. iconTypeSelect.setItems(TYPE_EMBEDDED, TYPE_CAPTION);
  34. iconTypeSelect.setEmptySelectionAllowed(false);
  35. iconTypeSelect.addValueChangeListener(event -> updateContainer());
  36. containerSelect = new ComboBox<>("Container", VaadinClasses
  37. .getComponentContainersSupportingUnlimitedNumberOfComponents());
  38. containerSelect.addValueChangeListener(event -> updateContainer());
  39. addComponent(log);
  40. addComponent(iconTypeSelect);
  41. addComponent(containerSelect);
  42. addComponent(container);
  43. iconTypeSelect.setValue(TYPE_CAPTION);
  44. containerSelect.setValue(VerticalLayout.class);
  45. }
  46. protected void updateContainer() {
  47. Class<? extends ComponentContainer> containerClass = containerSelect
  48. .getValue();
  49. if (containerClass == null) {
  50. return;
  51. }
  52. Object iconType = iconTypeSelect.getValue();
  53. try {
  54. ComponentContainer newContainer = createContainer(containerClass,
  55. iconType);
  56. replaceComponent(container, newContainer);
  57. container = newContainer;
  58. log.log("Container changed to " + containerClass.getName() + "/"
  59. + iconType);
  60. } catch (Exception e) {
  61. log.log("Create container failed for " + containerClass.getName()
  62. + ": " + e.getMessage());
  63. e.printStackTrace();
  64. }
  65. }
  66. private static ComponentContainer createContainer(
  67. Class<? extends ComponentContainer> containerClass, Object iconType)
  68. throws InstantiationException, IllegalAccessException {
  69. ComponentContainer container = containerClass.newInstance();
  70. for (String size : sizes) {
  71. Label title = new Label("<h3>" + size + "x" + size + "</h3>",
  72. ContentMode.HTML);
  73. container.addComponent(title);
  74. for (String icon : icons) {
  75. ThemeResource res = new ThemeResource(
  76. "../runo/icons/" + size + "/" + icon);
  77. if (TYPE_CAPTION.equals(iconType)) {
  78. Label name = new Label();
  79. name.setCaption(icon);
  80. name.setIcon(res);
  81. container.addComponent(name);
  82. } else if (TYPE_EMBEDDED.equals(iconType)) {
  83. Embedded e = new Embedded(icon, res);
  84. container.addComponent(e);
  85. }
  86. }
  87. }
  88. return container;
  89. }
  90. @Override
  91. protected String getDescription() {
  92. return "Test for comparing rendering speed of icons in a caption and in an Embedded component in different component containers.";
  93. }
  94. @Override
  95. protected Integer getTicketNumber() {
  96. return 6578;
  97. }
  98. }