## com.google.gwt.user.client.ui
Class WidgetCollection

    java.lang.Object
      com.google.gwt.user.client.ui.WidgetCollection

All Implemented Interfaces:
  java.lang.Iterable<Widget>

    public class WidgetCollection

extends java.lang.Object
implements java.lang.Iterable<Widget>

A simple collection of widgets to be used by `panels` and `composites`.

The main purpose of this specialized collection is to implement `Iterator.remove()` in a way that delegates removal to its panel. This makes it much easier for the panel to implement an `iterator` that supports removal of widgets.

Constructor Summary
`WidgetCollection(HasWidgets parent)` Constructs a new widget collection.

Method Summary
`void` | `add(Widget w)` Adds a widget to the end of this collection.
`boolean` | `contains(Widget w)` Determines whether a given widget is contained in this collection.
`Widget` | `get(int index)` Gets the widget at the given index.
`int` | `indexOf(Widget w)` Gets the index of the specified index.
`void` | `insert(Widget w, int beforeIndex)` Inserts a widget before the specified index.
`java.util.Iterator<Widget>` | `iterator()` Gets an iterator on this widget collection.
`void` | `remove(int index)` Removes the widget at the specified index.
`void` | `remove(Widget w)` Removes the specified widget.
`int` | `size()` Gets the number of widgets in this collection.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### WidgetCollection

    public WidgetCollection(HasWidgets parent)

  Constructs a new widget collection.

  Parameters:
    `parent` - the container whose `HasWidgets.remove(Widget)` will be delegated to by the iterator's `Iterator.remove()` method.

Method Detail

### add

    public void add(Widget w)

  Adds a widget to the end of this collection.

  Parameters:
    `w` - the widget to be added

### contains

    public boolean contains(Widget w)

  Determines whether a given widget is contained in this collection.

  Parameters:
    `w` - the widget to be searched for
  Returns:
    `true` if the widget is present

### get

    public Widget get(int index)

  Gets the widget at the given index.

  Parameters:
    `index` - the index to be retrieved
  Returns:
    the widget at the specified index
  Throws:
    `java.lang.IndexOutOfBoundsException` - if the index is out of range

### indexOf

    public int indexOf(Widget w)

  Gets the index of the specified index.

  Parameters:
    `w` - the widget to be found
  Returns:
    the index of the specified widget, or `-1` if it is not found

### insert

    public void insert(Widget w,
                       int beforeIndex)

  Inserts a widget before the specified index.

  Parameters:
    `w` - the widget to be inserted
    `beforeIndex` - the index before which the widget will be inserted
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `beforeIndex` is out of range

### iterator

    public java.util.Iterator<Widget> iterator()

  Gets an iterator on this widget collection. This iterator is guaranteed to implement remove() in terms of its containing `HasWidgets`.

  Specified by:
    `iterator` in interface `java.lang.Iterable<Widget>`
  Returns:
    an iterator

### remove

    public void remove(int index)

  Removes the widget at the specified index.

  Parameters:
    `index` - the index of the widget to be removed
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `index` is out of range

### remove

    public void remove(Widget w)

  Removes the specified widget.

  Parameters:
    `w` - the widget to be removed
  Throws:
    `java.util.NoSuchElementException` - if the widget is not present

### size

    public int size()

  Gets the number of widgets in this collection.

  Returns:
    the number of widgets