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
    Modifier and Type | Method and Description
    --- | ---
    `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