public abstract class

ComplexPanel

extends Panel
implements IndexedPanel.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
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract base class for panels that can contain multiple child widgets.

Summary

[Expand]
Inherited Constants
From class com.google.gwt.user.client.ui.UIObject
Public Constructors
ComplexPanel()
Public Methods
Widget getWidget(int index)
Gets the child widget at the specified index.
int getWidgetCount()
Gets the number of child widgets in this panel.
int getWidgetIndex(Widget child)
Gets the index of the specified child widget.
int getWidgetIndex(IsWidget child)
Iterator<Widget> iterator()
boolean remove(Widget w)
Removes a child widget.
boolean remove(int index)
Removes the widget at the specified index.
Protected Methods
void add(Widget child, Element container)
Adds a new child widget to the panel, attaching its Element to the specified container Element.
int adjustIndex(Widget child, int beforeIndex)
Adjusts beforeIndex to account for the possibility that the given widget is already a child of this panel.
void checkIndexBoundsForAccess(int index)
Checks that index is in the range [0, getWidgetCount()), which is the valid range on accessible indexes.
void checkIndexBoundsForInsertion(int index)
Checks that index is in the range [0, getWidgetCount()], which is the valid range for indexes on an insertion.
WidgetCollection getChildren()
Gets the list of children contained in this panel.
void insert(Widget child, Element container, int beforeIndex, boolean domInsert)
Insert a new child Widget into this Panel at a specified index, attaching its Element to the specified container Element.
void insert(Widget child, Element container, int beforeIndex)
This method is deprecated. Use insert(Widget, Element, int, boolean) instead
[Expand]
Inherited Methods
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.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.IsWidget
From interface java.lang.Iterable

Public Constructors

public ComplexPanel ()

Public Methods

public Widget getWidget (int index)

Gets the child widget at the specified index.

Parameters
index the child widget's index
Returns
  • the child widget

public int getWidgetCount ()

Gets the number of child widgets in this panel.

Returns
  • the number of children

public int getWidgetIndex (Widget child)

Gets the index of the specified child widget.

Parameters
child the widget to be found
Returns
  • the widget's index, or -1 if it is not a child of this panel

public int getWidgetIndex (IsWidget child)

public Iterator<Widget> iterator ()

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 boolean remove (int index)

Removes the widget at the specified index.

Parameters
index the index of the widget to be removed
Returns
  • false if the widget is not present

Protected Methods

protected void add (Widget child, Element container)

Adds a new child widget to the panel, attaching its Element to the specified container Element.

Parameters
child the child widget to be added
container the element within which the child will be contained

protected int adjustIndex (Widget child, int beforeIndex)

Adjusts beforeIndex to account for the possibility that the given widget is already a child of this panel.

Parameters
child the widget that might be an existing child
beforeIndex the index at which it will be added to this panel
Returns
  • the modified index

protected void checkIndexBoundsForAccess (int index)

Checks that index is in the range [0, getWidgetCount()), which is the valid range on accessible indexes.

Parameters
index the index being accessed

protected void checkIndexBoundsForInsertion (int index)

Checks that index is in the range [0, getWidgetCount()], which is the valid range for indexes on an insertion.

Parameters
index the index where insertion will occur

protected WidgetCollection getChildren ()

Gets the list of children contained in this panel.

Returns
  • a collection of child widgets

protected void insert (Widget child, Element container, int beforeIndex, boolean domInsert)

Insert a new child Widget into this Panel at a specified index, attaching its Element to the specified container Element. The child Element will either be attached to the container at the same index, or simply appended to the container, depending on the value of domInsert.

Parameters
child the child Widget to be added
container the Element within which child will be contained
beforeIndex the index before which child will be inserted
domInsert if true, insert child into container at beforeIndex; otherwise append child to the end of container.

protected void insert (Widget child, Element container, int beforeIndex)

This method is deprecated.
Use insert(Widget, Element, int, boolean) instead

This method was used by subclasses to insert a new child Widget. It is now deprecated because it was ambiguous whether the child should be appended to container element versus inserted into container at beforeIndex. Use insert(Widget, Element, int, boolean), which clarifies this ambiguity.