Class Grid

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

public class Grid extends HTMLTable
A rectangular grid that can contain text, html, or a child Widget within its cells. It must be resized explicitly to the desired number of rows and columns.

Example

public class GridExample implements EntryPoint {

  public void onModuleLoad() {
    // Grids must be sized explicitly, though they can be resized later.
    Grid g = new Grid(5, 5);

    // Put some values in the grid cells.
    for (int row = 0; row < 5; ++row) {
      for (int col = 0; col < 5; ++col)
        g.setText(row, col, "" + row + ", " + col);
    }

    // Just for good measure, let's put a button in the center.
    g.setWidget(2, 2, new Button("Does nothing, but could"));

    // You can use the CellFormatter to affect the layout of the grid's cells.
    g.getCellFormatter().setWidth(0, 2, "256px");

    RootPanel.get().add(g);
  }
}

Use in UiBinder Templates

Grid widget consists of <g:row> elements. Each <g:row> element can contain one or more <g:cell> or <g:customCell> elements. Using <g:cell> attribute it is possible to place pure HTML content. <g:customCell> is used as a container for Widget type objects. (Note that the tags of the row, cell and customCell elements are not capitalized. This is meant to signal that the item is not a runtime object, and so cannot have a ui:field attribute.)

For example:

 <g:Grid>
  <g:row styleName="optionalHeaderStyle">
    <g:customCell styleName="optionalFooCellStyle">
      <g:Label>foo</g:Label>
    </g:customCell>
    <g:customCell styleName="optionalBarCellStyle">
      <g:Label>bar</g:Label>
    </g:customCell>
  </g:row>
  <g:row>
    <g:cell>
      <div>foo</div>
    </g:cell>
    <g:cell>
      <div>bar</div>
    </g:cell>
  </g:row>
 </g:Grid>
 
  • Field Details

    • numColumns

      protected int numColumns
      Number of columns in the current grid.
    • numRows

      protected int numRows
      Number of rows in the current grid.
  • Constructor Details

    • Grid

      public Grid()
      Constructor for Grid.
    • Grid

      public Grid(int rows, int columns)
      Constructs a grid with the requested size.
      Parameters:
      rows - the number of rows
      columns - the number of columns
      Throws:
      IndexOutOfBoundsException
  • Method Details

    • clearCell

      public boolean clearCell(int row, int column)
      Replaces the contents of the specified cell with a single space.
      Overrides:
      clearCell in class HTMLTable
      Parameters:
      row - the cell's row
      column - the cell's column
      Returns:
      true if a widget was removed
      Throws:
      IndexOutOfBoundsException
    • getCellCount

      public int getCellCount(int row)
      Return number of columns. For grid, row argument is ignored as all grids are rectangular.
      Specified by:
      getCellCount in class HTMLTable
      Parameters:
      row - the row whose cells are to be counted
      Returns:
      the number of cells present in the row
    • getColumnCount

      public int getColumnCount()
      Gets the number of columns in this grid.
      Returns:
      the number of columns
    • getRowCount

      public int getRowCount()
      Return number of rows.
      Specified by:
      getRowCount in class HTMLTable
      Returns:
      the table's row count
    • insertRow

      public int insertRow(int beforeRow)
      Inserts a new row into the table. If you want to add multiple rows at once, use resize(int, int) or resizeRows(int) as they are more efficient.
      Overrides:
      insertRow in class HTMLTable
      Parameters:
      beforeRow - the index before which the new row will be inserted
      Returns:
      the index of the newly-created row
      Throws:
      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
    • resize

      public void resize(int rows, int columns)
      Resizes the grid.
      Parameters:
      rows - the number of rows
      columns - the number of columns
      Throws:
      IndexOutOfBoundsException
    • resizeColumns

      public void resizeColumns(int columns)
      Resizes the grid to the specified number of columns.
      Parameters:
      columns - the number of columns
      Throws:
      IndexOutOfBoundsException
    • resizeRows

      public void resizeRows(int rows)
      Resizes the grid to the specified number of rows.
      Parameters:
      rows - the number of rows
      Throws:
      IndexOutOfBoundsException
    • createCell

      protected Element createCell()
      Creates a new, empty cell.
      Overrides:
      createCell in class HTMLTable
      Returns:
      the newly created TD
    • prepareCell

      protected void prepareCell(int row, int column)
      Checks that a cell is a valid cell in the table.
      Specified by:
      prepareCell in class HTMLTable
      Parameters:
      row - the cell's row
      column - the cell's column
      Throws:
      IndexOutOfBoundsException
    • prepareColumn

      protected void prepareColumn(int column)
      Checks that the column index is valid.
      Overrides:
      prepareColumn in class HTMLTable
      Parameters:
      column - The column index to be checked
      Throws:
      IndexOutOfBoundsException - if the column is negative
    • prepareRow

      protected void prepareRow(int row)
      Checks that the row index is valid.
      Specified by:
      prepareRow in class HTMLTable
      Parameters:
      row - The row index to be checked
      Throws:
      IndexOutOfBoundsException - if the row is negative