public class

DeckPanel

extends ComplexPanel
implements HasAnimation InsertPanel.ForIsWidget
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.DeckPanel

Class Overview

A panel that displays all of its child widgets in a 'deck', where only one can be visible at a time. It is used by TabPanel.

Once a widget has been added to a DeckPanel, its visibility, width, and height attributes will be manipulated. When the widget is removed from the DeckPanel, it will be visible, and its width and height attributes will be cleared.

Summary

[Expand]
Inherited Constants
From class com.google.gwt.user.client.ui.UIObject
Public Constructors
DeckPanel()
Creates an empty deck panel.
Public Methods
void add(Widget w)
Adds a child widget.
int getVisibleWidget()
Gets the index of the currently-visible widget.
void insert(IsWidget w, int beforeIndex)
void insert(Widget w, int beforeIndex)
Inserts a child widget before the specified index.
boolean isAnimationEnabled()
Returns true if animations are enabled, false if not.
boolean remove(Widget w)
Removes a child widget.
void setAnimationEnabled(boolean enable)
Enable or disable animations.
void showWidget(int index)
Shows the widget at the specified index.
[Expand]
Inherited Methods
From class com.google.gwt.user.client.ui.ComplexPanel
From class com.google.gwt.user.client.ui.Panel
From class com.google.gwt.user.client.ui.Widget
From class com.google.gwt.user.client.ui.UIObject
From class java.lang.Object
From interface com.google.gwt.event.logical.shared.HasAttachHandlers
From interface com.google.gwt.event.shared.HasHandlers
From interface com.google.gwt.user.client.EventListener
From interface com.google.gwt.user.client.ui.HasAnimation
From interface com.google.gwt.user.client.ui.HasWidgets
From interface com.google.gwt.user.client.ui.HasWidgets.ForIsWidget
From interface com.google.gwt.user.client.ui.IndexedPanel
From interface com.google.gwt.user.client.ui.IndexedPanel.ForIsWidget
From interface com.google.gwt.user.client.ui.InsertPanel
From interface com.google.gwt.user.client.ui.InsertPanel.ForIsWidget
From interface com.google.gwt.user.client.ui.IsWidget
From interface java.lang.Iterable

Public Constructors

public DeckPanel ()

Creates an empty deck panel.

Public Methods

public void add (Widget w)

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 adjustIndex(Widget, int).
  3. Detach Child: Remove the Widget from its existing parent, if any. Most Panels will simply call 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 adopt(Widget) to finalize the add as the very last step.

Parameters
w the widget to be added

public int getVisibleWidget ()

Gets the index of the currently-visible widget.

Returns
  • the visible widget's index

public void insert (IsWidget w, int beforeIndex)

public void insert (Widget w, int beforeIndex)

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.

Parameters
w the child widget to be inserted
beforeIndex the index before which it will be inserted

public boolean isAnimationEnabled ()

Returns true if animations are enabled, false if not.

public boolean remove (Widget w)

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

Parameters
w the widget to be removed
Returns
  • true if the child was present

public void setAnimationEnabled (boolean enable)

Enable or disable animations.

Parameters
enable true to enable, false to disable

public void showWidget (int index)

Shows the widget at the specified index. This causes the currently- visible widget to be hidden.

Parameters
index the index of the widget to be shown