00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: dockingController.h,v 1.2.12.2 2007/03/26 07:26:29 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_WIDGETS_DOCKINGCONTROLLER_H 00008 #define BALL_WIDGETS_DOCKINGCONTROLLER_H 00009 00010 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H 00011 # include <BALL/VIEW/KERNEL/modularWidget.h> 00012 #endif 00013 00014 #ifndef BALL_VIEW_DIALOGS_DOCKDIALOG_H 00015 # include <BALL/VIEW/DIALOGS/dockDialog.h> 00016 #endif 00017 00018 namespace BALL 00019 { 00020 class ConformationSet; 00021 class DockingAlgorithm; 00022 class EnergeticEvaluation; 00023 00024 namespace VIEW 00025 { 00026 class DockProgressDialog; 00027 class DockResultDialog; 00028 class DockingThread; 00029 00037 class BALL_VIEW_EXPORT DockingController 00038 : public QWidget, 00039 public ModularWidget 00040 { 00041 Q_OBJECT 00042 00043 public: 00044 00045 BALL_EMBEDDABLE(DockingController, ModularWidget) 00046 00047 00048 00049 00052 00053 00059 enum Algorithm 00060 { 00061 GEOMETRIC_FIT = 1 00062 }; 00063 00069 enum ScoringFunction 00070 { 00071 DEFAULT = 0, 00072 AMBER_FF, 00073 MMFF94_FF, 00074 SELECTED_FF, 00075 RANDOM 00076 }; 00077 00079 00082 00084 DockingController(QWidget* parent = 0, const char* name = 0); 00085 00087 virtual ~DockingController(); 00088 00090 const DockingController& operator =(const DockingController& dock_controller); 00091 00093 00096 00105 virtual void initializeWidget(MainControl& main_control); 00106 00112 virtual void fetchPreferences(INIFile& file); 00113 00119 virtual void writePreferences(INIFile& file); 00120 00125 virtual void checkMenu (MainControl& main_control); 00126 00131 virtual void onNotify(Message *message); 00132 00134 00139 virtual void runDocking(bool is_redock); 00140 00142 DockDialog& getDockDialog() ; 00143 00145 virtual EnergeticEvaluation* createEvaluationMethod(Index method); 00146 00147 public slots: 00148 00152 void startDocking(); 00153 00154 protected: 00155 00165 bool runScoring_(ConformationSet* conformation_set); 00166 00167 private: 00168 00173 DockingController(const DockingController& dock_controller); 00174 00177 DockDialog dock_dialog_; 00178 DockResultDialog* dock_result_dialog_; 00179 DockProgressDialog* progress_dialog_; 00180 00182 DockingAlgorithm* dock_alg_; 00183 00185 QAction* action_; 00186 00187 DockingThread* thread_; 00188 }; 00189 } // end of namespace View 00190 } // end of namespace BALL 00191 #endif