com.google.gwt.user.client.ui

## Class FlexTable

- 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.HTMLTable
        - - com.google.gwt.user.client.ui.FlexTable

All Implemented Interfaces:
  HasAllDragAndDropHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragEndHandlers, HasDragEnterHandlers, HasDragHandlers, HasDragLeaveHandlers, HasDragOverHandlers, HasDragStartHandlers, HasDropHandlers, HasAttachHandlers, HasHandlers, EventListener, HasVisibility, HasWidgets, HasWidgets.ForIsWidget, IsWidget, SourcesTableEvents, java.lang.Iterable<Widget>

    public class FlexTable
    extends HTMLTable

A flexible table that creates cells on demand. It can be jagged (that is, each row can contain a different number of cells) and individual cells can be set to span multiple rows or columns.

### Example

>     public class FlexTableExample implements EntryPoint {

>       public void onModuleLoad() {
>         // Tables have no explicit size -- they resize automatically on demand.
>         FlexTable t = new FlexTable();

>         // Put some text at the table's extremes.  This forces the table to be
>         // 3 by 3.
>         t.setText(0, 0, "upper-left corner");
>         t.setText(2, 2, "bottom-right corner");

>         // Let's put a button in the middle...
>         t.setWidget(1, 0, new Button("Wide Button"));

>         // ...and set it's column span so that it takes up the whole row.
>         t.getFlexCellFormatter().setColSpan(1, 0, 3);

>         RootPanel.get().add(t);
>       }
>     }

### Nested Class Summary

Nested Classes
`class` `FlexTable.FlexCellFormatter` FlexTable-specific implementation of `HTMLTable.CellFormatter`.

### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.HTMLTable

`HTMLTable.Cell, HTMLTable.CellFormatter, HTMLTable.ColumnFormatter, HTMLTable.RowFormatter`

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

Constructors
Constructor and Description
`FlexTable()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addCell(int row)` Appends a cell to the specified row.
`int` `getCellCount(int row)` Gets the number of cells on a given row.
`FlexTable.FlexCellFormatter` `getFlexCellFormatter()` Explicitly gets the `FlexTable.FlexCellFormatter`.
`int` `getRowCount()` Gets the number of rows.
`void` `insertCell(int beforeRow, int beforeColumn)` Inserts a cell into the FlexTable.
`int` `insertRow(int beforeRow)` Inserts a row into the FlexTable.
`protected void` `prepareCell(int row, int column)` Ensure that the cell exists.
`protected void` `prepareRow(int row)` Ensure that the row exists.
`void` `removeAllRows()` Remove all rows in this table.
`void` `removeCell(int row, int col)` Removes the specified cell from the table.
`void` `removeCells(int row, int column, int num)` Removes a number of cells from a row in the table.
`void` `removeRow(int row)` Removes the specified row from the table.

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

`addCells, addClickHandler, addDoubleClickHandler, addDragEndHandler, addDragEnterHandler, addDragHandler, addDragLeaveHandler, addDragOverHandler, addDragStartHandler, addDropHandler, addTableListener, checkCellBounds, checkRowBounds, clear, clear, clearCell, createCell, getBodyElement, getCellForEvent, getCellFormatter, getCellPadding, getCellSpacing, getColumnFormatter, getDOMCellCount, getDOMCellCount, getDOMCellCount, getDOMRowCount, getDOMRowCount, getDOMRowCount, getEventTargetCell, getHTML, getRowFormatter, getText, getWidget, insertCells, internalClearCell, internalClearCell, isCellPresent, iterator, onEnsureDebugId, prepareColumn, remove, removeTableListener, setBorderWidth, setCellFormatter, setCellPadding, setCellSpacing, setColumnFormatter, setHTML, setHTML, setRowFormatter, setText, setWidget, setWidget`

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

`add, add, adopt, 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.event.shared.HasHandlers

`fireEvent`

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

`forEach, spliterator`

### Constructor Detail

#### FlexTable

    public FlexTable()

### Method Detail

#### addCell

    public void addCell(int row)

Appends a cell to the specified row.

Parameters:
  `row` - the row to which the new cell will be added
Throws:
  `java.lang.IndexOutOfBoundsException`

#### getCellCount

    public int getCellCount(int row)

Gets the number of cells on a given row.

Specified by:
  `getCellCount` in class `HTMLTable`
Parameters:
  `row` - the row whose cells are to be counted
Returns:
  the number of cells present
Throws:
  `java.lang.IndexOutOfBoundsException`

#### getFlexCellFormatter

    public FlexTable.FlexCellFormatter getFlexCellFormatter()

Explicitly gets the `FlexTable.FlexCellFormatter`. The results of `HTMLTable.getCellFormatter()` may also be downcast to a `FlexTable.FlexCellFormatter`.

Returns:
  the FlexTable's cell formatter

#### getRowCount

    public int getRowCount()

Gets the number of rows.

Specified by:
  `getRowCount` in class `HTMLTable`
Returns:
  number of rows

#### insertCell

    public void insertCell(int beforeRow,
                           int beforeColumn)

Inserts a cell into the FlexTable.

Overrides:
  `insertCell` in class `HTMLTable`
Parameters:
  `beforeRow` - the cell's row
  `beforeColumn` - the cell's column

#### insertRow

    public int insertRow(int beforeRow)

Inserts a row into the FlexTable.

Overrides:
  `insertRow` in class `HTMLTable`
Parameters:
  `beforeRow` - the row to insert
Returns:
  the index of the newly-created row

#### removeAllRows

    public void removeAllRows()

Remove all rows in this table.

#### removeCell

    public void removeCell(int row,
                           int col)

Description copied from class: `HTMLTable`
Removes the specified cell from the table.

Overrides:
  `removeCell` in class `HTMLTable`
Parameters:
  `row` - the row of the cell to remove
  `col` - the column of cell to remove

#### removeCells

    public void removeCells(int row,
                            int column,
                            int num)

Removes a number of cells from a row in the table.

Parameters:
  `row` - the row of the cells to be removed
  `column` - the column of the first cell to be removed
  `num` - the number of cells to be removed
Throws:
  `java.lang.IndexOutOfBoundsException`

#### removeRow

    public void removeRow(int row)

Description copied from class: `HTMLTable`
Removes the specified row from the table.

Overrides:
  `removeRow` in class `HTMLTable`
Parameters:
  `row` - the index of the row to be removed

#### prepareCell

    protected void prepareCell(int row,
                               int column)

Ensure that the cell exists.

Specified by:
  `prepareCell` in class `HTMLTable`
Parameters:
  `row` - the row to prepare.
  `column` - the column to prepare.
Throws:
  `java.lang.IndexOutOfBoundsException` - if the row is negative

#### prepareRow

    protected void prepareRow(int row)

Ensure that the row exists.

Specified by:
  `prepareRow` in class `HTMLTable`
Parameters:
  `row` - The row to prepare.
Throws:
  `java.lang.IndexOutOfBoundsException` - if the row is negative