00001
00002
00003
00004 #ifndef BALL_VIEW_DIALOGS_FDPBDIALOG_H
00005 #define BALL_VIEW_DIALOGS_FDPBDIALOG_H
00006
00007 #ifndef BALL_COMMON_GLOBAL_H
00008 # include <BALL/COMMON/global.h>
00009 #endif
00010
00011 #ifdef BALL_COMPILER_MSVC
00012 # include <BALL/VIEW/UIC/ui_FDPBDialog.h>
00013 #else
00014 # include <BALL/VIEW/UIC/FDPBDialogData.h>
00015 #endif
00016
00017
00018 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
00019 #include <BALL/VIEW/KERNEL/modularWidget.h>
00020 #endif
00021
00022 #ifndef BALL_VIEW_KERNEL_PREFERENCESENTRY
00023 # include <BALL/VIEW/KERNEL/preferencesEntry.h>
00024 #endif
00025
00026 #ifndef BALL_SOLVATION_POISSONBOLTZMANN_H
00027 #include <BALL/SOLVATION/poissonBoltzmann.h>
00028 #endif
00029
00030 #ifndef BALL_MOLMEC_COMMON_RADIUSRULEPROCESSOR_H
00031 #include <BALL/MOLMEC/COMMON/radiusRuleProcessor.h>
00032 #endif
00033
00034 #ifndef BALL_MOLMEC_COMMON_CHARGERULEPROCESSOR_H
00035 #include <BALL/MOLMEC/COMMON/chargeRuleProcessor.h>
00036 #endif
00037
00038 #ifndef BALL_STRUCTURE_DEFAULTPROCESSORS_H
00039 #include <BALL/STRUCTURE/defaultProcessors.h>
00040 #endif
00041
00042 class QLineEdit;
00043
00044 namespace BALL
00045 {
00046 namespace VIEW
00047 {
00048
00049 class CalculateFDPBThread;
00050
00054 class BALL_VIEW_EXPORT FDPBDialog
00055 : public QDialog,
00056 public Ui_FDPBDialogData,
00057 public ModularWidget,
00058 public PreferencesEntry
00059 {
00060 friend class CalculateFDPBThread;
00061
00062 Q_OBJECT
00063
00064 public:
00065
00066 BALL_EMBEDDABLE(FDPBDialog,ModularWidget)
00067
00068
00069 FDPBDialog(QWidget* parent = 0, const char* name = "FDPBDialog",
00070 bool modal = FALSE, Qt::WFlags fl = 0);
00071
00073 virtual ~FDPBDialog();
00074
00076 bool calculate();
00077
00079 FDPB& getFDPBSolver()
00080 {return fdpb_;}
00081
00083 void setSystem(System* system)
00084 {system_ = system;}
00085
00087 System* getSystem()
00088 { return system_;}
00089
00090
00091 public slots:
00092
00094 virtual void browseChargesData();
00095
00097 virtual void browseChargesRules();
00098
00100 virtual void browseRadiiData();
00101
00103 virtual void browseRadiiRules();
00104
00106 virtual void cancelPressed();
00107
00109 virtual void okPressed();
00110
00112 virtual void resetPressed();
00113
00114 protected:
00115
00116 void calculate_();
00117 void selectFile_(QLineEdit& lineedit);
00118 void applyValues_();
00119 bool applyProcessors_();
00120
00121 FDPB fdpb_;
00122 Options options_;
00123 System* system_;
00124
00125 RadiusRuleProcessor radius_rule_processor_;
00126 ChargeRuleProcessor charge_rule_processor_;
00127 AssignRadiusProcessor radius_processor_;
00128 AssignChargeProcessor charge_processor_;
00129 CalculateFDPBThread* thread_;
00130 };
00131
00132 } }
00133 #endif