code: def _setup_param_widgets(self):
          
  
          for parameter in self.csv_params:
              pname, ptype, plabel, phelp = parameter
  
              label = wx.StaticText(self.parent, -1, plabel)
              widget = self.type2widget[ptype](self.parent)
  
              # Append choicebox items and bind handler
              if pname in self.choices:
                  widget.AppendItems(self.choices[pname])
                  widget.SetValue = widget.Select
                  widget.SetSelection(0)
  
              # Bind event handler to widget
              if ptype is types.StringType or ptype is types.UnicodeType:
                  event_type = wx.EVT_TEXT
              elif ptype is types.BooleanType:
                  event_type = wx.EVT_CHECKBOX
              else:
                  event_type = wx.EVT_CHOICE
  
              handler = getattr(self, self.widget_handlers[pname])
              self.parent.Bind(event_type, handler, widget)
  
              # Tool tips
              label.SetToolTipString(phelp)
              widget.SetToolTipString(phelp)
  
              label.__name__ = wx.StaticText.__name__.lower()
              widget.__name__ = self.type2widget[ptype].__name__.lower()
  
              self.param_labels.append(label)
              self.param_widgets.append(widget)
  
              self.__setattr__("_".join([label.__name__, pname]), label)
              self.__setattr__("_".join([widget.__name__, pname]), widget)
docs: Creates the parameter entry widgets and binds them to methods