/**
  * search tree nodes for search combo
  * 
  * @param Tinebase_Model_Tree_Node_Filter $_filter
  * @param Tinebase_Record_Interface $_pagination
  * 
  * @return Tinebase_Record_RecordSet of Tinebase_Model_Tree_Node
  */
 protected function _searchNodesRecursive($_filter, $_pagination)
 {
     $files = new Tinebase_Record_RecordSet('Tinebase_Model_Tree_Node');
     $ret = new Tinebase_Record_RecordSet('Tinebase_Model_Tree_Node');
     $folders = $this->_getRootNodes();
     $folders->merge($this->_getOtherUserNodes());
     while ($folders->count()) {
         $node = $folders->getFirstRecord();
         $filter = new Tinebase_Model_Tree_Node_Filter(array(array('field' => 'path', 'operator' => 'equals', 'value' => $node->path)), 'AND');
         $result = $this->search($filter);
         $folders->merge($result->filter('type', Tinebase_Model_Tree_Node::TYPE_FOLDER));
         if ($_filter->getFilter('query') && $_filter->getFilter('query')->getValue()) {
             $files->merge($result->filter('type', Tinebase_Model_Tree_Node::TYPE_FILE)->filter('name', '/^' . $_filter->getFilter('query')->getValue() . './i', true));
         } else {
             $files->merge($result->filter('type', Tinebase_Model_Tree_Node::TYPE_FILE));
         }
         $folders->removeRecord($node);
     }
     $this->_recursiveSearchTotalCount = $files->count();
     $ret = $files->sortByPagination($_pagination)->limitByPagination($_pagination);
     return $ret;
 }