/**
   * Gets the row view for the specified row
   *
   * @param row the row number
   * @return the row format, or the default format if no override is specified
   */
  public CellView getRowView(int row) {
    RowRecord rr = getRowInfo(row);

    CellView cv = new CellView();

    if (rr != null) {
      cv.setDimension(rr.getRowHeight());
      cv.setHidden(rr.isCollapsed());
    } else {
      cv.setDimension(settings.getDefaultRowHeight());
    }

    return cv;
  }
  /**
   * Gets the row record. Usually called by the cell in the specified row in order to determine its
   * size
   *
   * @param r the row
   * @return the RowRecord for the specified row
   */
  RowRecord getRowInfo(int r) {
    if (!rowRecordsInitialized) {
      rowRecords = new RowRecord[getRows()];
      Iterator i = rowProperties.iterator();

      RowRecord rr = null;
      while (i.hasNext()) {
        rr = (RowRecord) i.next();
        rowRecords[rr.getRowNumber()] = rr;
      }
    }

    return rowRecords[r];
  }