diff options
author | Artur Signell <artur.signell@itmill.com> | 2009-10-02 15:33:14 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2009-10-02 15:33:14 +0000 |
commit | 8f10fd5b7ac58e01bc5b7a4532d6d3cd5c5b670f (patch) | |
tree | dc14211a1146be9cec5792d3a33a90c5a104a753 /src | |
parent | 8dec14d4100bdbf308232e538a2d304694788bad (diff) | |
download | vaadin-framework-8f10fd5b7ac58e01bc5b7a4532d6d3cd5c5b670f.tar.gz vaadin-framework-8f10fd5b7ac58e01bc5b7a4532d6d3cd5c5b670f.zip |
Merged: Test case and fix for #3458 - Extra scrollbars inside SplitPanel when content changes
svn changeset:9058/svn branch:6.2
Diffstat (limited to 'src')
3 files changed, 114 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java index 688283e61d..28dba93a04 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java @@ -198,6 +198,11 @@ public class VSplitPanel extends ComplexPanel implements Container, } }); } + + // This is needed at least for cases like #3458 to take + // appearing/disappearing scrollbars into account. + client.runDescendentsLayout(this); + rendering = false; } diff --git a/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.html b/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.html new file mode 100644 index 0000000000..e8e7395198 --- /dev/null +++ b/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.html @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>SplitPanelExtraScrollbars</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">SplitPanelExtraScrollbars</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.splitpanel.SplitPanelExtraScrollbars</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentssplitpanelSplitPanelExtraScrollbars::/VSplitPanelHorizontal[0]/VHorizontalLayout[0]/ChildComponentContainer[0]/VNativeButton[0]</td> + <td></td> +</tr> +<tr> + <td>waitForVaadin</td> + <td></td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java b/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java new file mode 100644 index 0000000000..9d9800eeaf --- /dev/null +++ b/src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java @@ -0,0 +1,67 @@ +package com.vaadin.tests.components.splitpanel;
+import com.vaadin.terminal.Sizeable;
+import com.vaadin.tests.components.AbstractTestCase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.SplitPanel;
+import com.vaadin.ui.Window;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+
+public class SplitPanelExtraScrollbars extends AbstractTestCase implements
+ ClickListener {
+
+ private SplitPanel sp;
+ private HorizontalLayout hl;
+ private Button b;
+
+ @Override
+ public void init() {
+ sp = new SplitPanel(SplitPanel.ORIENTATION_HORIZONTAL);
+ sp.setSizeFull();
+ sp.setSplitPosition(0, Sizeable.UNITS_PIXELS);
+
+ hl = new HorizontalLayout();
+ hl.setMargin(true);
+ hl.setWidth("100%");
+ hl.setHeight(null);
+
+ b = createButton("200px");
+ sp.setSecondComponent(hl);
+ hl.addComponent(b);
+
+ Window w = new Window("Test", sp);
+ setMainWindow(w);
+ }
+
+ private Button createButton(String height) {
+ Button b = new NativeButton("A BIG button");
+ b.setHeight(height);
+ b.addListener(this);
+ return b;
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Click the button to change its height. Making the button higher than the browser should not cause vertical but not horizontal scrollbars to appear.";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 3458;
+ }
+
+ public void buttonClick(ClickEvent event) {
+ if (b.getHeight() == 200) {
+ b.setHeight("1200px");
+ } else {
+ b.setHeight("200px");
+ }
+
+ // Sending all changes in one repaint triggers the bug
+ hl.requestRepaint();
+ sp.requestRepaint();
+ }
+
+}
|