diff --git a/tools/simulator_base.cpp b/tools/simulator_base.cpp index 9096ec0..dfa4600 100644 --- a/tools/simulator_base.cpp +++ b/tools/simulator_base.cpp @@ -11,8 +11,22 @@ std::string Simulator_base::name() const { return p_name; } +bool Simulator_base::is_ui_id_unique(std::string id) const { + // Check if the UI name is unique + for (UI_item* item : p_UI_items) { + if (item->id() == id) { + return false; + } + } + + return true; +} + void Simulator_base::add_UI_item(UI_item* item) { // Add a UI item to the simulator + if (is_ui_id_unique(item->id()) == false) { + throw std::runtime_error("UI item id " + item->id() + " is not unique"); + } p_UI_items_map[item->id()] = item; p_UI_items.push_back(item); } diff --git a/tools/simulator_base.hpp b/tools/simulator_base.hpp index b677024..a510f7a 100644 --- a/tools/simulator_base.hpp +++ b/tools/simulator_base.hpp @@ -10,6 +10,8 @@ class Simulator_base { std::string name() const; + bool is_ui_id_unique(std::string id) const; + void add_UI_item(UI_item* item); json get_UI_items() const;