00001
00002
00003
00004
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 }
00190 }
00191 #endif