From d5e5adbad49f19fdf2aefa9e491c66dbeac2a86d Mon Sep 17 00:00:00 2001 From: Julien Malik <julien.malik@c-s.fr> Date: Sun, 12 Jun 2011 09:08:45 +0200 Subject: [PATCH] ENH: add SetValue(std::string) for choice --- Code/Core/otbWrapperChoiceParameter.cxx | 22 ++++++++++++++++++++-- Code/Core/otbWrapperChoiceParameter.h | 5 ++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Code/Core/otbWrapperChoiceParameter.cxx b/Code/Core/otbWrapperChoiceParameter.cxx index 3209325f9d..ad9c269ede 100644 --- a/Code/Core/otbWrapperChoiceParameter.cxx +++ b/Code/Core/otbWrapperChoiceParameter.cxx @@ -88,7 +88,6 @@ ChoiceParameter::GetNbChoices( void ) return m_ChoiceList.size(); } -/** Set any value */ void ChoiceParameter::SetValue(unsigned int v) { @@ -98,7 +97,26 @@ ChoiceParameter::SetValue(unsigned int v) this->Modified(); } -/** Return any value */ +void +ChoiceParameter::SetValue(std::string choiceKey) +{ + ChoiceList::iterator it = m_ChoiceList.begin(); + + unsigned int i = 0; + for (it = m_ChoiceList.begin(); it != m_ChoiceList.end(); ++it) + { + if ( it->m_Key == choiceKey ) + { + m_CurrentChoice = i; + this->Modified(); + return; + } + ++i; + } + + itkExceptionMacro(<< "Cannot find " << choiceKey); +} + unsigned int ChoiceParameter::GetValue() { diff --git a/Code/Core/otbWrapperChoiceParameter.h b/Code/Core/otbWrapperChoiceParameter.h index e8ae2b2b9b..09daa29910 100644 --- a/Code/Core/otbWrapperChoiceParameter.h +++ b/Code/Core/otbWrapperChoiceParameter.h @@ -69,9 +69,12 @@ public: /** Get the number of available choice */ unsigned int GetNbChoices( void ); - /** Set any value */ + /** Set choice value */ virtual void SetValue(unsigned int v); + /** Set choice value by its key */ + virtual void SetValue(std::string choiceKey); + /** Return any value */ virtual unsigned int GetValue(); -- GitLab