From ecd80181d160b58a281eb92fabaa2a10ea0adac2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Fri, 10 Feb 2012 14:14:22 +0200 Subject: [PATCH] Also find paintables inside HasOneWidget widgets (#8323) --- .../ui/VAbstractPaintableWidgetContainer.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidgetContainer.java b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidgetContainer.java index ebdb05a6c8..42addc66eb 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidgetContainer.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VAbstractPaintableWidgetContainer.java @@ -6,6 +6,7 @@ package com.vaadin.terminal.gwt.client.ui; import java.util.ArrayList; import java.util.Collection; +import com.google.gwt.user.client.ui.HasOneWidget; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.VPaintableMap; @@ -36,15 +37,23 @@ public abstract class VAbstractPaintableWidgetContainer extends if (widget instanceof HasWidgets) { for (Widget child : (HasWidgets) widget) { - VPaintableWidget paintable = paintableMap.getPaintable(child); - if (paintable != null) { - // If child is a paintable, add it to the collection - paintables.add(paintable); - } else { - // Else keep looking for paintables inside the child widget - addDescendantPaintables(child, paintables, paintableMap); - } + addIfPaintable(child, paintables, paintableMap); } + } else if (widget instanceof HasOneWidget) { + Widget child = ((HasOneWidget) widget).getWidget(); + addIfPaintable(child, paintables, paintableMap); + } + } + + private static void addIfPaintable(Widget widget, + Collection paintables, VPaintableMap paintableMap) { + VPaintableWidget paintable = paintableMap.getPaintable(widget); + if (paintable != null) { + // If widget is a paintable, add it to the collection + paintables.add(paintable); + } else { + // Else keep looking for paintables inside the widget + addDescendantPaintables(widget, paintables, paintableMap); } } -- 2.39.5