Isis 3 Programmer Reference
GuiParameterFactory.cpp
1 #include "GuiListParameter.h"
2 #include "GuiComboBoxParameter.h"
3 #include "GuiCubeParameter.h"
4 #include "GuiFilenameParameter.h"
5 #include "GuiStringParameter.h"
6 #include "GuiIntegerParameter.h"
7 #include "GuiDoubleParameter.h"
8 #include "GuiBooleanParameter.h"
9 #include "GuiParameterFactory.h"
10 #include "UserInterface.h"
11 #include "Application.h"
12 
13 namespace Isis {
14  GuiParameter *GuiParameterFactory::Create(QGridLayout *grid,
16  int group, int param) {
17  QString paramType = ui.ParamType(group, param);
18 
19  GuiParameter *p = NULL;
20  if(ui.ParamListSize(group, param) > 0) {
21  if (paramType == "combo") {
22  p = new GuiComboBoxParameter(grid, ui, group, param);
23  } else {
24  p = new GuiListParameter(grid, ui, group, param);
25  }
26  }
27  else if(paramType == "cube") {
28  p = new GuiCubeParameter(grid, ui, group, param);
29  }
30  else if(paramType == "filename") {
31  p = new GuiFileNameParameter(grid, ui, group, param);
32  }
33  else if(paramType == "string") {
34  p = new GuiStringParameter(grid, ui, group, param);
35  }
36  else if(paramType == "integer") {
37  p = new GuiIntegerParameter(grid, ui, group, param);
38  }
39  else if(paramType == "double") {
40  p = new GuiDoubleParameter(grid, ui, group, param);
41  }
42  else if(paramType == "boolean") {
43  p = new GuiBooleanParameter(grid, ui, group, param);
44  }
45  else {
46  QString msg = "Invalid parameter type in XML [" + paramType + "]";
47  throw IException(IException::Programmer, msg, _FILEINFO_);
48  }
49 
50  return p;
51  }
52 }
53 
54 
55 
int ParamListSize(const int &group, const int &param) const
Returns the number of options in the specified parameter's list.
Definition: IsisAml.cpp:1617
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:162
QString ParamType(const int &group, const int &param) const
Returns the parameter type of a parameter in a specified group.
Definition: IsisAml.cpp:1508
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:40
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Command Line and Xml loader, validation, and access.