00001 #ifndef _RQT_MRTA_DEFINE_ARCHITECTURE_WIDGET_H_ 00002 #define _RQT_MRTA_DEFINE_ARCHITECTURE_WIDGET_H_ 00003 00004 #include <QWidget> 00005 00006 namespace Ui 00007 { 00008 class DefineArchitectureWidget; 00009 } 00010 00011 namespace mrta 00012 { 00013 class Architecture; 00014 } 00015 00016 namespace rqt_mrta 00017 { 00018 namespace config 00019 { 00020 namespace application 00021 { 00022 class RqtMrtaApplication; 00023 } 00024 00025 namespace architecture 00026 { 00027 class RqtMrtaArchitecture; 00028 } 00029 } 00030 00031 typedef config::application::RqtMrtaApplication RqtMrtaApplicationConfig; 00032 typedef config::architecture::RqtMrtaArchitecture RqtMrtaArchitectureConfig; 00033 00034 class DefineArchitectureWidget : public QWidget 00035 { 00036 friend class DefineArchitectureWizardPage; 00037 Q_OBJECT 00038 public: 00039 DefineArchitectureWidget( 00040 QWidget* parent, RqtMrtaApplicationConfig* application_config = NULL, 00041 RqtMrtaArchitectureConfig* architecture_config = NULL); 00042 virtual ~DefineArchitectureWidget(); 00043 RqtMrtaApplicationConfig* getApplicationConfig() const; 00044 RqtMrtaArchitectureConfig* getArchitectureConfig() const; 00045 void setApplicationConfig(RqtMrtaApplicationConfig* config); 00046 void setArchitectureConfig(RqtMrtaArchitectureConfig* config); 00047 00048 signals: 00049 void changed(); 00050 00051 private: 00052 Ui::DefineArchitectureWidget* ui_; 00053 RqtMrtaApplicationConfig* application_config_; 00054 RqtMrtaArchitectureConfig* architecture_config_; 00055 00056 private slots: 00057 void architectureChanged(); 00058 void setFilterAllocationType(); 00059 void setFilterRobotType(); 00060 void setFilterTaskType(); 00061 void unknownAchitecture(); 00062 void currentArchitectureChanged(mrta::Architecture* architecture); 00063 }; 00064 } 00065 00066 #endif // _RQT_MRTA_DEFINE_ARCHITECTURE_WIDGET_H_