dockingController.h

Go to the documentation of this file.
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