Package com.google.gwt.user.cellview.client

## Class AbstractCellTableBuilder<T>

- java.lang.Object
- - com.google.gwt.user.cellview.client.AbstractCellTableBuilder<T>

- Type Parameters:
    `T` - the row data type
  All Implemented Interfaces:
    `CellTableBuilder<T>`
  Direct Known Subclasses:
    `DefaultCellTableBuilder`

      public abstract class AbstractCellTableBuilder<T>
      extends java.lang.Object
      implements CellTableBuilder<T>

  Builder used to construct a CellTable.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected AbstractCellTable<T>` | `cellTable` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractCellTableBuilder​(AbstractCellTable<T> cellTable)` | Construct a new table builder.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `addRowAttributes​(TableRowBuilder row)` | Hook for subclasses to add their own attributes to each row in the table.
    `protected void` | `addRowAttributes​(TableRowBuilder row, T rowValue)` | Hook for subclasses to add their own attributes to each row in the table.
    `void` | `buildRow​(T rowValue, int absRowIndex)` | Build zero or more table rows for the specified row value.
    `protected abstract void` | `buildRowImpl​(T rowValue, int absRowIndex)` | Build zero or more table rows for the specified row value.
    `Cell.Context` | `createContext​(int column)` | Create the context for a column based on the current table building state.
    `TableSectionBuilder` | `finish()` | Finish the building and get the `TableSectionBuilder` containing the children.
    `HasCell<T,​?>` | `getColumn​(Cell.Context context, T rowValue, Element elem)` | Return the column containing an element.
    `java.util.Collection<HasCell<T,​?>>` | `getColumns()` | Return all the columns that this table builder has renderred.
    `int` | `getRowValueIndex​(TableRowElement row)` | Get the index of the row value from the associated `TableRowElement`.
    `int` | `getSubrowValueIndex​(TableRowElement row)` | Get the index of the subrow value from the associated `TableRowElement`.
    `boolean` | `isColumn​(Element elem)` | Return if an element contains a cell.
    `<C> void` | `renderCell​(ElementBuilderBase<?> builder, Cell.Context context, HasCell<T,​C> column, T rowValue)` | Render the cell into an `ElementBuilderBase`.
    `void` | `start​(boolean isRebuildingAllRows)` | Start building rows.
    `TableRowBuilder` | `startRow()` | Start a row and return the `TableRowBuilder` for this row.
    `TableRowBuilder` | `startRow​(T rowValue)` | Start a row and return the `TableRowBuilder` for this row.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cellTable

          protected final AbstractCellTable<T> cellTable

  - ### Constructor Detail

    - #### AbstractCellTableBuilder

          public AbstractCellTableBuilder​(AbstractCellTable<T> cellTable)

      Construct a new table builder.
      Parameters:
        `cellTable` - the table this builder will build rows for

  - ### Method Detail

    - #### buildRow

          public final void buildRow​(T rowValue,
                                     int absRowIndex)

      Build zero or more table rows for the specified row value.
      Specified by:
        `buildRow` in interface `CellTableBuilder<T>`
      Parameters:
        `rowValue` - the value for the row to render
        `absRowIndex` - the absolute row index

    - #### createContext

          public final Cell.Context createContext​(int column)

      Create the context for a column based on the current table building state.
      Parameters:
        `column` - the column id
      Returns:
        the context that contains the column index, row/subrow indexes, and the row value key

    - #### finish

          public final TableSectionBuilder finish()

      Finish the building and get the `TableSectionBuilder` containing the children.
      Specified by:
        `finish` in interface `CellTableBuilder<T>`

    - #### getColumn

          public final HasCell<T,​?> getColumn​(Cell.Context context,
                                                    T rowValue,
                                                    Element elem)

      Return the column containing an element.
      Specified by:
        `getColumn` in interface `CellTableBuilder<T>`
      Parameters:
        `context` - the context for the element
        `rowValue` - the value for the row corresponding to the element
        `elem` - the element that the column contains
      Returns:
        the immediate column containing the element

    - #### getColumns

          public final java.util.Collection<HasCell<T,​?>> getColumns()

      Return all the columns that this table builder has renderred.
      Specified by:
        `getColumns` in interface `CellTableBuilder<T>`

    - #### getRowValueIndex

          public final int getRowValueIndex​(TableRowElement row)

      Get the index of the row value from the associated `TableRowElement`.
      Specified by:
        `getRowValueIndex` in interface `CellTableBuilder<T>`
      Parameters:
        `row` - the row element
      Returns:
        the row value index

    - #### getSubrowValueIndex

          public final int getSubrowValueIndex​(TableRowElement row)

      Get the index of the subrow value from the associated `TableRowElement`. The sub row value starts at 0 for the first row that represents a row value.
      Specified by:
        `getSubrowValueIndex` in interface `CellTableBuilder<T>`
      Parameters:
        `row` - the row element
      Returns:
        the subrow value index, or 0 if not found

    - #### isColumn

          public final boolean isColumn​(Element elem)

      Return if an element contains a cell. This may be faster to execute than `getColumn(Element)`.
      Specified by:
        `isColumn` in interface `CellTableBuilder<T>`
      Parameters:
        `elem` - the element of interest

    - #### renderCell

          public final <C> void renderCell​(ElementBuilderBase<?> builder,
                                           Cell.Context context,
                                           HasCell<T,​C> column,
                                           T rowValue)

      Render the cell into an `ElementBuilderBase`.
      Parameters:
        `builder` - the `ElementBuilderBase` that cell contents append to
        `context` - the context for the element
        `column` - the column containing the cell
        `rowValue` - the value for the row corresponding to the element

    - #### start

          public final void start​(boolean isRebuildingAllRows)

      Start building rows. Reset the internal table section builder. If the table builder is going to re-build all rows, the internal the maps associating the cells and ids will be cleared.
      Specified by:
        `start` in interface `CellTableBuilder<T>`
      Parameters:
        `isRebuildingAllRows` - is this start intended for rebuilding all rows

    - #### startRow

          public final TableRowBuilder startRow()

      Start a row and return the `TableRowBuilder` for this row.

    - #### startRow

          public final TableRowBuilder startRow​(T rowValue)

      Start a row and return the `TableRowBuilder` for this row. The row can be initialized according to its corresponding value.
      Parameters:
        `rowValue` - the value for the row corresponding to the element. Can be null.

    - #### addRowAttributes

          protected void addRowAttributes​(TableRowBuilder row)

      Hook for subclasses to add their own attributes to each row in the table. The default does nothing.
      Parameters:
        `row` - the row element
      See Also:
        `addRowAttributes(TableRowBuilder, Object)`

    - #### addRowAttributes

          protected void addRowAttributes​(TableRowBuilder row,
                                          T rowValue)

      Hook for subclasses to add their own attributes to each row in the table. The default does nothing.
      Parameters:
        `row` - the row element
        `rowValue` - the value for the row corresponding to the element. Can be null.

    - #### buildRowImpl

          protected abstract void buildRowImpl​(T rowValue,
                                               int absRowIndex)

      Build zero or more table rows for the specified row value.
      Parameters:
        `rowValue` - the value for the row to render
        `absRowIndex` - the absolute row index