![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSetAttributesDialog.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00017 #include <vrvUtil/signalslib.h> 00018 #include <vrfGuiCoreQt/DtTaskSetDialogInterface.h> 00019 #include <vrfGuiCore/entityMapperKey.h> 00020 00021 #include <QtCore/QHash> 00022 00023 class QHBoxLayout; 00024 class QVBoxLayout; 00025 class QPushButton; 00026 class QComboBox; 00027 class QGridLayout; 00028 class QLabel; 00029 00030 namespace makVrv 00031 { 00032 struct DtEntityState; 00033 } 00034 00035 namespace makVrf 00036 { 00037 class DtAttributeValueInfo; 00038 class DtAttributesManager; 00039 class DtAttributeInfo; 00040 00041 class DT_DLL_VRFGUICOREQT DtSetAttributesDialog : public DtTaskSetDialogInterface 00042 { 00043 Q_OBJECT 00044 00045 public: 00046 //CTOR 00047 DtSetAttributesDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0); 00048 00049 //DTOR 00050 virtual ~DtSetAttributesDialog(); 00051 00052 virtual void run(const std::vector<makVrv::DtSimEntry*>&); 00053 00055 virtual void setInvalid(); 00056 bool valid() const 00057 { 00058 return (myInvalidLabel == 0); 00059 } 00060 00061 virtual void setValid(); 00062 00063 const QHash<int, QComboBox*>& comboBoxes() const 00064 { 00065 return myComboBoxes; 00066 } 00067 00069 virtual void clear(); 00070 00071 protected: 00073 virtual void setupGui(); 00074 00075 protected slots: 00076 virtual void onCancel(); 00077 virtual void onApply(); 00078 virtual void onOk(); 00079 00080 public: 00081 virtual QHBoxLayout* createAttributeCombo(const DtAttributeValueInfo& info); 00082 virtual void createAttributeCombo(const DtAttributeValueInfo& info, int iRow, int iCol); 00083 00084 virtual void modifyComboBox(const DtAttributeValueInfo& info, QComboBox* box); 00085 00086 public: 00087 virtual void setupInitialValues(const DtAttributesManager*, 00088 const std::vector<makVrv::DtSimEntry*>&); 00089 virtual void setupGui(const std::vector<makVrv::DtSimEntry*>&); 00090 00091 protected: 00092 virtual void slot_closeDialog(); 00093 virtual void slot_applyAttributes(); 00094 00096 virtual int value(makVrv::DtSimEntry*) const = 0; 00097 00098 virtual DtEntityMapperKey entityType(makVrv::DtSimEntry*) const; 00099 virtual int attributeValueFromDialog() const; 00100 virtual void setAttributes(const std::vector<makVrv::DtSimEntry*>& data, int attributeValue); 00101 00102 virtual void sendRequest() = 0; 00103 00104 protected: 00105 int myAttributesPerRow; 00106 DtAttributeInfo* myAttributeInfo; 00107 const DtAttributesManager* myAttributesManager; 00108 00109 public: 00110 QHBoxLayout* myButtonLayout; 00111 QVBoxLayout* myMasterLayout; 00112 QPushButton* myApplyButton; 00113 QPushButton* myOKButton; 00114 QPushButton* myCancelButton; 00115 QGridLayout* myGridLayout; 00116 00117 QWidget* myAttributeCanvas; 00118 QLabel* myInvalidLabel; 00119 00120 protected: 00121 QHash<int, QComboBox*> myComboBoxes; 00122 }; 00123 }