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

Constructors
Constructor and Description
`WidgetCollection(HasWidgets parent)` Constructs a new widget collection.

### Method Summary

All Methods Instance Methods Concrete Methods
`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`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### 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