GWT 2.7.0

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

    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.ComplexPanel
                      com.google.gwt.user.client.ui.StackPanel

All Implemented Interfaces:
  HasAttachHandlers, HasHandlers, EventListener, HasVisibility, HasWidgets, HasWidgets.ForIsWidget, IndexedPanel, IndexedPanel.ForIsWidget, InsertPanel, InsertPanel.ForIsWidget, IsWidget, java.lang.Iterable<Widget>

Direct Known Subclasses:
  DecoratedStackPanel

    public class StackPanel

extends ComplexPanel
implements InsertPanel.ForIsWidget

A panel that stacks its children vertically, displaying only one at a time, with a header for each child which the user can click to display.

This widget will only work in quirks mode. If your application is in Standards Mode, use `StackLayoutPanel` instead.

### CSS Style Rules

- .gwt-StackPanel { the panel itself }
- .gwt-StackPanel .gwt-StackPanelItem { unselected items }
- .gwt-StackPanel .gwt-StackPanelItem-selected { selected items }
- .gwt-StackPanel .gwt-StackPanelContent { the wrapper around the contents of the item }

### Example

>     public class StackPanelExample implements EntryPoint {

>       public void onModuleLoad() {
>         // Create a stack panel containing three labels.
>         StackPanel panel = new StackPanel();
>         panel.add(new Label("Foo"), "foo");
>         panel.add(new Label("Bar"), "bar");
>         panel.add(new Label("Baz"), "baz");

>         // Add it to the root panel.
>         RootPanel.get().add(panel);
>       }
>     }

See Also:
  `StackLayoutPanel`

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.InsertPanel
`InsertPanel.ForIsWidget`

Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets
`HasWidgets.ForIsWidget`

Field Summary

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
`StackPanel()` Creates an empty stack panel.

Method Summary
`void` | `add(Widget w)` Adds a child widget.
`void` | `add(Widget w, SafeHtml stackHtml)` Adds a new child with the given widget and header, optionally interpreting the header as HTML.
`void` | `add(Widget w, java.lang.String stackText)` Adds a new child with the given widget and header.
`void` | `add(Widget w, java.lang.String stackText, boolean asHTML)` Adds a new child with the given widget and header, optionally interpreting the header as HTML.
`void` | `addHeaderStyleName(int index, java.lang.String styleName)` Adds the `styleName` on the `<tr>` for the header specified by `index`.
`(package private) Element` | `createHeaderElem()` Returns a header element.
`(package private) Element` | `getHeaderTextElem(Element headerElem)` Get the element that holds the header text given the header element created by #createHeaderElement.
`int` | `getSelectedIndex()` Gets the currently selected child index.
`void` | `insert(IsWidget w, int beforeIndex)`
`void` | `insert(Widget w, int beforeIndex)` Inserts a child widget before the specified index.
`void` | `onBrowserEvent(Event event)` Fired whenever a browser event is received.
`protected void` | `onEnsureDebugId(java.lang.String baseID)` Affected Elements: -text# = The element around the header at the specified index. -text-wrapper# = The element around the header at the specified index. -content# = The element around the body at the specified index.
`boolean` | `remove(int index)` Removes the widget at the specified index.
`boolean` | `remove(Widget child)` Removes a child widget.
`void` | `removeHeaderStyleName(int index, java.lang.String styleName)` Removes the `styleName` off the `<tr>` for the header specified by `index`.
`void` | `setStackText(int index, SafeHtml html)` Sets the html associated with a child by its index.
`void` | `setStackText(int index, java.lang.String text)` Sets the text associated with a child by its index.
`void` | `setStackText(int index, java.lang.String text, boolean asHTML)` Sets the text associated with a child by its index.
`void` | `showStack(int index)` Shows the widget at the specified child index.

Methods inherited from class com.google.gwt.user.client.ui.ComplexPanel
`add, add, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, doLogicalClear, getChildren, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, insert, iterator`

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, 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, 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 com.google.gwt.user.client.ui.InsertPanel.ForIsWidget
`add`

Methods inherited from interface com.google.gwt.user.client.ui.IndexedPanel.ForIsWidget
`getWidgetIndex`

Methods inherited from interface com.google.gwt.user.client.ui.IndexedPanel
`getWidget, getWidgetCount, getWidgetIndex`

Constructor Detail

### StackPanel

    public StackPanel()

  Creates an empty stack panel.

Method Detail

### add

    public void add(Widget w)

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

  How to Override this Method

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

  1. Validate: Perform any sanity checks to ensure the Panel can accept a new Widget. Examples: checking for a valid index on insertion; checking that the Panel is not full if there is a max capacity.
  2. Adjust for Reinsertion: Some Panels need to handle the case where the Widget is already a child of this Panel. Example: when performing a reinsert, the index might need to be adjusted to account for the Widget's removal. See `ComplexPanel.adjustIndex(Widget, int)`.
  3. Detach Child: Remove the Widget from its existing parent, if any. Most Panels will simply call `Widget.removeFromParent()` on the Widget.
  4. Logical Attach: Any state variables of the Panel should be updated to reflect the addition of the new Widget. Example: the Widget is added to the Panel's `WidgetCollection` at the appropriate index.
  5. Physical Attach: The Widget's Element must be physically attached to the Panel's Element, either directly or indirectly.
  6. Adopt: Call `Panel.adopt(Widget)` to finalize the add as the very last step.

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

