]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #3266, spacer td can now be a bit themed in TabSheet (this is done in reindeer...
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 3 Sep 2009 11:36:57 +0000 (11:36 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Thu, 3 Sep 2009 11:36:57 +0000 (11:36 +0000)
svn changeset:8651/svn branch:6.1

src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java

index 3949b0d32eec7eebee8f900b57a7571737b3cdba..9d3a16ebfa90c41ef972afee591b3968929daa0f 100644 (file)
@@ -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();