private static function assertColumnEquals(ColumnInterface $column, string $name, string $type = ColumnType::class, array $options = null) { self::assertEquals($name, $column->getName()); self::assertInstanceOf($type, $column->getType()->getInnerType()); if (null !== $options) { self::assertEquals($options, $column->getOptions()); } }
private function createDataProviderPath(ColumnInterface $column, $data, $customPath) : PropertyPath { try { if (null === $customPath) { $name = $column->getName(); if (!$this->propertyAccessor->isReadable($data, $path = new PropertyPath(sprintf('[%s]', $name))) && !$this->propertyAccessor->isReadable($data, $path = new PropertyPath($name))) { throw DataProviderException::autoAccessorUnableToGetValue($name); } return $path; } if (!$this->propertyAccessor->isReadable($data, $path = new PropertyPath($customPath))) { throw DataProviderException::pathAccessorUnableToGetValue($column->getName(), $path); } return $path; } catch (InvalidPropertyPathException $e) { throw DataProviderException::invalidPropertyPath($column->getName(), $e); } }
public function buildHeaderView(HeaderView $view, ColumnInterface $column, array $options) { $blockName = (string) $options['block_name']; if ('' === $blockName) { $blockName = $view->datagrid->name . '_'; // Child-columns must be prefixed with there parents name to prevent collisions. if (isset($options['parent_column'])) { $blockName .= $options['parent_column']->getName() . '_'; } $blockName .= $column->getName(); } $uniqueBlockPrefix = '_' . $blockName; $blockPrefixes = []; for ($type = $column->getType(); null !== $type; $type = $type->getParent()) { array_unshift($blockPrefixes, $type->getBlockPrefix()); } $blockPrefixes[] = $uniqueBlockPrefix; $view->vars = array_replace($view->vars, ['label_attr' => $options['label_attr'], 'header_attr' => $options['header_attr'], 'cell_attr' => $options['header_attr'], 'label_translation_domain' => $options['label_translation_domain'], 'unique_block_prefix' => $uniqueBlockPrefix, 'block_prefixes' => $blockPrefixes, 'cache_key' => $uniqueBlockPrefix . '_' . $column->getType()->getBlockPrefix()]); }
/** * @param ColumnInterface $column * @param DatagridView $datagrid * @param string $label */ public function __construct(ColumnInterface $column, DatagridView $datagrid, string $label = null) { $this->datagrid = $datagrid; $this->name = $column->getName(); $this->label = $label; }
/** * {@inheritdoc} */ public function set(ColumnInterface $column) { $this->columns[$column->getName()] = $column; unset($this->unresolvedColumns[$column->getName()]); return $this; }