/**
  * @return void
  */
 public function initFilter()
 {
     $this->objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
     /** @var \TYPO3\CMS\Extbase\Object\ObjectManager $objectManager */
     $this->treeContext = $this->objectManager->get('Tx_PtExtbase_Tree_TreeContext');
     $this->treeContext->setRespectEnableFields($this->treeRespectEnableFields);
     $this->buildTree();
 }
 /**
  * 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);
 }