com.google.gwt.user.client.ui

## Class HorizontalPanel

- 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.CellPanel
          - - com.google.gwt.user.client.ui.HorizontalPanel

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

    public class HorizontalPanel
    extends CellPanel
    implements HasAlignment, InsertPanel.ForIsWidget

A panel that lays all of its widgets out in a single horizontal column.

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

`HasHorizontalAlignment.AutoHorizontalAlignmentConstant, HasHorizontalAlignment.HorizontalAlignmentConstant`

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

`HasVerticalAlignment.VerticalAlignmentConstant`

### 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`

### Fields inherited from interface com.google.gwt.user.client.ui.HasHorizontalAlignment

`ALIGN_CENTER, ALIGN_DEFAULT, ALIGN_JUSTIFY, ALIGN_LEFT, ALIGN_LOCALE_END, ALIGN_LOCALE_START, ALIGN_RIGHT`

### Fields inherited from interface com.google.gwt.user.client.ui.HasVerticalAlignment

`ALIGN_BOTTOM, ALIGN_MIDDLE, ALIGN_TOP`

### Constructor Summary

Constructors
Constructor and Description
`HorizontalPanel()` Creates an empty horizontal panel.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add(Widget w)` Adds a child widget.
`HasHorizontalAlignment.HorizontalAlignmentConstant` `getHorizontalAlignment()` Gets the horizontal alignment.
`HasVerticalAlignment.VerticalAlignmentConstant` `getVerticalAlignment()` Gets the vertical alignment.
`void` `insert(IsWidget w, int beforeIndex)`
`void` `insert(Widget w, int beforeIndex)` Inserts a child widget before the specified index.
`protected void` `onEnsureDebugId(java.lang.String baseID)` Affected Elements: -# = the cell at the given index.
`boolean` `remove(Widget w)` Removes a child widget.
`void` `setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant align)` Sets the default horizontal alignment to be used for widgets added to this panel.
`void` `setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant align)` Sets the default vertical alignment to be used for widgets added to this panel.

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

`getBody, getSpacing, getTable, getWidgetTd, setBorderWidth, setCellHeight, setCellHeight, setCellHorizontalAlignment, setCellHorizontalAlignment, setCellHorizontalAlignment, setCellHorizontalAlignment, setCellVerticalAlignment, setCellVerticalAlignment, setCellVerticalAlignment, setCellVerticalAlignment, setCellWidth, setCellWidth, setSpacing`

### 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, remove`

### 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, 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, remove`

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

`forEach, spliterator`

### Constructor Detail

#### HorizontalPanel

    public HorizontalPanel()

Creates an empty horizontal 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)`

#### getHorizontalAlignment

    public HasHorizontalAlignment.HorizontalAlignmentConstant getHorizontalAlignment()

Description copied from interface: `HasHorizontalAlignment`
Gets the horizontal alignment.

Specified by:
  `getHorizontalAlignment` in interface `HasHorizontalAlignment`
Returns:
  the current horizontal alignment ( `HasHorizontalAlignment.ALIGN_LEFT`, `HasHorizontalAlignment.ALIGN_CENTER`, `HasHorizontalAlignment.ALIGN_RIGHT`, `HasHorizontalAlignment.ALIGN_JUSTIFY`, or null).

#### getVerticalAlignment

    public HasVerticalAlignment.VerticalAlignmentConstant getVerticalAlignment()

Description copied from interface: `HasVerticalAlignment`
Gets the vertical alignment.

Specified by:
  `getVerticalAlignment` in interface `HasVerticalAlignment`
Returns:
  the current vertical alignment.

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

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

#### setHorizontalAlignment

    public void setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant align)

Sets the default horizontal alignment to be used for widgets added to this panel. It only applies to widgets added after this property is set.

Specified by:
  `setHorizontalAlignment` in interface `HasHorizontalAlignment`
Parameters:
  `align` - the horizontal alignment ( `HasHorizontalAlignment.ALIGN_LEFT`, `HasHorizontalAlignment.ALIGN_CENTER`, `HasHorizontalAlignment.ALIGN_RIGHT`, `HasHorizontalAlignment.ALIGN_JUSTIFY`, `HasHorizontalAlignment.ALIGN_LOCALE_START`, or `HasHorizontalAlignment.ALIGN_LOCALE_END`).
See Also:
  `HasHorizontalAlignment.setHorizontalAlignment(HasHorizontalAlignment.HorizontalAlignmentConstant)`

#### setVerticalAlignment

    public void setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant align)

Sets the default vertical alignment to be used for widgets added to this panel. It only applies to widgets added after this property is set.

Specified by:
  `setVerticalAlignment` in interface `HasVerticalAlignment`
Parameters:
  `align` - the vertical alignment ( `HasVerticalAlignment.ALIGN_TOP`, `HasVerticalAlignment.ALIGN_MIDDLE`, or `HasVerticalAlignment.ALIGN_BOTTOM`).
See Also:
  `HasVerticalAlignment.setVerticalAlignment(HasVerticalAlignment.VerticalAlignmentConstant)`

#### onEnsureDebugId

    protected void onEnsureDebugId(java.lang.String baseID)

Affected Elements:

- -# = the cell at the given index.

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