/**
  * Vytvori pole prvku option ze stromu
  * @param Tree $tree
  * @return array
  */
 public function createOptions(Tree $tree)
 {
     $items = [];
     $arrayTree = $tree->getTree();
     $this->fill($items, $arrayTree);
     return $items;
 }
 /**
  * @param \Nette\Application\UI\ITemplate $template
  */
 protected function prepareTemplate(ITemplate $template)
 {
     parent::prepareTemplate($template);
     $this->registerHelper($template);
     $template->menu = $this->tree->getTree();
     $template->currentPosition = $this->getCurrentPositionMap();
 }
 /**
  * @param int $currentId
  * @return array
  */
 private function buildMap($currentId)
 {
     $map = $this->tree->getMap();
     $currentMap = [];
     while ($currentId) {
         array_unshift($currentMap, $currentId);
         $currentId = $map[$currentId]['parentId'];
     }
     return $currentMap;
 }
 /**
  * @param int $id
  * @return array
  * @throws \Nette\InvalidStateException
  */
 public function findBranch($id)
 {
     $item = $this->findCurrent($id);
     if ($item['parentId']) {
         return $this->findCurrent($item['parentId'])['children'];
     } else {
         return $this->tree->getTree();
     }
 }
 /**
  * @param Tree $tree
  * @return array
  */
 public function convert(Tree $tree)
 {
     $items = [];
     $this->fillItems($items, $tree->getTree(), 0);
     return $items;
 }