예제 #1
0
 public function __construct($param)
 {
     $this->isValidType($param->type);
     $this->_nav = new UL();
     $this->_nav->addClass('nav')->addClass('nav-' . $param->type);
     foreach ($param->item as $item) {
         $this->_item = new LI();
         # Menu Dropdown
         if (isset($item['dropdown'])) {
             $divider = new \br\gov\sial\core\output\screen\html\Strong();
             $divider->addClass('caret');
             $link = new Anchor($item['text'] . ' ' . $divider, $item['href']);
             $link->addClass('dropdown-toggle')->attr('data-toggle', 'dropdown');
             $this->_item->add($link);
             $this->_item->addClass('dropdown');
             $this->_dropdown = new UL();
             $this->_dropdown->addClass('dropdown-menu');
             foreach ($item['dropdown'] as $subItem) {
                 $li = new LI();
                 $li->add(new Anchor($subItem['text'], $subItem['href']));
                 $this->_dropdown->add($li);
             }
             $this->_item->add($this->_dropdown);
         } else {
             $this->_item->add(new Anchor($item['text'], $item['href']));
         }
         if ($item['text'] == $param->active) {
             $this->_item->addClass('active');
         }
         $this->_nav->add($this->_item);
     }
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * @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;
 }