From e3bbbde453dcf87ac18d586f1b81ec9a6a67c15b Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Thu, 13 Nov 2008 14:13:51 +0000 Subject: [PATCH] Better replaceComponent for TabSheet (#2204) svn changeset:5888/svn branch:trunk --- .../toolkit/terminal/gwt/client/ui/ITabsheet.java | 5 ++--- .../toolkit/terminal/gwt/client/ui/ITabsheetPanel.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java index 197eddd05d..31f8642a57 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java @@ -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"); } } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java index e9e06587af..b430dc5a4a 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheetPanel.java @@ -150,4 +150,14 @@ public class ITabsheetPanel extends ComplexPanel { } } + + public void replaceComponent(Widget oldComponent, Widget newComponent) { + boolean isVisible = (visibleWidget == oldComponent); + int widgetIndex = getWidgetIndex(oldComponent); + remove(oldComponent); + insert(newComponent, widgetIndex); + if (isVisible) { + showWidget(widgetIndex); + } + } } -- 2.39.5