From 59826767eb12add61e1c976be1c80fd5bff26baf Mon Sep 17 00:00:00 2001 From: Johannes Dahlström Date: Tue, 13 Mar 2012 09:18:53 +0000 Subject: [merge from 6.7] fixes #8505 svn changeset:23227/svn branch:6.8 --- build/build.xml | 2 +- scripts/merge.sh | 4 +- .../terminal/gwt/client/ApplicationConnection.java | 20 +++--- .../terminal/gwt/client/ui/VScrollTable.java | 6 ++ .../tests/components/table/LastColumnNegative.html | 47 +++++++++++++ .../tests/components/table/LastColumnNegative.java | 77 ++++++++++++++++++++++ 6 files changed, 142 insertions(+), 14 deletions(-) create mode 100644 tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.html create mode 100644 tests/testbench/com/vaadin/tests/components/table/LastColumnNegative.java 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 @@ - + Compiling widgetset ${widgetset}. Output directory: ${widgetsets-output-dir} 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. *

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 @@ + + + + + + +New Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
New Test
open/run/com.vaadin.tests.components.table.LastColumnNegative?restartApplication
clickvaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]
clickvaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]
clickvaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]
clickvaadin=runcomvaadintestscomponentstableLastColumnNegative::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VButton[0]/domChild[0]/domChild[0]
screenCapture
+ + 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 -- cgit v1.2.3