/** * Construtor * @param \stdClass $param */ public function __construct($param) { $this->_controls = Div::factory()->addClass('controls'); $this->_label = Label::factory($this->safeToggle($param, 'label'))->addClass('control-label'); if (TRUE == $this->safeToggle($param, 'required')) { $span = new Span(); $span->addClass(Input::T_INPUT_REQUIRED_CLASS)->add(new Text(Input::T_INPUT_REQUIRED_MASK)); $this->_label->add($span); } # @todo expandir este metodo para suportar qualquer tipo de input $this->_controls->add(new Input($param->name, $param->type)); $this->_inputLabel = Div::factory()->addClass('control-group')->add($this->_label)->add($this->_controls); }
/** * Grupo de Radio button ou Checkbox. * * @param string $type * @param stdClass $config * @return Fieldset * */ public function groupRadioAndCheck($type, \stdClass $config) { $fiedset = new Fieldset(isset($config->title) ? $config->title : NULL); $content = NULL; if (!isset($config->content)) { $config->content = array(); } foreach ($config->data as $elm) { $elm = (object) $elm; $elmId = $this->genId($config); $label = new Label($elm->text, $elmId); $radio = new Input($config->name, $type); $radio->value = $elm->value; $radio->id = $elmId; if (isset($elm->checked)) { $radio->checked = 'checked'; } $label->add($radio); $fiedset->add($label); } return $fiedset; }
/** * wizard para inclusao de elementos no form * * @param string $txLabel * @param ElementAbstract|string $element * @param boolean $isRequired * @param string $posLegend * @param boolean * @return ScreenFormForm * */ public function wAdd($txLabel, $element, $isRequired = FALSE, $posLegend = NULL, $returnCreatedElem = FALSE) { $divCtlGroup = Div::factory()->addClass('control-group'); $divCtrls = Div::factory()->addClass('controls'); if (!$element instanceof ElementAbstract) { $element = Text::factory($element); } $for = $element->getAttr('id') ?: $element->getAttr('name'); $label = Label::factory(NULL, $for)->addClass('control-label'); $divCtlGroup->add(array($label, $divCtrls)); if (TRUE == $isRequired) { $element->addClass('required'); $span = Span::factory()->addClass('required')->setContent(self::T_SCRENFORMFORM_REQUIRED_TOKEN); $label->add($span); } $label->add(Text::factory($txLabel)); $divCtrls->add($element); if (NULL != $posLegend) { if (!$posLegend instanceof ElementAbstract) { $posLegend = Text::factory(' ' . $posLegend); } $divCtrls->add($posLegend); } if ($returnCreatedElem) { return $divCtlGroup; } $this->_container->add($divCtlGroup); return $this; }
/** * cria campo dentro de um controlgroup * * @param stdClass * @return Div * */ private function _createControlGroupInput(\stdClass $param) { $group = new Div(); $group->addClass('control-group'); $label = new Label($param->label); $label->addClass('control-label'); $input = new Input($param->name, $param->type); if (isset($param->required) && TRUE == $param->required) { $span = new Span(); $span->addClass(Input::T_INPUT_REQUIRED_CLASS)->add(new Text(Input::T_INPUT_REQUIRED_MASK))->title = $this->safeToggle($param, 'requiredTitle', Input::T_INPUT_REQUIRED_TITLE); $label->add($span); $input->addClass(Input::T_INPUT_REQUIRED_CLASS); } $divInput = new Div(); $divInput->addClass('controls')->add($input); // $label->add($divInput); $group->add($label)->add($divInput); return $group; }
/** * cria textarea * * @param stdClass $param * @return TextArea * */ public function textarea(\stdClass $param) { $element = $this->_component->textarea($param); if (isset($param->label)) { $controlGroup = Div::factory()->addClass('control-group'); $label = new Label($param->label); $label->addClass('control-label'); if (isset($param->required)) { $element->addClass('required'); $span = Span::factory()->addClass('required'); $span->setContent('*' . ' '); # label->span $label->add($span); } # div.control-group -> label $controlGroup->add($label); $element = $controlGroup->add(Div::factory()->addClass('controls')->add($element)); } return $element; }