function &executeCommand()
 {
     global $ilCtrl, $ilTabs, $ilUser, $lng;
     $next_class = $this->ctrl->getNextClass($this);
     $cmd = $this->ctrl->getCmd();
     switch ($next_class) {
         case 'ilobjquestionpoolgui':
             $nodeParts = explode(':', $_GET['cmdNode']);
             $params = array('ref_id' => $_GET['ref_id'], 'calling_test' => $_GET['ref_id'], 'q_id' => $_GET['q_id'], 'cmd' => $_GET['cmd'], 'cmdClass' => $_GET['cmdClass'], 'cmdNode' => $nodeParts[count($nodeParts) - 2] . ':' . $nodeParts[count($nodeParts) - 1], 'baseClass' => 'ilObjQuestionPoolGUI', 'test_express_mode' => '1');
             ilUtil::redirect('ilias.php?' . http_build_query($params, null, '&'));
             break;
         case "ilpageeditorgui":
             if (!$this->getEnableEditing()) {
                 ilUtil::sendFailure($lng->txt("permission_denied"), true);
                 $ilCtrl->redirect($this, "preview");
             }
             $page_editor =& new ilPageEditorGUI($this->getPageObject(), $this);
             $page_editor->setLocator($this->locator);
             $page_editor->setHeader($this->getHeader());
             $page_editor->setPageBackTitle($this->page_back_title);
             $page_editor->setIntLinkReturn($this->int_link_return);
             $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_mode');
             $ret =& $this->ctrl->forwardCommand($page_editor);
             break;
         case '':
         case 'iltestexpresspageobjectgui':
             include_once 'Modules/TestQuestionPool/classes/class.assQuestionGUI.php';
             if ($cmd == 'view') {
                 $cmd = 'showPage';
             }
             $q_gui =& assQuestionGUI::_getQuestionGUI('', $_REQUEST["q_id"]);
             if ($q_gui->object) {
                 $obj = ilObjectFactory::getInstanceByRefId($_REQUEST['ref_id']);
                 $q_gui->object->setObjId($obj->getId());
             }
             $cmds = array('handleToolbarCommand', 'addQuestion', 'questions', 'insertQuestions', 'browseForQuestions', 'filterAvailableQuestions', 'resetfilterAvailableQuestions');
             if (in_array($cmd, $cmds)) {
                 return $this->{$cmd}();
             } elseif ($q_gui->object) {
                 $total = $this->test_object->evalTotalPersons();
                 $this->setOutputMode($total == 0 ? IL_PAGE_EDIT : IL_PAGE_PREVIEW);
                 if ($total != 0) {
                     $link = $ilCtrl->getLinkTargetByClass('ilobjtestgui', "participants");
                     $link = "<a href=\"" . $link . "\">" . $lng->txt("test_has_datasets_warning_page_view_link") . "</a>";
                     ilUtil::sendInfo($lng->txt("test_has_datasets_warning_page_view") . " " . $link);
                 }
                 if (in_array($cmd, array('view', 'showPage')) || $cmd == 'edit' && $this->test_object->evalTotalPersons()) {
                     return $this->showPage();
                 }
                 return parent::executeCommand();
             }
             break;
         default:
             $qtype = $_REQUEST['qtype'];
             $type = ilObjQuestionPool::getQuestionTypeByTypeId($qtype);
             if (!$_GET['q_id']) {
                 $q_gui = $this->addPageOfQuestions(preg_replace('/(.*?)gui/i', '$1', $_GET['sel_question_types']));
                 $q_gui->setQuestionTabs();
                 $ret = $this->ctrl->forwardCommand($q_gui);
                 break;
             }
             $this->ctrl->setReturn($this, "questions");
             include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
             $q_gui =& assQuestionGUI::_getQuestionGUI($type, $_GET["q_id"]);
             if ($q_gui->object) {
                 $obj = ilObjectFactory::getInstanceByRefId($_GET['ref_id']);
                 $q_gui->object->setObjId($obj->getId());
             }
             $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_id');
             $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_mode');
             $q_gui->setQuestionTabs();
             $ret =& $this->ctrl->forwardCommand($q_gui);
             break;
     }
 }