Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function createView(FormViewInterface $parent = null)
 {
     if (null === $parent && $this->parent) {
         $parent = $this->parent->createView();
     }
     $view = new FormView($this->config->getName());
     $view->setParent($parent);
     $types = (array) $this->config->getTypes();
     $options = $this->config->getOptions();
     foreach ($types as $type) {
         $type->buildView($view, $this, $options);
         foreach ($type->getExtensions() as $typeExtension) {
             $typeExtension->buildView($view, $this, $options);
         }
     }
     foreach ($this->children as $child) {
         $view->add($child->createView($view));
     }
     foreach ($types as $type) {
         $type->finishView($view, $this, $options);
         foreach ($type->getExtensions() as $typeExtension) {
             $typeExtension->finishView($view, $this, $options);
         }
     }
     return $view;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function setParent(FormInterface $parent = null)
 {
     if ($this->submitted) {
         throw new AlreadySubmittedException('You cannot set the parent of a submitted form');
     }
     if (null !== $parent && '' === $this->config->getName()) {
         throw new LogicException('A form with an empty name cannot have a parent form.');
     }
     $this->parent = $parent;
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Sets the parent form.
  *
  * @param FormInterface $parent The parent form
  *
  * @return Form The current form
  */
 public function setParent(FormInterface $parent = null)
 {
     if ($this->bound) {
         throw new AlreadyBoundException('You cannot set the parent of a bound form');
     }
     if ('' === $this->config->getName()) {
         throw new FormException('A form with an empty name cannot have a parent form.');
     }
     $this->parent = $parent;
     return $this;
 }
Ejemplo n.º 4
0
 /**
  * Returns the name by which the button is identified in forms.
  *
  * @return string The name of the button.
  */
 public function getName()
 {
     return $this->config->getName();
 }
Ejemplo n.º 5
0
 /**
  * Creates an unmodifiable copy of a given configuration.
  *
  * @param  FormConfigInterface $config The configuration to copy.
  */
 public function __construct(FormConfigInterface $config)
 {
     $dispatcher = $config->getEventDispatcher();
     if (!$dispatcher instanceof UnmodifiableEventDispatcher) {
         $dispatcher = new UnmodifiableEventDispatcher($dispatcher);
     }
     $this->dispatcher = $dispatcher;
     $this->name = $config->getName();
     $this->propertyPath = $config->getPropertyPath();
     $this->mapped = $config->getMapped();
     $this->byReference = $config->getByReference();
     $this->virtual = $config->getVirtual();
     $this->compound = $config->getCompound();
     $this->types = $config->getTypes();
     $this->viewTransformers = $config->getViewTransformers();
     $this->modelTransformers = $config->getModelTransformers();
     $this->dataMapper = $config->getDataMapper();
     $this->validators = $config->getValidators();
     $this->required = $config->getRequired();
     $this->disabled = $config->getDisabled();
     $this->errorBubbling = $config->getErrorBubbling();
     $this->emptyData = $config->getEmptyData();
     $this->attributes = $config->getAttributes();
     $this->data = $config->getData();
     $this->dataClass = $config->getDataClass();
     $this->options = $config->getOptions();
 }