com.google.gwt.user.client.ui

## Class SimplePanel

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.Panel
      - - com.google.gwt.user.client.ui.SimplePanel

- All Implemented Interfaces:
    HasAttachHandlers, HasHandlers, EventListener, AcceptsOneWidget, HasOneWidget, HasVisibility, HasWidgets, HasWidgets.ForIsWidget, IsWidget, java.lang.Iterable<Widget>
  Direct Known Subclasses:
    DecoratorPanel, FocusPanel, FormPanel, LazyPanel, PopupPanel, ResizeLayoutPanel, ScrollPanel, SimpleLayoutPanel

      public class SimplePanel
      extends Panel
      implements HasOneWidget

  Base class for panels that contain only one widget.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

    - ### Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets

      `HasWidgets.ForIsWidget`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) Widget` | `widget`

    - ### Fields inherited from class com.google.gwt.user.client.ui.Widget

      `eventsToSink`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX, MISSING_ELEMENT_ERROR, SETELEMENT_TWICE_ERROR`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `SimplePanel()` Creates an empty panel that uses a DIV for its contents.
    `protected` | `SimplePanel(Element elem)` Creates an empty panel that uses the specified browser element for its contents.
    `` | `SimplePanel(Widget child)` Create a panel with the specified child widget.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Widget w)` Adds a widget to this panel.
    `protected Element` | `getContainerElement()` Override this method to specify that an element other than the root element be the container for the panel's child widget.
    `Widget` | `getWidget()` Gets the panel's child widget.
    `java.util.Iterator<Widget>` | `iterator()` Gets an iterator for the contained widgets.
    `boolean` | `remove(Widget w)` Removes a child widget.
    `void` | `setWidget(IsWidget w)` Set the only widget of the receiver, replacing the previous widget if there was one.
    `void` | `setWidget(Widget w)` Sets this panel's widget.

    - ### Methods inherited from class com.google.gwt.user.client.ui.Panel

      `add, adopt, clear, doAttachChildren, doDetachChildren, orphan, remove`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, ensureHandlers, fireEvent, getHandlerCount, getHandlerManager, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, onLoad, onUnload, removeFromParent, replaceElement, setLayoutData, setParent, sinkEvents, unsinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

      `forEach, spliterator`

- - ### Field Detail

    - #### widget

          Widget widget

  - ### Constructor Detail

    - #### SimplePanel

          public SimplePanel()

      Creates an empty panel that uses a DIV for its contents.

    - #### SimplePanel

          public SimplePanel(Widget child)

      Create a panel with the specified child widget.
      Parameters:
        `child` - the child to add to the panel

    - #### SimplePanel

          protected SimplePanel(Element elem)

      Creates an empty panel that uses the specified browser element for its contents.
      Parameters:
        `elem` - the browser element to use

  - ### Method Detail

    - #### add

          public void add(Widget w)

      Adds a widget to this panel.
      Specified by:
        `add` in interface `HasWidgets`
      Overrides:
        `add` in class `Panel`
      Parameters:
        `w` - the child widget to be added
      See Also:
        `HasWidgets.add(Widget)`

    - #### getWidget

          public Widget getWidget()

      Gets the panel's child widget.
      Specified by:
        `getWidget` in interface `HasOneWidget`
      Returns:
        the child widget, or `null` if none is present

    - #### iterator

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

      Description copied from interface: `HasWidgets`
      Gets an iterator for the contained widgets. This iterator is required to implement `Iterator.remove()`.
      Specified by:
        `iterator` in interface `HasWidgets`
      Specified by:
        `iterator` in interface `java.lang.Iterable<Widget>`

    - #### remove

          public boolean remove(Widget w)

      Description copied from class: `Panel`
      Removes a child widget.

      How to Override this Method

      There are several important things that must take place in the correct order to properly remove a Widget from a Panel. Not all of these steps will be relevant to every Panel, but all of the steps must be considered.

      1. Validate: Make sure this Panel is actually the parent of the child Widget; return `false` if it is not.
      2. Orphan: Call `Panel.orphan(Widget)` first while the child Widget is still attached.
      3. Physical Detach: Adjust the DOM to account for the removal of the child Widget. The Widget's Element must be physically removed from the DOM.
      4. Logical Detach: Update the Panel's state variables to reflect the removal of the child Widget. Example: the Widget is removed from the Panel's `WidgetCollection`.
      Specified by:
        `remove` in interface `HasWidgets`
      Specified by:
        `remove` in class `Panel`
      Parameters:
        `w` - the widget to be removed
      Returns:
        `true` if the child was present

    - #### setWidget

          public void setWidget(IsWidget w)

      Description copied from interface: `AcceptsOneWidget`
      Set the only widget of the receiver, replacing the previous widget if there was one.
      Specified by:
        `setWidget` in interface `AcceptsOneWidget`
      Parameters:
        `w` - the widget, or `null` to remove the widget
      See Also:
        `SimplePanel`

    - #### setWidget

          public void setWidget(Widget w)

      Sets this panel's widget. Any existing child widget will be removed.
      Specified by:
        `setWidget` in interface `HasOneWidget`
      Parameters:
        `w` - the panel's new widget, or `null` to clear the panel

    - #### getContainerElement

          protected Element getContainerElement()

      Override this method to specify that an element other than the root element be the container for the panel's child widget. This can be useful when you want to create a simple panel that decorates its contents. Note that this method continues to return the `Element` class defined in the `User` module to maintain backwards compatibility.
      Returns:
        the element to be used as the panel's container