/** * 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); }
/** * @param object @param * */ public function __construct($param) { $this->_breadcrumb = new UL(); $divider = new Span(' / '); $this->_breadcrumb->addClass('breadcrumb'); $divider->addClass('divider'); $itens = $this->safeToggle($param, 'item', array()); foreach ($itens as $item) { $this->_listItem = new LI(); if (end($itens) == $item) { $link = new Text($item['text']); $this->_listItem->add($link)->addClass('active'); } else { $link = new Anchor($item['text'], $item['href']); $this->_listItem->add($link)->add($divider); } $this->_breadcrumb->add($this->_listItem); } }
/** * Adiciona os elementos que irão compor o buttonBar * * @param stdClass $param * @return ButtonBar * @throws IllegalArgumentException * */ private function _addElements(\stdClass $param = NULL) { foreach ($this->safeToggle($param, 'options', new \stdClass()) as $elm) { if (is_object($elm)) { $type = $elm->type; unset($elm->type); } else { $type = $elm; } IllegalArgumentException::throwsExceptionIfParamIsNull(isset($this->_elements[$type]), self::T_BUTTONBARABSTRACT_INVALID_BUTTON); $property = (object) $this->_elements[$type]; if (is_object($elm)) { foreach ($elm as $prop => $value) { $property->{$prop} = $value; } } switch ($property->element) { case 'button': $button = new Button($property->label, $property->name); break; case 'anchor': $href = isset($property->href) ? $property->href : '#'; $button = new Anchor($property->label, $href); break; } $button->id = $this->genId($property); $button->addClass(array('btn', 'btn-' . $property->name)); if (isset($property->type)) { $button->attr('type', $property->type); } if (isset($property->icon)) { $span = new Span(); $span->addClass($property->icon); $button->add($span); } if (isset($param->primary) && $param->primary == $property->name) { $button->addClass('btn-primary'); if (isset($property->icon)) { $span->addClass('icon-white'); } } $this->_buttonBar->add($button)->add(new Text(' ')); } return $this; }
/** * Barra de botões de ações. * * @param stdClass $config * @return Div * @throws IllegalArgumentException * */ public function buttonbar(\stdClass $config) { $elemnts = array('first' => array('label' => 'primeiro', 'name' => 'first', 'icon' => 'icon-fast-backward'), 'prev' => array('label' => 'anterior', 'name' => 'previous', 'icon' => 'icon-chevron-left'), 'next' => array('label' => 'próximo', 'name' => 'next', 'icon' => 'icon-chevron-right'), 'last' => array('label' => 'último', 'name' => 'last', 'icon' => 'icon-fast-forward'), 'save' => array('label' => 'salvar', 'name' => 'save', 'icon' => 'icon-download-alt'), 'edit' => array('label' => 'alterar', 'name' => 'edit', 'icon' => 'icon-pencil'), 'complete' => array('label' => 'concluir', 'name' => 'complete', 'icon' => 'icon-ok'), 'abort' => array('label' => 'anterior', 'name' => 'about', 'icon' => 'icon-remove'), 'cancel' => array('label' => 'cancelar', 'name' => 'cancel', 'icon' => 'icon-ban-circle'), 'delete' => array('label' => 'excluir', 'name' => 'delete', 'icon' => 'icon-trash')); $buttonbar = new Div(); $buttonbar->addClass('form-actions'); foreach ($config->elements as $elm) { IllegalArgumentException::throwsExceptionIfParamIsNull(isset($elemnts[$elm]), 'botão indisponível'); $property = (object) $elemnts[$elm]; $button = $this->button($property); $span = new Span(); $span->addClass($property->icon); $button->add($span); $buttonbar->add($button); } return $buttonbar; }
/** * @return ElementAbstract * */ public function controllButton($col) { $btnGroup = new Div(); $btnGroup->addClass(array('btn-group', 'grid-column-btn-group'))->attr('id', $col); if ($this->_canEdit) { $anchor = new Anchor(); $anchor->addClass('edit'); $span = new Span(); $span->addClass('icon-pencil'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } if ($this->_canDetail) { $anchor = new Anchor(); $anchor->addClass('detail'); $span = new Span(); $span->addClass('icon-eye-open'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } if ($this->_canChangeStatus) { $anchor = new Anchor(); $anchor->addClass('status'); $span = new Span(); $span->addClass('icon-off'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } if ($this->_canDelete) { $anchor = new Anchor(); $anchor->addClass('delete'); $span = new Span(); $span->addClass('icon-trash'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } if ($this->_canPrint) { $anchor = new Anchor(); $anchor->addClass('print'); $span = new Span(); $span->addClass('icon-print'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } if ($this->_canExonerate) { $anchor = new Anchor(); $anchor->addClass('exonerate'); $span = new Span(); $span->addClass('icon-exonerate'); $anchor->setContent($span); $anchor->addClass(array('btn', 'btn-mini')); $btnGroup->add($anchor); } return $btnGroup; }
/** * 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; }