00001 //-------------------------------------------------- 00011 //--------------------------------------------------- 00012 00013 #ifndef IMEDGINE_CONFIG_WIDGET_H_ 00014 #define IMEDGINE_CONFIG_WIDGET_H_ 00015 00016 #include <QWidget> 00017 00018 #include <boost/shared_ptr.hpp> 00019 00020 #include "../global/global_definitions.h" 00021 #include "../algorithms/configuration.h" 00022 #include "../exceptions/metadata_not_found_exception.h" 00023 00024 namespace imedgine 00025 { 00026 //-------------------------------------------------- 00047 //-------------------------------------------------- 00048 00049 class ConfigWidget: public QWidget 00050 { 00051 Q_OBJECT 00052 public: 00053 00054 //-------------------------------------------------- 00058 00059 ConfigWidget(QWidget* parent = 0); 00060 00061 //-------------------------------------------------- 00064 00065 ~ConfigWidget(); 00066 00067 //-------------------------------------------------- 00072 00073 void setMetadataForInputDataset(std::string dataset_key, metadata_pointer_type metadata); 00074 00075 //-------------------------------------------------- 00079 00080 void setConfiguration(configuration_pointer_type configuration); 00081 00082 //-------------------------------------------------- 00087 00088 virtual void applyConfiguration() = 0; 00089 00090 //-------------------------------------------------- 00095 00096 configuration_pointer_type getConfiguration() const; 00097 00098 //-------------------------------------------------- 00106 00107 virtual bool showConfiguration() = 0; 00108 00109 00110 protected: 00111 00112 00113 //-------------------------------------------------- 00120 00121 metadata_pointer_type const getMetadataForInputDataset 00122 (std::string dataset_key) const; 00123 00124 configuration_pointer_type configuration_; 00125 00126 private: 00127 00128 metadata_container_type dataset_metadata_; 00129 }; 00130 } // namespace imedgine 00131 #endif 00132