### add

    public void add(Widget w,
                    java.lang.String stackText)

  Adds a new child with the given widget and header.

  Parameters:
    `w` - the widget to be added
    `stackText` - the header text associated with this widget

### add

    public void add(Widget w,
                    SafeHtml stackHtml)

  Adds a new child with the given widget and header, optionally interpreting the header as HTML.

  Parameters:
    `w` - the widget to be added
    `stackHtml` - the header html associated with this widget

### add

    public void add(Widget w,
                    java.lang.String stackText,
                    boolean asHTML)

  Adds a new child with the given widget and header, optionally interpreting the header as HTML.

  Parameters:
    `w` - the widget to be added
    `stackText` - the header text associated with this widget
    `asHTML` - `true` to treat the specified text as HTML

### getSelectedIndex

    public int getSelectedIndex()

  Gets the currently selected child index.

  Returns:
    selected child

### insert

    public void insert(IsWidget w,
                       int beforeIndex)

  Specified by:
    `insert` in interface `InsertPanel.ForIsWidget`

### insert

    public void insert(Widget w,
                       int beforeIndex)

  Description copied from interface: `InsertPanel`
  Inserts a child widget before the specified index. If the widget is already a child of this panel, it will be moved to the specified index.

  Specified by:
    `insert` in interface `InsertPanel`
  Parameters:
    `w` - the child widget to be inserted
    `beforeIndex` - the index before which it will be inserted

### onBrowserEvent

    public void onBrowserEvent(Event event)

  Description copied from interface: `EventListener`
  Fired whenever a browser event is received.

  Specified by:
    `onBrowserEvent` in interface `EventListener`
  Overrides:
    `onBrowserEvent` in class `Widget`
  Parameters:
    `event` - the event received

### remove

    public boolean remove(int index)

  Description copied from interface: `IndexedPanel`
  Removes the widget at the specified index.

  Specified by:
    `remove` in interface `IndexedPanel`
  Overrides:
    `remove` in class `ComplexPanel`
  Parameters:
    `index` - the index of the widget to be removed
  Returns:
    `false` if the widget is not present

### remove

    public boolean remove(Widget child)

  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`
  Overrides:
    `remove` in class `ComplexPanel`
  Parameters:
    `child` - the widget to be removed
  Returns:
    `true` if the child was present

### setStackText

    public void setStackText(int index,
                             java.lang.String text)

  Sets the text associated with a child by its index.

  Parameters:
    `index` - the index of the child whose text is to be set
    `text` - the text to be associated with it

### setStackText

    public void setStackText(int index,
                             SafeHtml html)

  Sets the html associated with a child by its index.

  Parameters:
    `index` - the index of the child whose text is to be set
    `html` - the html to be associated with it

### setStackText

    public void setStackText(int index,
                             java.lang.String text,
                             boolean asHTML)

  Sets the text associated with a child by its index.

  Parameters:
    `index` - the index of the child whose text is to be set
    `text` - the text to be associated with it
    `asHTML` - `true` to treat the specified text as HTML

### showStack

    public void showStack(int index)

  Shows the widget at the specified child index.

  Parameters:
    `index` - the index of the child to be shown

### onEnsureDebugId

    protected void onEnsureDebugId(java.lang.String baseID)

  Affected Elements:
  - -text# = The element around the header at the specified index.
  - -text-wrapper# = The element around the header at the specified index.
  - -content# = The element around the body at the specified index.

  Overrides:
    `onEnsureDebugId` in class `UIObject`
  Parameters:
    `baseID` - the base ID used by the main element
  See Also:
    `UIObject.onEnsureDebugId(String)`

### createHeaderElem

    Element createHeaderElem()

  Returns a header element.

### getHeaderTextElem

    Element getHeaderTextElem(Element headerElem)

  Get the element that holds the header text given the header element created by #createHeaderElement.

  Parameters:
    `headerElem` - the header element
  Returns:
    the element around the header text

### addHeaderStyleName

    public void addHeaderStyleName(int index,
                                   java.lang.String styleName)

  Adds the `styleName` on the `<tr>` for the header specified by `index`.

  Parameters:
    `index` - the index of the header row to apply to the style to
    `styleName` - the name of the class to add

### removeHeaderStyleName

    public void removeHeaderStyleName(int index,
                                      java.lang.String styleName)

  Removes the `styleName` off the `<tr>` for the header specified by `index`.

  Parameters:
    `index` - the index of the header row to remove the style from
    `styleName` - the name of the class to remove

GWT 2.7.0