def METHOD_NAME(self):
    super().METHOD_NAME()
    # Prepare the form
    try:
        cols = [float(i) for i in str(self.var.cols).split(';')]
        rows = [float(i) for i in str(self.var.rows).split(';')]
        margins = [float(i) for i in str(self.var.margins).split(';')]
    except Exception as e:
        raise InvalidValue('cols, rows, and margins should be numeric '
                           'values separated by a semi-colon')
    if self.var.timeout == 'infinite':
        timeout = None
    else:
        timeout = self.var.timeout
    self._form = widgets.Form(self.experiment, cols=cols, rows=rows,
                              margins=margins, spacing=self.var.spacing,
                              theme=self.var._theme,
                              item=self, timeout=timeout,
                              clicks=self.var.form_clicks == 'yes')
    self.focus_widget = None
    for arglist, orig_kwdict in self._widgets:
        kwdict = orig_kwdict.copy()
        # Evaluate all values
        arglist = [self.syntax.eval_text(arg, include_local=True)
                   for arg in arglist]
        for key, val in kwdict.items():
            kwdict[key] = self.syntax.eval_text(val, include_local=True)
        # Translate paths into full file names
        if 'path' in kwdict:
            kwdict['path'] = self.experiment.pool[kwdict['path']]
        # Process focus keyword
        focus = False
        if 'focus' in kwdict:
            if kwdict['focus'] == 'yes':
                focus = True
            del kwdict['focus']
        # Parse arguments
        _type = arglist[4]
        try:
            col = int(arglist[0])
            row = int(arglist[1])
            colspan = int(arglist[2])
            rowspan = int(arglist[3])
        except (ValueError, TypeError):
            raise InvalidValue('In a form widget col, row, colspan, and '
                               'rowspan should be integer')
        # Create the widget and add it to the form
        try:
            cls = getattr(widgets, _type)
        except AttributeError:
            raise InvalidFormScript(f'{_type} is not a valid form widget')
        _w = cls(self._form, **kwdict)
        self._form.set_widget(_w, (col, row), colspan=colspan,
                              rowspan=rowspan)
        # Add as focus widget
        if focus:
            if self.focus_widget is not None:
                raise InvalidFormScript(
                    'You can only specify one focus widget')
            self.focus_widget = _w