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());
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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()]);
 }
Esempio n. 4
0
 /**
  * @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;
 }
Esempio n. 5
0
 /**
  * {@inheritdoc}
  */
 public function set(ColumnInterface $column)
 {
     $this->columns[$column->getName()] = $column;
     unset($this->unresolvedColumns[$column->getName()]);
     return $this;
 }