insertColumns method

  1. @override
void insertColumns(
  1. int columnIdx,
  2. List<PlutoColumn> columns
)
inherited

Insert columns at columnIdx position.

If there is a PlutoColumn.frozen.isFrozen column in columns, If the width constraint of the frozen column is greater than the range, the columns are unfreeze in order.

Implementation

@override
void insertColumns(int columnIdx, List<PlutoColumn> columns) {
  if (columns.isEmpty) {
    return;
  }

  if (columnIdx < 0 || refColumns.length < columnIdx) {
    return;
  }

  _updateLimitedFrozenColumns(columns);

  if (columnIdx >= refColumns.originalLength) {
    refColumns.addAll(columns);
  } else {
    refColumns.insertAll(columnIdx, columns);
  }

  _fillCellsInRows(columns);

  resetCurrentState(notify: false);

  resetShowFrozenColumn();

  if (!columnSizeConfig.restoreAutoSizeAfterInsertColumn) {
    deactivateColumnsAutoSize();
  }

  updateVisibilityLayout();

  notifyListeners(true, insertColumns.hashCode);
}