summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/ScrollbarStressTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/com/vaadin/tests/ScrollbarStressTest.java')
-rw-r--r--uitest/src/com/vaadin/tests/ScrollbarStressTest.java239
1 files changed, 239 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/ScrollbarStressTest.java b/uitest/src/com/vaadin/tests/ScrollbarStressTest.java
new file mode 100644
index 0000000000..7436bfc539
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/ScrollbarStressTest.java
@@ -0,0 +1,239 @@
+package com.vaadin.tests;
+
+import com.vaadin.Application;
+import com.vaadin.ui.Accordion;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.OptionGroup;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.UI.LegacyWindow;
+import com.vaadin.ui.TabSheet;
+import com.vaadin.ui.Table;
+import com.vaadin.ui.VerticalLayout;
+import com.vaadin.ui.VerticalSplitPanel;
+import com.vaadin.ui.Window;
+
+public class ScrollbarStressTest extends Application.LegacyApplication {
+
+ final LegacyWindow main = new LegacyWindow("Scrollbar Stress Test");
+
+ final Panel panel = new Panel("Panel");
+ final VerticalSplitPanel splitPanel = new VerticalSplitPanel();
+ final Accordion accordion = new Accordion();
+ final TabSheet tabsheet = new TabSheet();
+ final Window subwindow = new Window("Subwindow");
+
+ final OptionGroup width = new OptionGroup("LO Width");
+ final OptionGroup height = new OptionGroup("LO Height");
+
+ private boolean getTable;
+
+ @Override
+ public void init() {
+ setTheme("tests-tickets");
+ setMainWindow(main);
+ createControlWindow();
+ subwindow.setWidth("400px");
+ subwindow.setHeight("400px");
+ }
+
+ private void createControlWindow() {
+ final OptionGroup context = new OptionGroup("Context");
+ context.addItem("Main window");
+ context.addItem("ExpandLayout");
+ context.addItem("Subwindow");
+ context.addItem("Panel");
+ context.addItem("Split Panel");
+ context.addItem("TabSheet");
+ context.addItem("Accordion");
+ context.setValue("Main window");
+
+ final OptionGroup testComponent = new OptionGroup(
+ "TestComponent 100%x100%");
+ testComponent.addItem("Label");
+ testComponent.addItem("Table");
+ testComponent.setValue("Label");
+
+ width.addItem("100%");
+ width.addItem("50%");
+ width.addItem("150%");
+ width.addItem("100px");
+ width.addItem("500px");
+ width.setValue("100%");
+
+ height.addItem("100%");
+ height.addItem("50%");
+ height.addItem("150%");
+ height.addItem("100px");
+ height.addItem("500px");
+ height.setValue("100%");
+
+ final Button set = new Button("Set", new ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getTable = testComponent.getValue().equals("Table");
+
+ if (context.getValue() == "Main window") {
+ drawInMainWindow();
+ } else if (context.getValue() == "Subwindow") {
+ drawInSubwindow();
+ } else if (context.getValue() == "Panel") {
+ drawInPanel();
+ } else if (context.getValue() == "Split Panel") {
+ drawInSplitPanel();
+ } else if (context.getValue() == "TabSheet") {
+ drawInTabSheet(false);
+ } else if (context.getValue() == "Accordion") {
+ drawInTabSheet(true);
+ } else if (context.getValue() == "ExpandLayout") {
+ drawInExpandLayout();
+ }
+ }
+ });
+
+ HorizontalLayout ol = new HorizontalLayout();
+ ol.addComponent(context);
+ ol.addComponent(testComponent);
+ ol.addComponent(width);
+ ol.addComponent(height);
+ ol.addComponent(set);
+ ol.setSpacing(true);
+ ol.setMargin(true);
+
+ Window controller = new Window("Controller");
+ controller.setContent(ol);
+ main.addWindow(controller);
+ }
+
+ protected void drawInExpandLayout() {
+ main.removeAllComponents();
+ main.getContent().setSizeFull();
+
+ VerticalLayout ol = new VerticalLayout();
+
+ VerticalLayout el = new VerticalLayout();
+
+ el.removeAllComponents();
+
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+
+ el.addComponent(ol);
+
+ main.getContent().addComponent(el);
+ main.removeWindow(subwindow);
+
+ }
+
+ protected void drawInTabSheet(boolean verticalAkaAccordion) {
+ main.removeAllComponents();
+ main.getContent().setSizeFull();
+
+ VerticalLayout ol = new VerticalLayout();
+ ol.setCaption("Tab 1");
+ VerticalLayout ol2 = new VerticalLayout();
+ ol2.setCaption("Tab 2");
+
+ TabSheet ts = (verticalAkaAccordion ? accordion : tabsheet);
+ ts.setSizeFull();
+
+ ts.removeAllComponents();
+
+ ts.addComponent(ol);
+ ts.addComponent(ol2);
+
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+ ol2.setWidth((String) width.getValue());
+ ol2.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+
+ ol2.addComponent(getTestComponent());
+
+ main.addComponent(ts);
+ main.removeWindow(subwindow);
+ }
+
+ private void drawInSplitPanel() {
+ main.removeAllComponents();
+ main.getContent().setSizeFull();
+
+ VerticalLayout ol = new VerticalLayout();
+ VerticalLayout ol2 = new VerticalLayout();
+
+ splitPanel.setFirstComponent(ol);
+ splitPanel.setSecondComponent(ol2);
+
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+ ol2.setWidth((String) width.getValue());
+ ol2.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+
+ ol2.addComponent(getTestComponent());
+
+ main.addComponent(splitPanel);
+ main.removeWindow(subwindow);
+ }
+
+ private void drawInPanel() {
+ main.removeAllComponents();
+ main.getContent().setSizeFull();
+
+ VerticalLayout ol = new VerticalLayout();
+ panel.setSizeFull();
+ panel.setContent(ol);
+
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+ main.addComponent(panel);
+ main.removeWindow(subwindow);
+ }
+
+ private void drawInSubwindow() {
+ main.removeAllComponents();
+ main.getContent().setSizeFull();
+ VerticalLayout ol = new VerticalLayout();
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+ subwindow.setContent(ol);
+ main.addWindow(subwindow);
+ }
+
+ private void drawInMainWindow() {
+ main.removeAllComponents();
+ VerticalLayout ol = new VerticalLayout();
+ main.setContent(ol);
+ ol.setWidth((String) width.getValue());
+ ol.setHeight((String) height.getValue());
+
+ ol.addComponent(getTestComponent());
+ main.removeWindow(subwindow);
+ }
+
+ private Component getTestComponent() {
+ if (getTable) {
+ Table testTable = TestForTablesInitialColumnWidthLogicRendering
+ .getTestTable(4, 50);
+ testTable.setSizeFull();
+ return testTable;
+ } else {
+ Label l = new Label("Label");
+ l.setStyleName("no-padding");
+ l.setSizeFull();
+ return l;
+ }
+ }
+}