]> source.dussan.org Git - vaadin-framework.git/commitdiff
Better replaceComponent for TabSheet (#2204)
authorArtur Signell <artur.signell@itmill.com>
Thu, 13 Nov 2008 14:13:51 +0000 (14:13 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 13 Nov 2008 14:13:51 +0000 (14:13 +0000)
svn changeset:5888/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java
src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java

index 197eddd05d414710bac7056e1302db277cff038e..31f8642a575b963a3ee26b8cd4eb64f6a541dc62 100644 (file)
@@ -558,9 +558,7 @@ public class ITabsheet extends ITabsheetBase implements
     }
 
     public void replaceChildComponent(Widget oldComponent, Widget newComponent) {
-        int widgetIndex = tp.getWidgetIndex(oldComponent);
-        tp.remove(oldComponent);
-        tp.insert(newComponent, widgetIndex);
+        tp.replaceComponent(oldComponent, newComponent);
     }
 
     public void updateCaption(Paintable component, UIDL uidl) {
@@ -570,6 +568,7 @@ public class ITabsheet extends ITabsheetBase implements
         c.updateCaption(uidl);
         if (c.isVisible() != visible) {
             tb.setVisible(i, c.isVisible());
+            c.setWidth(c.getRequiredWidth() + "px");
         }
     }
 
index e9e06587afd40cc7c4303f92c70fd37fff48397d..b430dc5a4ab9be8f2df85f880f8530005d232de4 100644 (file)
@@ -150,4 +150,14 @@ public class ITabsheetPanel extends ComplexPanel {
         }\r
 \r
     }\r
+\r
+    public void replaceComponent(Widget oldComponent, Widget newComponent) {\r
+        boolean isVisible = (visibleWidget == oldComponent);\r
+        int widgetIndex = getWidgetIndex(oldComponent);\r
+        remove(oldComponent);\r
+        insert(newComponent, widgetIndex);\r
+        if (isVisible) {\r
+            showWidget(widgetIndex);\r
+        }\r
+    }\r
 }\r