* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form; use Symfony\Component\Form\Exception\AlreadySubmittedException; use Symfony\Component\Form\Exception\BadMethodCallException; /** * A form button. * * @author Bernhard Schussek */ class Button implements \IteratorAggregate, FormInterface { /** * @var FormInterface|null */ private $parent; /** * @var FormConfigInterface */ private $config; /** * @var bool */ private $submitted = false; /** * Creates a new button from a form configuration. * * @param FormConfigInterface $config The button's configuration */ public function __construct(FormConfigInterface $config) { $this->config = $config; } /** * Unsupported method. * * @param mixed $offset * * @return bool Always returns false */ public function offsetExists($offset) { return false; } /** * Unsupported method. * * This method should not be invoked. * * @param mixed $offset * * @throws BadMethodCallException */ public function offsetGet($offset) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * Unsupported method. * * This method should not be invoked. * * @param mixed $offset * @param mixed $value * * @throws BadMethodCallException */ public function offsetSet($offset, $value) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * Unsupported method. * * This method should not be invoked. * * @param mixed $offset * * @throws BadMethodCallException */ public function offsetUnset($offset) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * {@inheritdoc} */ public function setParent(FormInterface $parent = null) { if ($this->submitted) { throw new AlreadySubmittedException('You cannot set the parent of a submitted button'); } $this->parent = $parent; } /** * {@inheritdoc} */ public function getParent() { return $this->parent; } /** * Unsupported method. * * This method should not be invoked. * * @param int|string|FormInterface $child * @param null $type * @param array $options * * @throws BadMethodCallException */ public function add($child, $type = null, array $options = array()) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * Unsupported method. * * This method should not be invoked. * * @param string $name * * @throws BadMethodCallException */ public function get($name) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * Unsupported method. * * @param string $name * * @return bool Always returns false */ public function has($name) { return false; } /** * Unsupported method. * * This method should not be invoked. * * @param string $name * * @throws BadMethodCallException */ public function remove($name) { throw new BadMethodCallException('Buttons cannot have children.'); } /** * {@inheritdoc} */ public function all() { return array(); } /** * {@inheritdoc} */ public function getErrors($deep = false, $flatten = true) { return new FormErrorIterator($this, array()); } /** * Unsupported method. * * This method should not be invoked. * * @param mixed $modelData */ public function setData($modelData) { // called during initialization of the form tree // noop } /** * Unsupported method. */ public function getData() { } /** * Unsupported method. */ public function getNormData() { } /** * Unsupported method. */ public function getViewData() { } /** * Unsupported method. * * @return array Always returns an empty array */ public function getExtraData() { return array(); } /** * Returns the button's configuration. * * @return FormConfigInterface The configuration */ public function getConfig() { return $this->config; } /** * Returns whether the button is submitted. * * @return bool true if the button was submitted */ public function isSubmitted() { return $this->submitted; } /** * 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(); } /** * Unsupported method. */ public function getPropertyPath() { } /** * Unsupported method. * * @throws BadMethodCallException */ public function addError(FormError $error) { throw new BadMethodCallException('Buttons cannot have errors.'); } /** * Unsupported method. * * @return bool Always returns true */ public function isValid() { return true; } /** * Unsupported method. * * @return bool Always returns false */ public function isRequired() { return false; } /** * {@inheritdoc} */ public function isDisabled() { if (null === $this->parent || !$this->parent->isDisabled()) { return $this->config->getDisabled(); } return true; } /** * Unsupported method. * * @return bool Always returns true */ public function isEmpty() { return true; } /** * Unsupported method. * * @return bool Always returns true */ public function isSynchronized() { return true; } /** * Unsupported method. */ public function getTransformationFailure() { } /** * Unsupported method. * * @throws BadMethodCallException */ public function initialize() { throw new BadMethodCallException('Buttons cannot be initialized. Call initialize() on the root form instead.'); } /** * Unsupported method. * * @param mixed $request * * @throws BadMethodCallException */ public function handleRequest($request = null) { throw new BadMethodCallException('Buttons cannot handle requests. Call handleRequest() on the root form instead.'); } /** * Submits data to the button. * * @param null|string $submittedData The data * @param bool $clearMissing Not used * * @return $this * * @throws Exception\AlreadySubmittedException if the button has already been submitted */ public function submit($submittedData, $clearMissing = true) { if ($this->submitted) { throw new AlreadySubmittedException('A form can only be submitted once'); } $this->submitted = true; return $this; } /** * {@inheritdoc} */ public function getRoot() { return $this->parent ? $this->parent->getRoot() : $this; } /** * {@inheritdoc} */ public function isRoot() { return null === $this->parent; } /** * {@inheritdoc} */ public function createView(FormView $parent = null) { if (null === $parent && $this->parent) { $parent = $this->parent->createView(); } $type = $this->config->getType(); $options = $this->config->getOptions(); $view = $type->createView($this, $parent); $type->buildView($view, $this, $options); $type->finishView($view, $this, $options); return $view; } /** * Unsupported method. * * @return int Always returns 0 */ public function count() { return 0; } /** * Unsupported method. * * @return \EmptyIterator Always returns an empty iterator */ public function getIterator() { return new \EmptyIterator(); } } __halt_compiler();----SIGNATURE:----eEU0CkMKmtPhNkfMERcOG74wQI7GDpzklHItC6F+BBiYCe976gniDM0vKIsH3omZzaBAUhapD8tFWy5swM9kJhKX/nuOEEYAfDpb/zBIAleb3gOUxygiuFSGcZ0Ax8/cTAFbKgqn1rLcqy8tRdgzB+jFKUWZ2g4Y0XtMScvxvNS2ldZCFgzIT+iU2m7rQpM+qYXVFFdkCTHbZ+Od2qG1y2KdOTHyZOOZgAP6j7A8IyVYFkaGOFULXI3d8Sz9BDiMWfowkQ/Nr3uyX1ZgialqP1jUvfRp8kyjj8YP9rsHQdpQolNTyfVE7nsV7BGdem+IvAb0Inc35XUq5YhEr3iIMKWNt6YRPQqImzVYTOwcQBv1uPgsQbEIjbWYo6gvksKyvD2Lw3pGf4nEwZ1pr0BNwqWOZc4WicuTybGlPagoaaNfD6zlN3+5yICFYA/sp4w9Cvfr1sXN/GRMDcKRtmuhCIX3L2LloIXPy98Xh6BvUsHq0J/uVA2tAyEScf2HVUfCqRiLEmp7YTmZRxngmSwppRUhE6ns7+3oHHt/JVcWxdVPMTJTfzaQtY9vw2P2Zkc42hv6BXKX+wQanTkzUqLcvC2nhyDBFjYqjFrKWKSFfmdltJCouM5P0BcwEjgdkRo8OcreIVpiS4R+vHzt9TfJR5zzVfKlbLCg/LLke1iYjx4=----ATTACHMENT:----NzI2MjA2NDE2NDI4MTIyMyA5NDAwNTY5NDYxOTg0NDgxIDgwODc1Mzc4OTg3OTI2OTc=