00001 #ifndef _RQT_MRTA_PARAM_ITEM_H_ 00002 #define _RQT_MRTA_PARAM_ITEM_H_ 00003 00004 #include <QList> 00005 #include <QString> 00006 00007 namespace rqt_mrta 00008 { 00009 namespace config 00010 { 00011 class ParamInterface; 00012 class Param; 00013 class Params; 00014 } 00015 class ParamItem 00016 { 00017 public: 00018 ParamItem(config::Param* param, ParamItem* parent = NULL); 00019 ParamItem(config::Params* params, ParamItem* parent = NULL); 00020 ~ParamItem(); 00021 config::ParamInterface* getParam() const; 00022 ParamItem* getParent() const; 00023 size_t getNumChildren() const; 00024 ParamItem* getChild(size_t row) const; 00025 ParamItem* getChild(const QString& full_name) const; 00026 bool isLeaf() const; 00027 int getRow() const; 00028 size_t getNumColumns() const; 00029 QString getFullName() const; 00030 void appendChild(ParamItem* child); 00031 00032 private: 00033 ParamItem* parent_; 00034 QList<ParamItem*> children_; 00035 config::ParamInterface* param_; 00036 }; 00037 } 00038 00039 #endif // _RQT_MRTA_PARAM_ITEM_H_