![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtCommandAssignmentWidget.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrvUtil/signalslib.h> 00017 00018 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00019 #include <vrfGuiCoreQt/DtCommandAssignmentWidgetInterface.h> 00020 00021 #include <QtGui/QWidget> 00022 00023 class QHBoxLayout; 00024 class QVBoxLayout; 00025 class QGroupBox; 00026 class QCheckBox; 00027 class QPushButton; 00028 class QSpacerItem; 00029 00030 namespace makVrv 00031 { 00032 class DtDe; 00033 class DtSimObjectEntry; 00034 } 00035 00036 namespace makVrf 00037 { 00038 class DtCommandAssignmentWidgetLogic; 00039 class DtCommandDialogExtensionInterface; 00040 class DtVrfFilteredListView; 00041 class DtSimCommandObjectWrapper; 00042 00044 class DT_DLL_VRFGUICOREQT DtCommandAssignmentWidget 00045 : public QWidget 00046 , public DtCommandAssignmentWidgetInterface 00047 { 00048 Q_OBJECT 00049 00050 public: 00052 DtCommandAssignmentWidget( makVrv::DtDe& de, DtCommandDialogExtensionInterface*, QWidget* parent = 0, 00053 Qt::WindowFlags flags = Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint); 00054 00056 virtual ~DtCommandAssignmentWidget(); 00057 virtual void run(const std::vector<makVrv::DtSimEntry*>&); 00058 00060 virtual void setupUi(const std::vector<makVrv::DtSimEntry*>&, const DtSimStatement* stmt = NULL); 00061 00063 virtual void connectSignals(const std::vector<makVrv::DtSimEntry*>&); 00064 00069 virtual void selectionChanged(const QString & selection); 00070 00071 protected: 00072 00073 void setPartOfPlan(bool b) 00074 { 00075 myPartOfPlan = b; 00076 } 00077 00078 QWidget* widget() 00079 { 00080 return this; 00081 } 00082 00083 virtual void setAllowBroadcast(bool); 00084 virtual bool broadcasting() const; 00085 virtual void setBroadcasting(bool); 00086 virtual void enableEntitySelectionWidget(bool); 00087 00088 virtual void addFilter(const DtVrfSelectionFilter* filter); 00089 virtual void setSelectedName(const QString& s); 00090 virtual QString selectedName() const; 00091 virtual void selectFilter(int); 00092 00093 virtual void setOKEnabled(bool); 00094 virtual bool extensionValid() const; 00095 00099 virtual void commandActivated(const DtSimTask&, const std::vector<std::string>&, bool immediate); 00100 virtual void commandActivated(const DtSimCommandObjectWrapper&, bool immediate); 00101 00102 protected: 00103 virtual void slot_objectAboutToBeRemoved(makVrv::DtSimObjectEntry&); 00104 00105 virtual void attachExtension(DtCommandDialogExtensionInterface*, const DtSimStatement* stmt = NULL); 00106 virtual void detachExtension(); 00107 virtual DtCommandDialogExtensionInterface* extension(); 00108 00109 virtual void setPickMode(bool); 00110 00112 virtual bool editStatement(const std::vector<makVrv::DtSimEntry*>&, const DtSimStatement*); 00113 virtual std::vector<DtVrfObjectListViewItem::DtVrfObjectState> selectedObjects() const; 00114 00116 virtual void setAllowObjectSelection(bool b); 00117 00118 virtual bool canSelectObjects() const; 00119 00123 virtual bool wantsSelectionOfObjectInCommandMode() const; 00124 00125 virtual bool valid() const; 00126 00128 virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>&); 00129 00130 protected slots: 00132 virtual void onBroadcastChanged(); 00133 00135 virtual void onCancel(); 00136 00138 virtual void onPickOK(); 00139 00140 const std::vector<makVrv::DtSimEntry*>& connectedTo() const 00141 { 00142 return myConnectedTo; 00143 } 00144 00145 protected: 00146 makVrv::DtDe& myDe; 00147 DtCommandAssignmentWidgetLogic* myLogic; 00148 bool myPartOfPlan; 00149 std::vector<makVrv::DtSimEntry*> myConnectedTo; 00150 DtSimTask* myImmediateTask; 00151 std::vector<std::string> myImmediateNames; 00152 DtSimCommandObjectWrapper* myCommandObjectWrapper; 00153 DtCommandDialogExtensionInterface* myInitialExtension; 00154 00155 public: 00156 DtCommandDialogExtensionInterface* myExtension; 00157 QWidget* myOriginalExtensionParent; 00158 QCheckBox* myBroadcast; 00159 QGroupBox* myEntitySelectionGroupBox; 00160 DtVrfFilteredListView* myEntitySelectionWidget; 00161 QHBoxLayout* myMasterLayout; 00162 QVBoxLayout* myWidgetLayout; 00163 00164 QWidget* myButtonFrame; 00165 QHBoxLayout* myButtonLayout; 00166 QSpacerItem* myButtonSpacer; 00167 QPushButton* myOKButton; 00168 QPushButton* myCancelButton; 00169 }; 00170 }