/**
  * Přidá do action backlink, aby formulář i po odeslání věděl kam se má vrátit.
  *
  * @param Link|string
  * @return self
  */
 public function setAction($url)
 {
     return parent::setAction(RequestButtonHelper::prepareAction($this, $url));
 }
 /**
  * Upraví formulář pro potřeby RequestButtonu.
  * 	Přidá do action backlink, aby formulář i po odeslání věděl kam se má vrátit.
  * 	Když je vráceno na určitý stav formuláře, nastaví mu data.
  * MUSÍ SE VOLAT PO přidání všech FormControlů do Formu a po připojení na Presenter.
  * MÍSTO VOLÁNÍ TÉTO FUNCKE SE MÚŽE POUŽÍT JAKO FORM RequestButtonReceiver
  *
  * @param AppForm
  * @see RequestButtonReceiver
  *
  */
 public static function prepareForm(AppForm $form)
 {
     if (!$form instanceof RequestButtonReceiver) {
         if ($form->getPresenter(false)) {
             $form->setAction(RequestButtonHelper::prepareAction($form, $form->getAction()));
             $form->setValues(RequestButtonHelper::prepareHttpData($form, $form->getHttpData()));
             foreach ($form->getComponents(TRUE, 'RequestButton') as $rb) {
                 $rb->formIsPrepared = true;
             }
         } else {
             throw new InvalidStateException("Form is not attached to Presenter.");
         }
     }
 }