buildForm method

List<Widget> buildForm()

Implementation

List<Widget> buildForm() {
  var listWidget = <Widget>[];
  for (var element in formElements) {
    if (element.controlConfig.isVisible) {
      switch (element.controlType) {
        case FormControlTypes.textInput:
        case FormControlTypes.password:
        case FormControlTypes.number:
        case FormControlTypes.decimal:
          listWidget.add(TextInput(element));
          break;
        case FormControlTypes.toggleSwitch:
          listWidget.add(ToggleSwitch(element));
          break;
        case FormControlTypes.dropDown:
          listWidget.add(DropDown(element));
          break;
        case FormControlTypes.groupedList:
          listWidget.add(GroupedList(element));
          break;
        case FormControlTypes.groupedListSubForm:
          listWidget.add(GroupedListSubForm(element));
          break;
        case FormControlTypes.subForm:
          listWidget.add(SubFormView(element));
          break;
        case FormControlTypes.question:
          listWidget.add(Question(element));
          break;
      }
    }
  }

  if (!hideSaveBtn) {
    listWidget.add(
      ElevatedButton(
        style: actionButtonStyle ??
            ElevatedButton.styleFrom(
              foregroundColor: Colors.white,
              backgroundColor: ThemeData().primaryColor,
            ),
        onPressed: () {
          if (_formKey.currentState!.validate()) {
            actionSave!(_formKey);
          }
        },
        child: Text(actionSaveBtnText ?? 'Save'),
      ),
    );
  }

  return listWidget;
}