/**
  * @param \Components\Ui_Panel $panel_
  */
 public function add(Ui_Panel $panel_, $category_ = null)
 {
     $this->m_children[$panel_->name] = $panel_;
     if (null !== $category_) {
         $this->m_categories[$category_][$panel_->name] = $panel_;
     }
     if (null !== $panel_->parent) {
         $panel_->clearId();
     }
     $panel_->parent = $this;
     $panel_->root = $this->root;
     $panel_->scriptlet = $this->scriptlet;
     $panel_->ajaxEnabled = $this->ajaxEnabled;
     $panel_->m_form = $this->m_form;
     $panel_->init();
     $panel_->onRetrieveValue();
     // TODO Trigger validators.
     if ($panel_->m_form && $panel_ instanceof Ui_Panel_Button_Submit && $panel_->hasBeenSubmitted() && $panel_->callback) {
         call_user_func_array($panel_->callback, [$panel_]);
     } else {
         if (null !== $panel_->callback && Ui_Scriptlet::$submittedPanelId === $panel_->id()) {
             call_user_func_array($panel_->callback, [$panel_]);
         }
     }
 }