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
    Modifier and Type | Class and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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