/**
  * @param \FSi\Component\DataGrid\Column\CellViewInterface $view
  * @param \Symfony\Component\PropertyAccess\PropertyPathInterface $propertyPath
  * @return object
  */
 private function getMostNestedObject(CellViewInterface $view, PropertyPathInterface $propertyPath)
 {
     if ($propertyPath->getLength() > 1) {
         return $this->propertyAccessor->getValue($view->getSource(), $propertyPath->getParent()->__toString());
     } else {
         return $view->getSource();
     }
 }
Exemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function buildCellView(ColumnTypeInterface $column, CellViewInterface $view)
 {
     if (!$column->getOption('editable')) {
         return;
     }
     $data = $view->getSource();
     $index = $view->getAttribute('row');
     $form = $this->createForm($column, $index, $data);
     $view->setAttribute('form', $form->createView());
 }
 function it_sets_translatable_and_not_translated_to_true_when_column_has_not_translated_nested_translatable_property_in_field_mapping(ColumnTypeInterface $column, CellViewInterface $view, ClassMetadata $translatableMetadata)
 {
     $column->getOption('field_mapping')->willReturn(array('nested_object.translatable_property'));
     $nested_object = (object) array('translatable_property' => 'value', 'non_translatable_property' => 'value', 'locale' => 'de');
     $data = (object) array('nested_object' => $nested_object);
     $view->getSource()->willReturn($data);
     $translatableMetadata->hasTranslatableProperties()->willReturn(true);
     $translatableMetadata->getTranslatableProperties()->willReturn(array('translations' => array('translatable_property' => 'translation_property')));
     $translatableMetadata->localeProperty = 'locale';
     $view->setAttribute('translatable', true)->shouldBeCalled();
     $view->setAttribute('not_translated', true)->shouldBeCalled();
     $this->buildCellView($column, $view);
 }