Class Grid

  • 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>
    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 Detail

      • numColumns

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

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

      • 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:
        java.lang.IndexOutOfBoundsException
    • Method Detail

      • 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:
        java.lang.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:
        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
      • resize

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

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

        public void resizeRows​(int rows)
        Resizes the grid to the specified number of rows.
        Parameters:
        rows - the number of rows
        Throws:
        java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.IndexOutOfBoundsException - if the row is negative