/** * @param Base|Text $item * @param Nette\Forms\Container $formContainer * @param $name * @param $parentName * @param Nette\Forms\Rules $togglingObject * @param array $userOptions * @param bool $processSubTypes */ public function generateForm(Base $item, Nette\Forms\Container &$formContainer, $name, $parentName, $togglingObject, array $userOptions = [], $processSubTypes = TRUE) { if ($processSubTypes) { $addFormItem = $this->useSubType(function (SubTypes\SubType $subType, $addFormItem) use($formContainer, $name, $parentName, $togglingObject, $userOptions) { if ($subType instanceof IEditItem) { $subType->generateForm($this, $formContainer, $name, $parentName, $togglingObject, $userOptions); return FALSE; } return $addFormItem; }, TRUE); } else { $addFormItem = TRUE; } if ($addFormItem) { $input = $formContainer->addText($name, $name); $input->setOption('id', $parentName . '__' . $name); $input->setValue($item->getValidRawContent()); if (!is_null($togglingObject)) { $togglingObject->toggle($input->getOption('id')); } $item->applyUserOptions($input, $userOptions); } }