genScreenPTColumnsRL static method

List<String>? genScreenPTColumnsRL(
  1. List<int> columnsRL,
  2. int maxColumn
)

Implementation

static List<String>? genScreenPTColumnsRL(List<int> columnsRL, int maxColumn){
  if(columnsRL.length > maxColumn || columnsRL.fold<int>(0, (total, added)=>total+added) > maxColumn ) return null;
  var fromStart = maxColumn, index = 0;
  List<String> list = [];
  while(fromStart > 0){
    var willFillColumns = index < columnsRL.length ?  columnsRL[index] : 1;
    var willAdded = screenPTColumnsRL(fromStart, willFillColumns);
    if(willAdded != null){
      list.add(willAdded);
      index ++;
      fromStart -= willFillColumns;
    }else{
      return null;
    }
  }
  return list.reversed.toList();
}