writeText method

  1. @override
void writeText(
  1. StringBuffer out,
  2. int depth
)
override

Implementation

@override
void writeText(StringBuffer out, int depth) {
  var pad = ViewNode._pad(depth);
  var widths = [
    for (var (i, column) in columns.indexed)
      rows.fold(column.length, (w, row) {
        var cell = i < row.length ? row[i] : '';
        return cell.length > w ? cell.length : w;
      }),
  ];

  void writeRow(List<String> cells) {
    var parts = [
      for (var (i, width) in widths.indexed)
        (i < cells.length ? cells[i] : '').padRight(width),
    ];
    out.writeln('$pad${parts.join('  ').trimRight()}');
  }

  writeRow(columns);
  for (var row in rows) {
    writeRow(row);
  }
  if (truncated > 0) {
    out.writeln('$pad… $truncated more');
  }
}