From: Matti Tahvonen Date: Thu, 3 Sep 2009 11:36:57 +0000 (+0000) Subject: fixes #3266, spacer td can now be a bit themed in TabSheet (this is done in reindeer... X-Git-Tag: 6.7.0.beta1~2531 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7b4ee8d70ef4742002dc1b605bf470e01b218b5a;p=vaadin-framework.git fixes #3266, spacer td can now be a bit themed in TabSheet (this is done in reindeer theme) svn changeset:8651/svn branch:6.1 --- diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java b/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java index 3949b0d32e..9d3a16ebfa 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java @@ -8,7 +8,10 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Set; +import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.Style; +import com.google.gwt.dom.client.TableCellElement; +import com.google.gwt.dom.client.TableElement; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Command; @@ -457,14 +460,16 @@ public class VTabsheet extends VTabsheetBase { } private void updateDynamicWidth() { - // Find tab width - int tabsWidth = 0; + // Find width consumed by tabs + TableCellElement spacerCell = ((TableElement) tb.getElement().cast()) + .getRows().getItem(0).getCells().getItem(tb.getTabCount()); - int count = tb.getTabCount(); - for (int i = 0; i < count; i++) { - Element tabTd = tb.getTab(i).getElement().getParentElement().cast(); - tabsWidth += tabTd.getOffsetWidth(); - } + int spacerWidth = spacerCell.getOffsetWidth(); + DivElement div = (DivElement) spacerCell.getFirstChildElement(); + + int spacerMinWidth = spacerCell.getOffsetWidth() - div.getOffsetWidth(); + + int tabsWidth = tb.getOffsetWidth() - spacerWidth + spacerMinWidth; // Find content width Style style = tp.getElement().getStyle();