protected function assignColumns(Builder $builder, Collection $collection)
 {
     $columns = $this->findViewColumns($builder, $collection);
     $columnList = new ColumnList();
     $accessor = new DottedObjectAccess();
     $rootModel = $builder->model();
     foreach ($columns as $columnName) {
         $column = Column::create()->setAccessor($columnName, $accessor)->setTitle($this->namer->keyTitle($rootModel, $columnName));
         $columnList->push($column);
         if ($type = $this->types->keyType($rootModel, $columnName)) {
             $column->setValueFormatter($type);
         }
     }
     $collection->setColumns($columnList);
 }
 public function setColumns($columns)
 {
     if ($columns instanceof ColumnList) {
         $this->columns = $columns;
     } else {
         $this->columns = ColumnList::fromArray($columns);
     }
     return $this;
 }