package com.vaadin.tests.components.uitest; import java.util.ArrayList; import java.util.List; import com.vaadin.tests.components.uitest.components.AccordionsCssTest; import com.vaadin.tests.components.uitest.components.ButtonsCssTest; import com.vaadin.tests.components.uitest.components.DatesCssTest; import com.vaadin.tests.components.uitest.components.EmbeddedCssTest; import com.vaadin.tests.components.uitest.components.FormsCssTest; import com.vaadin.tests.components.uitest.components.LabelsCssTest; import com.vaadin.tests.components.uitest.components.LayoutsCssTest; import com.vaadin.tests.components.uitest.components.NotificationsCssTest; import com.vaadin.tests.components.uitest.components.SelectsCssTest; import com.vaadin.tests.components.uitest.components.SlidersCssTest; import com.vaadin.tests.components.uitest.components.TabSheetsCssTest; import com.vaadin.tests.components.uitest.components.TablesCssTest; import com.vaadin.tests.components.uitest.components.TextFieldsCssTest; import com.vaadin.tests.components.uitest.components.TreeCssTest; import com.vaadin.tests.components.uitest.components.TreeTableCssTest; import com.vaadin.tests.components.uitest.components.UploadCssTest; import com.vaadin.tests.components.uitest.components.WindowsCssTest; import com.vaadin.ui.Component; import com.vaadin.ui.ComponentContainer; import com.vaadin.ui.GridLayout; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.TabSheet; import com.vaadin.ui.UI; import com.vaadin.ui.Window; /** * Test sampler that creates a tabsheet of "all" the Vaadin UI components. This * can be used to test themes and components in general. */ public class TestSampler extends TabSheet { public static final String ICON_URL = "../runo/icons/16/help.png"; private List<Component> components = new ArrayList<>(); private ComponentContainer currentTab; public TestSampler() { setId("testsampler"); createLabels(); createButtons(); createEmbedded(); createPopupDates(); createTextFields(); createSelects(); createSliders(); createUploads(); createForms(); createTables(); createTrees(); createTreeTable(); createLayouts(); createTabSheets(); createAccordions(); createWindows(); createNotifications(); } private void createNotifications() { NotificationsCssTest notificationsTest = new NotificationsCssTest(this); createComponentLayout("Notifications", notificationsTest); } private void createWindows() { WindowsCssTest windows = new WindowsCssTest(this); createComponentLayout("Windows", windows); } private void createAccordions() { GridLayout grid = createGridLayoutBase(); createComponentLayout("Accordions", grid); new AccordionsCssTest(this); } private void createTabSheets() { GridLayout grid = createGridLayoutBase(); createComponentLayout("TabSheets", grid); new TabSheetsCssTest(this); } private GridLayout createGridLayoutBase() { GridLayout grid = new GridLayout(); grid.setColumns(3); grid.setWidth("100%"); return grid; } private void createLayouts() { GridLayout grid = new LayoutsCssTest(this); createComponentLayout("Layouts", grid); } private void createTreeTable() { createComponentLayout("TreeTable"); new TreeTableCssTest(this); } private void createTrees() { createComponentLayout("Trees"); new TreeCssTest(this); } private void createTables() { createComponentLayout("Tables", new TablesCssTest(this)); } private void createForms() { createComponentLayout("Forms", new FormsCssTest(this)); } private void createUploads() { createComponentLayout("Uploads"); new UploadCssTest(this); } private void createSliders() { createComponentLayout("Sliders"); new SlidersCssTest(this); } private void createSelects() { createComponentLayout("Selects", new SelectsCssTest(this)); } private void createTextFields() { createComponentLayout("TextFields", new TextFieldsCssTest(this)); } private void createPopupDates() { createComponentLayout("Dates", new DatesCssTest(this)); } private void createEmbedded() { createComponentLayout("Embedded"); new EmbeddedCssTest(this); } private void createButtons() { createComponentLayout("Buttons", new ButtonsCssTest(this)); } private void createLabels() { createComponentLayout("Labels", new LabelsCssTest(this)); } private void createComponentLayout(String caption) { HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); hl.setWidth("100%"); createComponentLayout(caption, hl); } private void createComponentLayout(String caption, ComponentContainer layout) { addTab(layout, caption); currentTab = layout; } @Override public void addComponent(Component c) { currentTab.addComponent(c); components.add(c); } /** * Register a component to the TestSampler for style name changes/additions. * * @param component */ public void registerComponent(Component component) { components.add(component); } public void addWindow(Window window) { UI.getCurrent().addWindow(window); } public void setCustomStyleNameToComponents(String oldStyleName, String newStyleName) { for (Component c : components) { if (oldStyleName != null) { c.removeStyleName(oldStyleName); } c.addStyleName(newStyleName); } } }