summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-10-02 15:33:14 +0000
committerArtur Signell <artur.signell@itmill.com>2009-10-02 15:33:14 +0000
commit8f10fd5b7ac58e01bc5b7a4532d6d3cd5c5b670f (patch)
treedc14211a1146be9cec5792d3a33a90c5a104a753 /src
parent8dec14d4100bdbf308232e538a2d304694788bad (diff)
downloadvaadin-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')
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java5
-rw-r--r--src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.html42
-rw-r--r--src/com/vaadin/tests/components/splitpanel/SplitPanelExtraScrollbars.java67
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();
+ }
+
+}