diff options
author | Johannes Dahlström <johannes.dahlstrom@vaadin.com> | 2012-03-13 09:18:53 +0000 |
---|---|---|
committer | Johannes Dahlström <johannes.dahlstrom@vaadin.com> | 2012-03-13 09:18:53 +0000 |
commit | 59826767eb12add61e1c976be1c80fd5bff26baf (patch) | |
tree | 79e47d573ba7745f43712af674e7baac11d87522 | |
parent | 3201228f110968ef54ca15822285c808f03512e2 (diff) | |
download | vaadin-framework-59826767eb12add61e1c976be1c80fd5bff26baf.tar.gz vaadin-framework-59826767eb12add61e1c976be1c80fd5bff26baf.zip |
[merge from 6.7] fixes #8505
svn changeset:23227/svn branch:6.8
-rw-r--r-- | build/build.xml | 2 | ||||
-rwxr-xr-x | scripts/merge.sh | 4 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ApplicationConnection.java | 20 | ||||
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java | 6 | ||||
-rw-r--r-- | tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.html | 47 | ||||
-rw-r--r-- | tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java | 77 |
6 files changed, 142 insertions, 14 deletions
diff --git a/build/build.xml b/build/build.xml index 1fdcc0ee25..aee3dc7bed 100644 --- a/build/build.xml +++ b/build/build.xml @@ -542,7 +542,7 @@ <target name="compile-widgetset" description="Compiles the widgetset given as the first parameter"> <fail unless="widgetset" message="No widgetset parameter set"/> <property name="widgetset-style" value="OBF" /> - <property name="widgetset-localWorkers" value="4" /> + <property name="widgetset-localWorkers" value="1" /> <property name="widgetset-extraParams" value="" /> <echo>Compiling widgetset ${widgetset}. Output directory: ${widgetsets-output-dir}</echo> <java classname="com.google.gwt.dev.Compiler" failonerror="yes" fork="yes" maxmemory="512m"> diff --git a/scripts/merge.sh b/scripts/merge.sh index a8c356ad30..9125a505b7 100755 --- a/scripts/merge.sh +++ b/scripts/merge.sh @@ -13,14 +13,14 @@ localchanges=`svn stat|wc -l` if [ "$localchanges" != "0" ] then echo "You must have a clean working space copy" - exit 2 + #exit 2 fi if [ "$SVN_PASS_FILE" != "" ] then SVN_PASS=`cat "$SVN_PASS_FILE"` fi - + svn up currentrepowithoutversion=`svn info|grep URL|sed "s/URL: //"|sed "s/\/[^\/]*$//"` diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index e34cd0fb8c..f3444f1313 100644 --- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -140,7 +140,7 @@ public class ApplicationConnection { protected boolean applicationRunning = false; - private int activeRequests = 0; + private boolean hasActiveRequest = false; /** Parameters for this application connection loaded from the web-page */ private ApplicationConfiguration configuration; @@ -358,12 +358,12 @@ public class ApplicationConnection { /** * Indicates whether or not there are currently active UIDL requests. Used - * internally to squence requests properly, seldom needed in Widgets. + * internally to sequence requests properly, seldom needed in Widgets. * * @return true if there are active requests */ public boolean hasActiveRequest() { - return (activeRequests > 0); + return hasActiveRequest; } private String getRepaintAllParameters() { @@ -521,7 +521,9 @@ public class ApplicationConnection { (new Timer() { @Override public void run() { - activeRequests--; + // TODO why? Here used to be "activeRequests--;" + // but can't see why exactly + hasActiveRequest = false; doUidlRequest(uri, payload, synchronous); } }).schedule(delay); @@ -735,7 +737,7 @@ public class ApplicationConnection { } protected void startRequest() { - activeRequests++; + hasActiveRequest = true; requestStartTime = new Date(); // show initial throbber if (loadTimer == null) { @@ -763,11 +765,11 @@ public class ApplicationConnection { checkForPendingVariableBursts(); runPostRequestHooks(configuration.getRootPanelId()); } - activeRequests--; + hasActiveRequest = false; // deferring to avoid flickering Scheduler.get().scheduleDeferred(new Command() { public void execute() { - if (activeRequests == 0) { + if (!hasActiveRequest()) { hideLoadingIndicator(); } } @@ -1404,10 +1406,6 @@ public class ApplicationConnection { makeUidlRequest(req.toString(), "", forceSync); } - private void makeUidlRequest(String string) { - makeUidlRequest(string, "", false); - } - /** * Sends a new value for the given paintables given variable to the server. * <p> diff --git a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java index cae0b65a5a..c8a2be3576 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VScrollTable.java @@ -2300,6 +2300,12 @@ public class VScrollTable extends FlowPanel implements Table, ScrollHandler, // Leave room for the sort indicator captionContainerWidth -= sortIndicator.getOffsetWidth(); } + + if (captionContainerWidth < 0) { + rightSpacing += captionContainerWidth; + captionContainerWidth = 0; + } + captionContainer.getStyle().setPropertyPx("width", captionContainerWidth); diff --git a/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.html b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.html new file mode 100644 index 0000000000..441142e7f9 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.html @@ -0,0 +1,47 @@ +<?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="http://localhost:8888/" /> +<title>New Test</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">New Test</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.table.LastColumnNegative?restartApplication</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java new file mode 100644 index 0000000000..2100d3852e --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java @@ -0,0 +1,77 @@ +package com.vaadin.tests.components.table; + +import com.vaadin.data.util.IndexedContainer; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Table; +import com.vaadin.ui.VerticalLayout; + +public class LastColumnNegative extends TestBase { + Table table = setupTable(); + VerticalLayout wrapper = new VerticalLayout(); + + @Override + public void setup() { + Button addButton = new Button("Add a table", + new Button.ClickListener() { + + public void buttonClick(ClickEvent event) { + wrapper.addComponent(table); + } + + }); + Button removeButton = new Button("Remove a table", + new Button.ClickListener() { + + public void buttonClick(ClickEvent event) { + wrapper.removeComponent(table); + } + }); + Button shrinkWrapper = new Button("Shrink wrapper", + new Button.ClickListener() { + + public void buttonClick(ClickEvent event) { + wrapper.setWidth("400px"); + } + }); + + addComponent(addButton); + addComponent(removeButton); + addComponent(shrinkWrapper); + addComponent(wrapper); + } + + private Table setupTable() { + IndexedContainer container = new IndexedContainer(); + + container + .addContainerProperty( + "fileName", + String.class, + "Long enough string to cause a scrollbar when the window is set to a dencently small size."); + container.addContainerProperty("size", Long.class, 23958l); + container.addItem(); + container.addItem(); + container.addItem(); + + Table table = new Table(); + table.setContainerDataSource(container); + table.setWidth("100%"); + table.setColumnCollapsingAllowed(true); + table.setColumnExpandRatio("size", 1); + return table; + } + + @Override + protected String getDescription() { + + return "Table rendering should not fail when view becomes smaller than the table width."; + } + + @Override + protected Integer getTicketNumber() { + + return 8411; + } +}
\ No newline at end of file |