/** * Initialize the datagrid view. */ public function init(DatagridInterface $datagrid) { if (null === ($data = $datagrid->getData())) { throw new InvalidArgumentException('No data provided for the view.'); } $columns = $datagrid->getColumns(); foreach ($columns as $column) { $this->columns[$column->getName()] = $column->createHeaderView($this); } if (!isset($this->vars['row_vars'])) { $this->vars['row_vars'] = []; } foreach ($data as $id => $value) { $this->rows[$id] = $row = new DatagridRowView($this, $columns, $value, $id); $row->vars = $this->vars['row_vars']; } }
private static function assertDatagridHasColumn(DatagridInterface $datagrid, string $name, string $type = ColumnType::class, array $options = null) { self::assertTrue($datagrid->hasColumn($name), sprintf('Datagrid does not have a column named "%s"', $name)); self::assertColumnEquals($datagrid->getColumn($name), $name, $type, $options); }
/** * @param string $columnName * @param DatagridInterface $datagrid */ public function __construct($columnName, DatagridInterface $datagrid) { $this->datagrid = $datagrid; $this->columnName = $columnName; parent::__construct(sprintf('Column "%s" is not registered in Datagrid "%s".', $columnName, $datagrid->getName())); }