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

    java.lang.Object
      com.google.gwt.user.client.ui.UIObject
          com.google.gwt.user.client.ui.Widget
              com.google.gwt.user.client.ui.Composite
                  com.google.gwt.user.client.ui.DisclosurePanel

All Implemented Interfaces:
  EventListener, FiresDisclosureEvents, HasWidgets

public final class DisclosurePanel
extends Composite
implements FiresDisclosureEvents, HasWidgets

A widget that consists of a header and a content panel that discloses the content when a user clicks on the header.

### CSS Style Rules

- .gwt-DisclosurePanel { the panel's primary style }
- .gwt-DisclosurePanel-open { dependent style set when panel is open }
- .gwt-DisclosurePanel-closed { dependent style set when panel is closed }
- .header { the header section }
- .content { the content section }

The header and content sections can be easily selected using css with a child selector:
.gwt-DisclosurePanel-open .header { ... }

Constructor Summary
`DisclosurePanel()` Creates an empty DisclosurePanel that is initially closed.
`DisclosurePanel(DisclosurePanelImages images, java.lang.String headerText, boolean isOpen)` Creates a DisclosurePanel with the specified header text, an initial open/close state and a bundle of images to be used in the default header widget.
`DisclosurePanel(java.lang.String headerText)` Creates a DisclosurePanel that will be initially closed using the specified text in the header.
`DisclosurePanel(java.lang.String headerText, boolean isOpen)` Creates a DisclosurePanel with the specified header text and an initial open/close state.
`DisclosurePanel(Widget header)` Creates a DisclosurePanel that will be initially closed using a widget as the header.
`DisclosurePanel(Widget header, boolean isOpen)` Creates a DisclosurePanel using a widget as the header and an initial open/close state.

Method Summary
`void` `add(Widget w)` Adds a child widget.
`void` `addEventHandler(DisclosureHandler handler)` Attaches an event handler to the panel to receive `DisclosureEvent` notification.
`void` `clear()` Removes all child widgets.
`Widget` `getContent()` Gets the widget that was previously set in `setContent(Widget)`.
`Widget` `getHeader()` Gets the widget that is currently being used as a header.
`HasText` `getHeaderTextAccessor()` Gets a `HasText` instance to provide access to the headers's text, if the header widget does provide such access.
`boolean` `isOpen()` Determines whether the panel is open.
`java.util.Iterator` `iterator()` Gets an iterator for the contained widgets.
`boolean` `remove(Widget w)` Removes a child widget.
`void` `removeEventHandler(DisclosureHandler handler)` Removes an event handler from the panel.
`void` `setContent(Widget content)` Sets the content widget which can be opened and closed by this panel.
`void` `setHeader(Widget headerWidget)` Sets the widget used as the header for the panel.
`void` `setOpen(boolean isOpen)` Changes the visible state of this `DisclosurePanel`.

Methods inherited from class com.google.gwt.user.client.ui.Composite
`getElement, getWidget, initWidget, onAttach, onDetach, setWidget`

Methods inherited from class com.google.gwt.user.client.ui.Widget
`getParent, isAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, setElement`

Methods inherited from class com.google.gwt.user.client.ui.UIObject
`addStyleName, getAbsoluteLeft, getAbsoluteTop, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getTitle, isVisible, isVisible, removeStyleName, resetStyleName, setHeight, setPixelSize, setSize, setStyleName, setStyleName, setTitle, setVisible, setVisible, setWidth, sinkEvents, toString, unsinkEvents`

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

Constructor Detail

### DisclosurePanel

    public DisclosurePanel()

  Creates an empty DisclosurePanel that is initially closed.

### DisclosurePanel

    public DisclosurePanel(DisclosurePanelImages images,
                           java.lang.String headerText,
                           boolean isOpen)

  Creates a DisclosurePanel with the specified header text, an initial open/close state and a bundle of images to be used in the default header widget.

Parameters:
  `images` - a bundle that provides disclosure panel specific images
  `headerText` - the text to be displayed in the header
  `isOpen` - the initial open/close state of the content panel

### DisclosurePanel

    public DisclosurePanel(java.lang.String headerText)

  Creates a DisclosurePanel that will be initially closed using the specified text in the header.

Parameters:
  `headerText` - the text to be displayed in the header.

### DisclosurePanel

    public DisclosurePanel(java.lang.String headerText,
                           boolean isOpen)

  Creates a DisclosurePanel with the specified header text and an initial open/close state.

Parameters:
  `headerText` - the text to be displayed in the header
  `isOpen` - the initial open/close state of the content panel

### DisclosurePanel

    public DisclosurePanel(Widget header)

  Creates a DisclosurePanel that will be initially closed using a widget as the header.

Parameters:
  `header` - the widget to be used as a header

### DisclosurePanel

    public DisclosurePanel(Widget header,
                           boolean isOpen)

  Creates a DisclosurePanel using a widget as the header and an initial open/close state.

Parameters:
  `header` - the widget to be used as a header
  `isOpen` - the initial open/close state of the content panel

Method Detail

### add

    public void add(Widget w)

  Description copied from interface: `HasWidgets`
  Adds a child widget.

  Specified by:
    `add` in interface `HasWidgets`
  Parameters:
    `w` - the widget to be added

### addEventHandler

    public final void addEventHandler(DisclosureHandler handler)

  Attaches an event handler to the panel to receive `DisclosureEvent` notification.

  Specified by:
    `addEventHandler` in interface `FiresDisclosureEvents`
  Parameters:
    `handler` - the handler to be added (should not be null)

### clear

    public void clear()

  Description copied from interface: `HasWidgets`
  Removes all child widgets.

  Specified by:
    `clear` in interface `HasWidgets`

### getContent

    public final Widget getContent()

  Gets the widget that was previously set in `setContent(Widget)`.

  Returns:
    the panel's current content widget

### getHeader

    public final Widget getHeader()

  Gets the widget that is currently being used as a header.

  Returns:
    the widget currently being used as a header

### getHeaderTextAccessor

    public final HasText getHeaderTextAccessor()

  Gets a `HasText` instance to provide access to the headers's text, if the header widget does provide such access.

  Returns:
    a reference to the header widget if it implements `HasText`, `null` otherwise

### isOpen

    public final boolean isOpen()

  Determines whether the panel is open.

  Returns:
    `true` if panel is in open state

### iterator

    public java.util.Iterator 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`

### remove

    public boolean remove(Widget w)

  Description copied from interface: `HasWidgets`
  Removes a child widget.

  Specified by:
    `remove` in interface `HasWidgets`
  Parameters:
    `w` - the widget to be removed
  Returns:
    `true` if the widget was present

### removeEventHandler

    public final void removeEventHandler(DisclosureHandler handler)

  Removes an event handler from the panel.

  Specified by:
    `removeEventHandler` in interface `FiresDisclosureEvents`
  Parameters:
    `handler` - the handler to be removed

### setContent

    public final void setContent(Widget content)

  Sets the content widget which can be opened and closed by this panel. If there is a preexisting content widget, it will be detached.

  Parameters:
    `content` - the widget to be used as the content panel

### setHeader

    public final void setHeader(Widget headerWidget)

  Sets the widget used as the header for the panel.

  Parameters:
    `headerWidget` - the widget to be used as the header

### setOpen

    public final void setOpen(boolean isOpen)

  Changes the visible state of this `DisclosurePanel`.

  Parameters:
    `isOpen` - `true` to open the panel, `false` to close