/**
  * 
  * @internal revisions
  * 20121110 - TICKET 5341
  */
 private function init_filter_toplevel_testsuite()
 {
     switch ($this->mode) {
         case 'edit_mode':
         default:
             if (!$this->testproject_mgr) {
                 $this->testproject_mgr = new testproject($this->db);
             }
             $itemSet = $this->testproject_mgr->get_first_level_test_suites($this->args->testproject_id, 'smarty_html_options');
             break;
         case 'execution_mode':
             if (!$this->testplan_mgr) {
                 $this->testplan_mgr = new testplan($this->db);
             }
             $itemSet = $this->testplan_mgr->get_testsuites($this->args->testplan_id, array('output' => 'smarty_html_options'));
             break;
     }
     $key = 'filter_toplevel_testsuite';
     $selection = $this->args->{$key};
     if (!$selection || $this->args->reset_filters) {
         $selection = null;
     } else {
         $this->do_filtering = true;
     }
     // this filter should only be visible if there are any top level testsuites
     $this->filters[$key] = null;
     if ($itemSet) {
         $this->filters[$key] = array('items' => array(0 => ''), 'selected' => $selection, 'exclude_branches' => array());
         foreach ($itemSet as $id => $name) {
             $this->filters[$key]['items'][$id] = $name;
             if ($selection && $id != $selection) {
                 $this->filters[$key]['exclude_branches'][$id] = 'exclude_me';
             }
         }
         // Important: This is the only case in which active_filters contains the items
         // which have to be deleted from tree, instead of the other way around.
         $this->active_filters[$key] = $this->filters[$key]['exclude_branches'];
     } else {
         $this->active_filters[$key] = null;
     }
 }