/** Configures the formatting for a particular cell based on its location in the grid. */
 protected void formatCell(HTMLTable.CellFormatter formatter, int row, int col, int limit) {
   formatter.setHorizontalAlignment(row, col, _cellHorizAlign);
   formatter.setVerticalAlignment(row, col, _cellVertAlign);
   formatter.setStyleName(row, col, "Cell");
   if (row == (limit - 1) / _cols) {
     formatter.addStyleName(row, col, "BottomCell");
   } else if (row == 0) {
     formatter.addStyleName(row, col, "TopCell");
   } else {
     formatter.addStyleName(row, col, "MiddleCell");
   }
 }
  @Override
  public void buildTable(
      List<? extends NeedsRefresh> sourceDisplays, List<? extends NeedsRefresh> targetDisplays) {
    showEmptyContentIfNoData(sourceDisplays.size());

    transUnitTable.resizeRows(sourceDisplays.size());
    HTMLTable.CellFormatter cellFormatter = transUnitTable.getCellFormatter();

    for (int i = 0; i < sourceDisplays.size(); i++) {
      NeedsRefresh sourceDisplay = sourceDisplays.get(i);
      NeedsRefresh targetDisplay = targetDisplays.get(i);

      transUnitTable.setWidget(i, 0, sourceDisplay);
      transUnitTable.setWidget(i, 1, targetDisplay);

      cellFormatter.setVerticalAlignment(i, 0, HasVerticalAlignment.ALIGN_TOP);
      cellFormatter.setVerticalAlignment(i, 1, HasVerticalAlignment.ALIGN_TOP);
      cellFormatter.addStyleName(i, 0, "transUnitCol");
      cellFormatter.addStyleName(i, 1, "transUnitCol");

      sourceDisplay.refresh();
      targetDisplay.refresh();
    }
  }