/**
  * @param $repository
  * @param $nameSpace
  * @return Tx_PtExtbase_Tree_Tree
  */
 public function buildTree($repository, $nameSpace)
 {
     $treeRepositoryBuilder = Tx_PtExtbase_Tree_TreeRepositoryBuilder::getInstance();
     $treeRepositoryBuilder->setNodeRepositoryClassName($repository);
     $treeRepository = $treeRepositoryBuilder->buildTreeRepository();
     return $treeRepository->loadTreeByNamespace($nameSpace);
 }
 /**
  * Returns singleton instance of this class
  *
  * @return Tx_PtExtbase_Tree_TreeRepositoryBuilder
  */
 public static function getInstance()
 {
     if (self::$instance === null) {
         $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
         self::$instance = $objectManager->get('Tx_PtExtbase_Tree_TreeRepositoryBuilder');
     }
     return self::$instance;
 }
 /**
  * @return Tx_PtExtbase_Tree_Tree
  */
 protected function buildTree()
 {
     $treeRepositoryBuilder = Tx_PtExtbase_Tree_TreeRepositoryBuilder::getInstance();
     $treeRepositoryBuilder->setNodeRepositoryClassName($this->treeNodeRepository);
     $treeRepository = $treeRepositoryBuilder->buildTreeRepository();
     // TODO this method does not exist in current treeRepository!
     if (method_exists($treeRepository, 'setRespectEnableFields')) {
         $treeRepository->setRespectEnableFields($this->treeRespectEnableFields);
     }
     $this->tree = $treeRepository->loadTreeByNamespace($this->treeNamespace);
 }
 /**
  * Initializes the current action
  *
  * @return void
  */
 protected function initializeAction()
 {
     if (!TYPO3_AJAX) {
         die;
     }
     $this->restoreTreeSettingsFromSession();
     $treeRepositoryBuilder = Tx_PtExtbase_Tree_TreeRepositoryBuilder::getInstance();
     $treeRepositoryBuilder->setNodeRepositoryClassName($this->nodeRepositoryClassName);
     $this->treeRepository = $treeRepositoryBuilder->buildTreeRepository();
     $this->nodeRepository = $this->objectManager->get($this->nodeRepositoryClassName);
 }
 /**
  * Get Tree nodes as JSON array
  *
  * @return string JSON array
  */
 protected function getTreeNodes()
 {
     $treeRepositoryBuilder = Tx_PtExtbase_Tree_TreeRepositoryBuilder::getInstance();
     $treeRepositoryBuilder->setNodeRepositoryClassName($this->arguments['repository']);
     $treeRepository = $treeRepositoryBuilder->buildTreeRepository();
     if ($this->arguments['respectEnableFields']) {
         $this->treeContext->setRespectEnableFields(true);
     } else {
         $this->treeContext->setRespectEnableFields(false);
     }
     $tree = $treeRepository->loadTreeByNamespace($this->arguments['namespace']);
     if (isset($this->arguments['restrictedDepth'])) {
         $tree->setRestrictedDepth($this->arguments['restrictedDepth']);
         $tree->setRespectRestrictedDepth(true);
     }
     $arrayWriterVisitor = $this->objectManager->get('Tx_PtExtbase_Tree_ExtJsJsonWriterVisitor');
     $arrayWriterVisitor->setMultipleSelect($this->arguments['multiple']);
     $arrayWriterVisitor->setSelection($this->getSelection());
     $jsonTreeWriter = $this->objectManager->get('Tx_PtExtbase_Tree_JsonTreeWriter', array($arrayWriterVisitor), $arrayWriterVisitor);
     return $jsonTreeWriter->writeTree($tree);
 }
 /**
  * Initializes tree repository builder
  */
 protected function initTreeRepositoryBuilder()
 {
     if ($this->nodeRepositoryClassName !== null && $this->nodeRepositoryClassName != '') {
         $treeRepositoryBuilder = Tx_PtExtbase_Tree_TreeRepositoryBuilder::getInstance();
         $treeRepositoryBuilder->setNodeRepositoryClassName($this->nodeRepositoryClassName);
         $treeRepositoryBuilder->setRestrictedDepth($this->restrictedDepth);
     }
 }