00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _VFN_WX_GLOBALOPTIM_OBJ_H_
00013 #define _VFN_WX_GLOBALOPTIM_OBJ_H_
00014
00015 #include "wxCryst/wxCryst.h"
00016 namespace ObjCryst
00017 {
00018 class WXGlobalOptimObj;
00019 }
00020 #include "RefinableObj/GlobalOptimObj.h"
00021 namespace ObjCryst
00022 {
00023 class WXGlobalOptimRunThread;
00024
00026 class WXGlobalOptimObj: public WXCrystObj
00027 {
00028 public:
00029 WXGlobalOptimObj(wxWindow *parent, GlobalOptimObj*);
00030 virtual void CrystUpdate();
00032 virtual void UpdateDisplayNbTrial();
00033 virtual bool OnChangeName(const int id);
00034 virtual void OnSave();
00035 virtual void OnLoad();
00037 virtual void OnAddRefinedObject();
00039 virtual void AddRefinedObject(RefinableObj &obj);
00041 virtual void OnAddCostFunction();
00043 virtual void AddCostFunction(RefinableObj &obj,const int costFuncNum);
00044 virtual void OnRunOptimization();
00045 virtual void OnStopOptimization();
00046 private:
00047 GlobalOptimObj *mpGlobalOptimObj;
00048 WXCrystMenuBar* mpMenuBar;
00049 WXGlobalOptimRunThread *mpGlobalOptimRunThread;
00051 long mNbTrial;
00052 WXFieldPar<long> *mpWXFieldNbTrial;
00053 DECLARE_EVENT_TABLE()
00054 };
00055
00057 class WXGlobalOptimRunThread: public wxThread
00058 {
00059 public:
00060 WXGlobalOptimRunThread(GlobalOptimObj *globalOptObj,long &nbTrial);
00061
00062 virtual void *Entry();
00063 virtual void OnExit();
00064 private:
00065 GlobalOptimObj *mpGlobalOptObj;
00067 long *mpNbTrial;
00068 };
00069
00070
00071 }
00072
00073 #endif //_VFN_WX_GLOBALOPTIM_OBJ_H_