Example #1
0
 public function createButton()
 {
     if ($this->button) {
         return FALSE;
     }
     /** @var Nette\Forms\Container $container */
     $container = $this->control->lookup('Nette\\Forms\\Container');
     $name = $this->control->getName() . self::$buttonSuffix;
     $this->button = new SubmitButton("Apply");
     $this->button->setValidationScope(false);
     $container->addComponent($this->button, $name);
     $this->control->getControlPrototype()->addAttributes(array('data-apply-button' => $this->button->getHtmlId()));
     return TRUE;
 }
 /**
  * Create button if no button is attached to control
  * @return Was button created or not?
  */
 public function createButton()
 {
     if ($this->button !== null) {
         return false;
     }
     if ($this->isAnyButtonAttached()) {
         $this->button = $this->getAnyAttachedButton(true);
         $this->buttonText = $this->button->getLabel();
         $this->buttonPosition = self::POSITION_UNDEFINED;
         return false;
     }
     // add $this->controlClass to $this->control if not added yet
     $this->updateControlClass();
     // create button
     if ($this->buttonText === null) {
         throw new InvalidArgumentException("Null caption of button is crappy *** !!! (ajax not working properly)");
     }
     $container = $this->control->lookup('Nette\\Forms\\Container');
     $this->button = new SubmitButton($this->buttonText);
     $this->button->setValidationScope(false);
     $this->button->getControlPrototype()->class($this->controlClass . self::$buttonSuffix);
     $this->button->setHtmlId($this->control->getHtmlId() . self::$buttonSuffix);
     $buttonName = $this->formatButtonName($this->control->getName());
     switch ($this->buttonPosition) {
         case self::POSITION_DEFAULT:
             $container->addComponent($this->button, $buttonName);
             break;
         case self::POSITION_BEFORE_CONTROL:
             $container->addComponent($this->button, $buttonName, $this->control->getName());
             break;
         case self::POSITION_AFTER_CONTROL:
             // Uhm :(
             $findName = $this->control->getName();
             $nextName = null;
             $found = false;
             $components = $container->getComponents(true);
             foreach ($components as $name => $component) {
                 if ($found === true) {
                     $nextName = $name;
                     break;
                 }
                 if ($name == $findName) {
                     $found = true;
                 }
             }
             if ($nextName === null) {
                 $container->addComponent($this->button, $buttonName);
             } else {
                 $container->addComponent($this->button, $buttonName, $nextName);
             }
             break;
         default:
             throw new InvalidArgumentException("Ivalid position value !");
     }
     return true;
 }