/** * @param DataGridInterface $dataGrid * @param array $configuration */ protected function buildConfiguration(DataGridInterface $dataGrid, array $configuration) { foreach ($configuration['columns'] as $name => $column) { $type = array_key_exists('type', $column) ? $column['type'] : 'text'; $options = array_key_exists('options', $column) ? $column['options'] : array(); $dataGrid->addColumn($name, $type, $options); } }
/** * {@inheritdoc} */ public function getDataMapper() { if (!isset($this->dataMapper)) { $this->setDataMapper($this->dataGrid->getDataMapper()); } return $this->dataMapper; }
/** * {@inheritdoc} */ public function registerSubscribers(DataGridInterface $dataGrid) { $subscribers = $this->loadSubscribers(); if (!is_array($subscribers)) { throw new UnexpectedTypeException('Listeners needs to be stored in array.'); } foreach ($subscribers as $subscriber) { if (!$subscriber instanceof EventSubscriberInterface) { throw new UnexpectedTypeException(sprintf('"%s" is not instance of Symfony\\Component\\EventDispatcher\\EventSubscriberInterface', $columnType)); } $dataGrid->addEventSubscriber($subscriber); } }
/** * {@inheritdoc} */ public function setDataGrid(DataGridInterface $dataGrid) { $this->formName = $dataGrid->getName(); }