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.

TestSampler.java 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. package com.vaadin.tests.components.uitest;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.vaadin.data.HasValue.ValueChangeListener;
  5. import com.vaadin.tests.components.uitest.components.AccordionsCssTest;
  6. import com.vaadin.tests.components.uitest.components.ButtonsCssTest;
  7. import com.vaadin.tests.components.uitest.components.DatesCssTest;
  8. import com.vaadin.tests.components.uitest.components.EmbeddedCssTest;
  9. import com.vaadin.tests.components.uitest.components.FormsCssTest;
  10. import com.vaadin.tests.components.uitest.components.LabelsCssTest;
  11. import com.vaadin.tests.components.uitest.components.LayoutsCssTest;
  12. import com.vaadin.tests.components.uitest.components.NotificationsCssTest;
  13. import com.vaadin.tests.components.uitest.components.SelectsCssTest;
  14. import com.vaadin.tests.components.uitest.components.SlidersCssTest;
  15. import com.vaadin.tests.components.uitest.components.TabSheetsCssTest;
  16. import com.vaadin.tests.components.uitest.components.TablesCssTest;
  17. import com.vaadin.tests.components.uitest.components.TextFieldsCssTest;
  18. import com.vaadin.tests.components.uitest.components.TreeCssTest;
  19. import com.vaadin.tests.components.uitest.components.TreeTableCssTest;
  20. import com.vaadin.tests.components.uitest.components.UploadCssTest;
  21. import com.vaadin.tests.components.uitest.components.WindowsCssTest;
  22. import com.vaadin.ui.Component;
  23. import com.vaadin.ui.ComponentContainer;
  24. import com.vaadin.ui.GridLayout;
  25. import com.vaadin.ui.HorizontalLayout;
  26. import com.vaadin.ui.TabSheet;
  27. import com.vaadin.ui.UI;
  28. import com.vaadin.ui.Window;
  29. /**
  30. * Test sampler that creates a tabsheet of "all" the Vaadin UI components. This
  31. * can be used to test themes and components in general.
  32. */
  33. public class TestSampler extends TabSheet {
  34. public static final String ICON_URL = "../runo/icons/16/help.png";
  35. private List<Component> components = new ArrayList<>();
  36. private List<ValueChangeListener<Boolean>> readOnlyChangeListeners = new ArrayList<ValueChangeListener<Boolean>>();
  37. private ComponentContainer currentTab;
  38. public TestSampler() {
  39. setId("testsampler");
  40. createLabels();
  41. createButtons();
  42. createEmbedded();
  43. createPopupDates();
  44. createTextFields();
  45. createSelects();
  46. createSliders();
  47. createUploads();
  48. createForms();
  49. createTables();
  50. createTrees();
  51. createTreeTable();
  52. createLayouts();
  53. createTabSheets();
  54. createAccordions();
  55. createWindows();
  56. createNotifications();
  57. }
  58. private void createNotifications() {
  59. NotificationsCssTest notificationsTest = new NotificationsCssTest(this);
  60. createComponentLayout("Notifications", notificationsTest);
  61. }
  62. private void createWindows() {
  63. WindowsCssTest windows = new WindowsCssTest(this);
  64. createComponentLayout("Windows", windows);
  65. }
  66. private void createAccordions() {
  67. GridLayout grid = createGridLayoutBase();
  68. createComponentLayout("Accordions", grid);
  69. new AccordionsCssTest(this);
  70. }
  71. private void createTabSheets() {
  72. GridLayout grid = createGridLayoutBase();
  73. createComponentLayout("TabSheets", grid);
  74. new TabSheetsCssTest(this);
  75. }
  76. private GridLayout createGridLayoutBase() {
  77. GridLayout grid = new GridLayout();
  78. grid.setColumns(3);
  79. grid.setWidth("100%");
  80. return grid;
  81. }
  82. private void createLayouts() {
  83. GridLayout grid = new LayoutsCssTest(this);
  84. createComponentLayout("Layouts", grid);
  85. }
  86. private void createTreeTable() {
  87. createComponentLayout("TreeTable");
  88. new TreeTableCssTest(this);
  89. }
  90. private void createTrees() {
  91. createComponentLayout("Trees");
  92. new TreeCssTest(this);
  93. }
  94. private void createTables() {
  95. createComponentLayout("Tables", new TablesCssTest(this));
  96. }
  97. private void createForms() {
  98. createComponentLayout("Forms", new FormsCssTest(this));
  99. }
  100. private void createUploads() {
  101. createComponentLayout("Uploads");
  102. new UploadCssTest(this);
  103. }
  104. private void createSliders() {
  105. createComponentLayout("Sliders");
  106. new SlidersCssTest(this);
  107. }
  108. private void createSelects() {
  109. createComponentLayout("Selects", new SelectsCssTest(this));
  110. }
  111. private void createTextFields() {
  112. createComponentLayout("TextFields", new TextFieldsCssTest(this));
  113. }
  114. private void createPopupDates() {
  115. createComponentLayout("Dates", new DatesCssTest(this));
  116. }
  117. private void createEmbedded() {
  118. createComponentLayout("Embedded");
  119. new EmbeddedCssTest(this);
  120. }
  121. private void createButtons() {
  122. createComponentLayout("Buttons", new ButtonsCssTest(this));
  123. }
  124. private void createLabels() {
  125. createComponentLayout("Labels", new LabelsCssTest(this));
  126. }
  127. private void createComponentLayout(String caption) {
  128. HorizontalLayout hl = new HorizontalLayout();
  129. hl.setSpacing(true);
  130. hl.setWidth("100%");
  131. createComponentLayout(caption, hl);
  132. }
  133. private void createComponentLayout(String caption,
  134. ComponentContainer layout) {
  135. addTab(layout, caption);
  136. currentTab = layout;
  137. }
  138. @Override
  139. public void addComponent(Component c) {
  140. currentTab.addComponent(c);
  141. components.add(c);
  142. }
  143. /**
  144. * Register a component to the TestSampler for style name changes/additions.
  145. *
  146. * @param component
  147. */
  148. public void registerComponent(Component component) {
  149. components.add(component);
  150. }
  151. public void addWindow(Window window) {
  152. UI.getCurrent().addWindow(window);
  153. }
  154. public void setCustomStyleNameToComponents(String oldStyleName,
  155. String newStyleName) {
  156. for (Component c : components) {
  157. if (oldStyleName != null) {
  158. c.removeStyleName(oldStyleName);
  159. }
  160. c.addStyleName(newStyleName);
  161. }
  162. }
  163. public List<ValueChangeListener<Boolean>> getReadOnlyChangeListeners() {
  164. return readOnlyChangeListeners;
  165. }
  166. public void addReadOnlyChangeListener(
  167. ValueChangeListener<Boolean> listener) {
  168. readOnlyChangeListeners.add(listener);
  169. }
  170. }