/**
  * On form pre set data
  *
  * @param FormEvent $event
  */
 public function preSetData(FormEvent $event)
 {
     $user = $event->getData();
     if (!$user instanceof UserInterface) {
         return;
     }
     $form = $event->getForm();
     $types = $this->datagridViewRepo->getDatagridViewTypeByUser($user);
     foreach ($types as $type) {
         $alias = $type['datagridAlias'];
         $form->add('default_' . str_replace('-', '_', $alias) . '_view', 'entity', ['class' => 'PimDataGridBundle:DatagridView', 'choice_label' => 'label', 'label' => 'user.default_' . str_replace('-', '_', $alias) . '_view.label', 'query_builder' => function (DatagridViewRepositoryInterface $gridViewRepository) use($user, $alias) {
             return $gridViewRepository->findDatagridViewByUserAndAlias($user, $alias);
         }, 'required' => false, 'attr' => ['data-type' => 'default-grid-view']]);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function reverseTransform($value)
 {
     if (null === $value) {
         return null;
     }
     $types = $this->datagridViewRepo->getDatagridViewTypeByUser($value);
     foreach ($types as $type) {
         $field = 'default_' . str_replace('-', '_', $type['datagridAlias']) . '_view';
         if (property_exists($value, $field)) {
             if ($value->getDefaultGridView($type['datagridAlias']) !== $value->{$field}) {
                 $value->setDefaultGridView($type['datagridAlias'], $value->{$field});
             }
         }
     }
     return $value;
 }