Link v komponente – Component is not attached to presenter

- Phalanx
 - Člen | 310
 
Chci Vás poprosit o pomoc. Mám komponentu, ve které volám link, ale
hází mi chybu
Component '' is not attached to 'Nette\Application\UI\Presenter'.
<?php
interface ISimpleControlFactory
{
	/** @return Simple */
	function create();
}
class Simple extends Control
{
	public function setVariable($type)
    {
        $link = $this->link('click!'); // tento řádek vyhazuje chybu
		// ...
    }
}
?>
Našel jsem více materiálů k této chybě, ale za boha se nemůžu dopracovat ke správnému řešení.
zkoušel jsem attached
https://forum.nette.org/…-attached-to
četl si v dokumentaci
https://pla.nette.org/…nty-k-rodici

- Ondřej Kubíček
 - Člen | 494
 
a čeho chceš vlastně dosáhnout, proč potřebuješ získat link v komponentě?
přes to attached by to jít mělo, musíš tu tvoji metodu zavolat až v té metodě
protected function attached($presenter)
{
	parent::attached($presenter);
	$this->setVariable($type);
}
				
- Phalanx
 - Člen | 310
 
@OndřejKubíček Díky moc. Zjistil jsem, že to tak dělat nemůžu. Vytvořil jsem formulář v presenteru a snažil se mu akci nastavovat až v komponentě (+ pak ho v té komponentě vykreslit). Dělám to tak z důvodu, že komponenta bude univerzální, aby se dala propojit s mnoha formuláři.
Vyřešil jsem to tak, že vytvořím jen obálku formuláře v presenteru, kde si vytvořím inputy (addText, addSelect) a celý formulář si už přímo vytvořím v komponentě – standartně createComponentForm() a pak do něj jen nasázím prvky kopírováním.
<?php
		$formTmp = $this->getFilterFormOptions();
		foreach($formTmp->getComponents() as $option) {
			$option->setParent(null);
			$form->addComponent($option, $option->name);
		}
?>
Pokud by někdo znal lepší řešení, budu rád.