I want to remark something but mine is more a question than a suggestion:

I assume OnResize would have to be quite performant. How expensive is the
operator instanceof? Is it worth keeping an instance boolean when the child
is initialized and check against it later? Or would that be seen more like
'code noise'.

Thanks,

Andi Mullaraj



On Thu, Oct 21, 2010 at 11:46 AM, <[email protected]> wrote:

> Reviewers: sbrubaker,
>
> Description:
> Making Composite implement RequiresResize and ProvidesResize so that it
> can pass resize information to its child widget. This is useful when
> creating a Composite of a LayoutPanel.  In general, a widget should only
> ProvideResize if its child widget cannot affect the dimensions of the
> parent (ex. the parent is a a scrollable div or a div with a fixed
> height and width). Since Composite does not add any elements to the DOM
> hierarchy and Composite#onResize() is only called if the parent widget
> implements ProvidesResize, it is safe to pass through the resize. That
> is, we can implement RequiresResize because it is a no-op unless the
> Composite's child implements RequiresResize. We can implement
> ProvidesResize because it is a no-op unless the Composite's parent
> implements ProvidesResize, which means it is safe to resize the
> Composite's child.
>
>
> Please review this at http://gwt-code-reviews.appspot.com/1041801/show
>
> Affected files:
>  M user/src/com/google/gwt/user/client/ui/Composite.java
>
>
> Index: user/src/com/google/gwt/user/client/ui/Composite.java
> ===================================================================
> --- user/src/com/google/gwt/user/client/ui/Composite.java       (revision
> 9129)
> +++ user/src/com/google/gwt/user/client/ui/Composite.java       (working
> copy)
> @@ -34,7 +34,8 @@
>  * {...@example com.google.gwt.examples.CompositeExample}
>  * </p>
>  */
> -public abstract class Composite extends Widget {
> +public abstract class Composite extends Widget implements RequiresResize,
> +    ProvidesResize {
>
>   private Widget widget;
>
> @@ -53,6 +54,12 @@
>
>     // Delegate events to the widget.
>     widget.onBrowserEvent(event);
> +  }
> +
> +  public void onResize() {
> +    if (widget instanceof RequiresResize) {
> +      ((RequiresResize) widget).onResize();
> +    }
>   }
>
>   /**
>
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to