Skip to content
Snippets Groups Projects
Commit 51327757 authored by Julien Malik's avatar Julien Malik
Browse files

ENH: add parameter groups

parent f60b98e5
Branches
Tags
No related merge requests found
......@@ -24,7 +24,9 @@ namespace Wrapper
{
Application::Application(): m_Name(""), m_Description("")
{}
{
m_ParameterList = ParameterList::New();
}
Application::~Application()
{}
......
......@@ -61,7 +61,7 @@ public:
/** Get the parameter description */
itkGetStringMacro(Description);
ParameterList& GetParameterList()
ParameterList* GetParameterList()
{
return m_ParameterList;
}
......@@ -82,7 +82,7 @@ private:
std::string m_Name;
std::string m_Description;
ParameterList m_ParameterList;
ParameterList::Pointer m_ParameterList;
}; //end class
......
......@@ -27,36 +27,43 @@ namespace otb
namespace Wrapper
{
// We'll see if we need more than that later...
typedef std::vector<Parameter::Pointer> ParameterList;
/**
* \class WrapperParameterList
*/
/*
class ITK_EXPORT ParameterList : public itk::Object
class ITK_EXPORT ParameterList
: public Parameter
{
public:
typedef ParameterList Self;
typedef itk::Object Superclass;
typedef Parameter Superclass;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
typedef Parameter ParameterType;
itkNewMacro(Self);
itkTypeMacro(ParameterList,itk::Object);
itkTypeMacro(ParameterList,Parameter);
void AddParameter();
void AddParameter(ParameterType::Pointer p)
{
m_ParameterList.push_back(p);
}
ParameterType * GetParameter(std::string & key);
ParameterType::Pointer GetParameter(unsigned int i)
{
return m_ParameterList[i];
}
std::vector<Parameter::Pointer>& GetList();
unsigned int GetNumberOfParameters()
{
m_ParameterList.size();
}
protected:
ParameterList()
{}
virtual ~ParameterList()
{}
......@@ -67,8 +74,8 @@ private:
std::vector<Parameter::Pointer> m_ParameterList;
};
*/
}
}
#endif // __otbWrapperParameter_h
#endif
......@@ -22,6 +22,7 @@
#include "otbWrapperQtWidgetFloatParameter.h"
#include "otbWrapperQtWidgetStringParameter.h"
#include "otbWrapperQtWidgetChoiceParameter.h"
#include "otbWrapperQtWidgetParameterGroup.h"
namespace otb
{
......@@ -40,14 +41,14 @@ public:
static QWidget* Create( Parameter* param )
{
QWidget* widget = 0;
TParameterType* specificParam = dynamic_cast<TParameterType *>(param);
if (specificParam)
{
widget = new TQtWidget(specificParam);
}
return widget;
QWidget* widget = 0;
TParameterType* specificParam = dynamic_cast<TParameterType *>(param);
if (specificParam)
{
widget = new TQtWidget(specificParam);
}
return widget;
}
};
......@@ -70,6 +71,7 @@ QtWidgetParameterFactory::CreateQtWidget( Parameter* param )
typedef QtWidgetParameterGenericFactory<FloatParameter, QtWidgetFloatParameter> FloatWidgetFactory;
typedef QtWidgetParameterGenericFactory<StringParameter, QtWidgetStringParameter> StringWidgetFactory;
typedef QtWidgetParameterGenericFactory<ChoiceParameter, QtWidgetChoiceParameter> ChoiceWidgetFactory;
typedef QtWidgetParameterGenericFactory<ParameterList, QtWidgetParameterGroup> GroupWidgetFactory;
if ( EmptyWidgetFactory::CanCreate(param) )
{
......@@ -91,6 +93,10 @@ QtWidgetParameterFactory::CreateQtWidget( Parameter* param )
{
widget = StringWidgetFactory::Create(param);
}
else if ( GroupWidgetFactory::CanCreate(param) )
{
widget = GroupWidgetFactory::Create(param);
}
return widget;
}
......
......@@ -24,7 +24,7 @@ namespace otb
namespace Wrapper
{
QtWidgetParameterGroup::QtWidgetParameterGroup(ParameterList paramList)
QtWidgetParameterGroup::QtWidgetParameterGroup(ParameterList::Pointer paramList)
: m_ParamList(paramList)
{
this->CreateWidget();
......@@ -41,16 +41,13 @@ void QtWidgetParameterGroup::CreateWidget()
gridLayout->setSpacing(1);
gridLayout->setContentsMargins(0,0,0,0);
ParameterList::const_iterator it = m_ParamList.begin();
ParameterList::const_iterator end = m_ParamList.end();
unsigned int i = 0;
for (; it != end; ++it, ++i)
unsigned int nbParams = m_ParamList->GetNumberOfParameters();
for (unsigned int i = 0; i < nbParams; ++i)
{
QWidget* label = new QtWidgetParameterLabel( *it );
Parameter* param = m_ParamList->GetParameter(i);
QWidget* label = new QtWidgetParameterLabel( param );
gridLayout->addWidget(label, i, 0);
QWidget* specificWidget = QtWidgetParameterFactory::CreateQtWidget( *it );
QWidget* specificWidget = QtWidgetParameterFactory::CreateQtWidget( param );
gridLayout->addWidget(specificWidget, i, 1);
}
......
......@@ -33,7 +33,7 @@ class QtWidgetParameterGroup : public QWidget
{
Q_OBJECT
public:
QtWidgetParameterGroup(ParameterList);
QtWidgetParameterGroup(ParameterList::Pointer);
virtual ~QtWidgetParameterGroup();
private:
......@@ -42,7 +42,7 @@ private:
void CreateWidget();
ParameterList m_ParamList;
ParameterList::Pointer m_ParamList;
};
......
......@@ -24,7 +24,7 @@
int otbWrapperParameterListNew(int argc, char* argv[])
{
typedef otb::Wrapper::ParameterList ParameterListType;
ParameterListType parameters;
ParameterListType::Pointer parameters = ParameterListType::New();
//std::cout << parameter << std::endl;
......
......@@ -129,14 +129,63 @@ int otbWrapperQtWidgetParameterGroup(int argc, char* argv[])
stringParam->SetKey("string");
stringParam->SetValue("test value");
otb::Wrapper::ParameterList list;
list.push_back((otb::Wrapper::Parameter*)intParam);
list.push_back((otb::Wrapper::Parameter*)floatParam);
list.push_back((otb::Wrapper::Parameter*)emptyParam);
list.push_back((otb::Wrapper::Parameter*)choiceParam);
list.push_back((otb::Wrapper::Parameter*)stringParam);
QWidget * group = new otb::Wrapper::QtWidgetParameterGroup(list);
otb::Wrapper::ParameterList::Pointer list = otb::Wrapper::ParameterList::New();
list->AddParameter(otb::Wrapper::Parameter::Pointer(intParam.GetPointer()));
list->AddParameter(otb::Wrapper::Parameter::Pointer(floatParam.GetPointer()));
list->AddParameter(otb::Wrapper::Parameter::Pointer(emptyParam.GetPointer()));
list->AddParameter(otb::Wrapper::Parameter::Pointer(choiceParam.GetPointer()));
list->AddParameter(otb::Wrapper::Parameter::Pointer(stringParam.GetPointer()));
otb::Wrapper::IntParameter::Pointer intParam2 = otb::Wrapper::IntParameter::New();
otb::Wrapper::FloatParameter::Pointer floatParam2 = otb::Wrapper::FloatParameter::New();
otb::Wrapper::EmptyParameter::Pointer emptyParam2 = otb::Wrapper::EmptyParameter::New();
otb::Wrapper::ChoiceParameter::Pointer choiceParam2 = otb::Wrapper::ChoiceParameter::New();
otb::Wrapper::StringParameter::Pointer stringParam2 = otb::Wrapper::StringParameter::New();
intParam2->SetName("Int parameter");
intParam2->SetDescription("This is an int parameter");
intParam2->SetKey("int");
intParam2->SetDefaultValue(10);
intParam2->SetValue(5);
intParam2->SetMinimumValue(-10);
intParam2->SetMaximumValue(10);
floatParam2->SetName("Float parameter");
floatParam2->SetDescription("This is an float parameter");
floatParam2->SetKey("float");
floatParam2->SetDefaultValue(0.567);
floatParam2->SetValue(0.21);
floatParam2->SetMinimumValue(-3.75);
floatParam2->SetMaximumValue(4.97);
emptyParam2->SetName("Empty parameter");
emptyParam2->SetDescription("This is an empty parameter");
emptyParam2->SetKey("empty");
choiceParam2->SetName("Choice parameter");
choiceParam2->SetDescription("This is an choice parameter");
choiceParam2->SetKey("choice");
choiceParam2->AddChoice("choice1", 0);
choiceParam2->AddChoice("choice2", 0);
choiceParam2->AddChoice("choice3", 0);
stringParam2->SetName("String parameter");
stringParam2->SetDescription("This is a string parameter");
stringParam2->SetKey("string");
stringParam2->SetValue("test value");
otb::Wrapper::ParameterList::Pointer list2 = otb::Wrapper::ParameterList::New();
list2->SetName("Group parameter");
list2->SetDescription("This is a group parameter");
list2->SetKey("group");
list2->AddParameter(otb::Wrapper::Parameter::Pointer(intParam2.GetPointer()));
list2->AddParameter(otb::Wrapper::Parameter::Pointer(floatParam2.GetPointer()));
list2->AddParameter(otb::Wrapper::Parameter::Pointer(emptyParam2.GetPointer()));
list2->AddParameter(otb::Wrapper::Parameter::Pointer(choiceParam2.GetPointer()));
list2->AddParameter(otb::Wrapper::Parameter::Pointer(stringParam2.GetPointer()));
list2->AddParameter(otb::Wrapper::Parameter::Pointer(list.GetPointer()));
QWidget * group = new otb::Wrapper::QtWidgetParameterGroup(list2);
if(group)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment