![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrfTaskSetDialogManager.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00017 #include <vrvUtil/DtVirtualBaseClass.h> 00018 00019 #include <vrvUtil/signalslib.h> 00020 00021 #include <QtCore/QObject> 00022 00023 namespace makVrv 00024 { 00025 class DtDe; 00026 class DtSimEntry; 00027 } 00028 00029 class QWidget; 00030 class DtSimStatement; 00031 00032 namespace makVrf 00033 { 00034 class DtTaskSetDialogInterface; 00035 class DtVrfTaskSetDialogCreator; 00036 class DtVrfTaskSetDialogManager; 00037 class DtVrfTaskSetAction; 00038 class DtCommandAssignmentWidgetInterface; 00039 class DtCommandAssignmentWidget; 00040 class DtCommandDialogExtensionInterface; 00041 00042 class DT_DLL_VRFGUICOREQT DtVrfTaskSetDialogSignalHandler : public QObject 00043 { 00044 Q_OBJECT 00045 00046 public: 00047 DtVrfTaskSetDialogSignalHandler(makVrv::DtDe&); 00048 virtual ~DtVrfTaskSetDialogSignalHandler(); 00049 00050 virtual void connectSignals(DtTaskSetDialogInterface*); 00051 virtual void disconnectSignals(DtTaskSetDialogInterface*); 00052 00053 virtual void connectSignals(DtCommandAssignmentWidgetInterface*); 00054 virtual void disconnectSignals(DtCommandAssignmentWidget*); 00055 00056 public: 00058 boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogDestroyed; 00059 00061 boost::signal<void (DtCommandAssignmentWidget*)> signal_commandDialogDestroyed; 00062 00063 protected slots: 00064 virtual void onDialogDestroyed(); 00065 virtual void onCommandDialogDestroyed(); 00066 00067 protected: 00068 bool myFirstCreate; 00069 makVrv::DtDe& myDe; 00070 }; 00071 00073 class DT_DLL_VRFGUICOREQT DtVrfTaskSetDialogManager : public makVrv::DtVirtualBaseClass 00074 { 00075 typedef std::map<int, DtVrfTaskSetDialogCreator*> DtVrfTaskSetDialogCreatorMap; 00076 00077 public: 00079 DtVrfTaskSetDialogManager(makVrv::DtDe&); 00080 00082 virtual ~DtVrfTaskSetDialogManager(); 00083 00085 static DtVrfTaskSetDialogManager& instance(makVrv::DtDe& de); 00086 00087 public: 00091 virtual bool processDialogFor(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction, 00092 const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan = false); 00093 00096 virtual DtCommandAssignmentWidgetInterface* processCommandActionDialog(int menuItemType, QWidget* parent, 00097 DtVrfTaskSetAction* forAction, const std::vector<makVrv::DtSimEntry*>& data, bool partOfPlan = false); 00098 00099 bool dialogInProgress() const 00100 { 00101 return myDialogInProgress; 00102 } 00103 00106 virtual int nextAvailableId() const; 00107 00108 public: 00111 virtual void addDialogCreator(int menuItemType, DtVrfTaskSetDialogCreator*); 00112 00114 virtual bool removeDialogCreator(int menuItemType); 00115 00117 virtual bool hasDialogCreator(int menuItemType); 00118 00120 virtual void removeAllDialogCreators(); 00121 00123 virtual bool statementIsEditable(const DtSimStatement*) const; 00124 00127 virtual DtTaskSetDialogInterface* createDialogFor(int type, const DtSimStatement* stmt, QWidget* parent, 00128 bool registerDialog = true); 00129 virtual DtTaskSetDialogInterface* createDialogFor(const DtSimStatement* stmt, QWidget* parent, bool registerDialog = true); 00130 00132 virtual DtCommandAssignmentWidgetInterface* createCommandDialogFor(const DtSimStatement* stmt, QWidget* parent); 00133 virtual DtCommandAssignmentWidgetInterface* createCommandDialogFor(int menuItemType, QWidget* parent); 00134 00136 virtual int typeFromStatement(const DtSimStatement* stmt) const; 00137 00139 virtual DtCommandAssignmentWidgetInterface* createCommandActionDialog(QWidget*, DtCommandDialogExtensionInterface*); 00140 00141 protected: 00142 virtual void slot_onDialogDestroyed(DtTaskSetDialogInterface*); 00143 virtual void slot_onCommandDialogDestroyed(DtCommandAssignmentWidget*); 00144 00145 protected: 00148 virtual void prepDialog(DtTaskSetDialogInterface*, DtVrfTaskSetAction* forAction, bool partOfPlan); 00149 virtual void prepDialog(DtCommandAssignmentWidgetInterface*, DtVrfTaskSetAction* forAction, bool partOfPlan); 00150 00151 public: 00153 boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogCreated; 00154 00156 boost::signal<void (DtCommandAssignmentWidgetInterface*)> signal_commandDialogCreated; 00157 00159 boost::signal<void (DtCommandAssignmentWidget*)> signal_commandDialogDestroyed; 00160 00162 boost::signal<void (DtTaskSetDialogInterface*)> signal_dialogDestroyed; 00163 00164 protected: 00165 makVrv::DtDe& myDe; 00166 DtVrfTaskSetDialogCreatorMap myDialogCreatorMap; 00167 DtVrfTaskSetDialogSignalHandler myTaskSetDialogSignalHandler; 00168 bool myDialogInProgress; 00169 }; 00170 }