getDatePickerItems method

dynamic getDatePickerItems(
  1. dynamic sizeList,
  2. dynamic sList,
  3. dynamic backcolor,
  4. dynamic selectedIndex,
  5. dynamic context,
  6. dynamic formname,
  7. dynamic id,
  8. dynamic typeOwner,
)

Implementation

getDatePickerItems(sizeList, sList, backcolor, selectedIndex, context,
    formname, id, typeOwner) {
  myLogAll('getDatePickerItems');
  List<Widget> result = [];

  for (int i = 0; i < sizeList.length; i++) {
    List<Widget> subList = [];
    List list = _dpList[sList[i]];
    result.add(const Text(''));
    for (int j = 0; j < list.length; j++) {
      bool isSelected = false;
      if (selectedIndex[i] > -1 && selectedIndex[i] == j) {
        isSelected = true;
      }
      subList.add(isSelected
          ? Text((i == 1) ? _monthMap[list[j]] : list[j])
          : InkWell(
              child: MyLabel({
                gLabel: (list[j].indexOf('~') > 0)
                    ? ' * * * '
                    : (i == 1)
                        ? _monthMap[list[j]]
                        : list[j],
                gIsBold: 'true'
              }, backcolor),
              onTap: () {
                if (list[j].indexOf('~') > 0) {
                  _dpList[sList[i]] = addToList(list, list[j]);
                  myNotifyListeners();

                  return;
                }
                //var data = getFormValue(formname, id);
                //var data = getValueOriginal(formname, id, null, gForm);
                var data = getValue(formname, id, null)[gValue];
                List dateList = [];
                if (data != null && data.length > 0) {
                  dateList = data.split('-');
                }
                if (dateList.isEmpty) {
                  dateList.add('');
                }
                if (dateList.length < 2) {
                  dateList.add('');
                }
                if (dateList.length < 3) {
                  dateList.add('');
                }
                dateList[i] = list[j];

                if (dateList[2] == '31') {
                  if (dateList[1] == '02' ||
                      dateList[1] == '04' ||
                      dateList[1] == '06' ||
                      dateList[1] == '09' ||
                      dateList[1] == '11') {
                    dateList[2] = '';
                  }
                } else if (dateList[2] == '30') {
                  if (dateList[1] == '02') {
                    dateList[2] = '';
                  }
                } else if (dateList[2] == '29') {
                  if (dateList[1] == '02') {
                    if (dateList[0].length < 4) {
                      dateList[2] = '';
                    } else {
                      int iYear = getInt(dateList[0]);
                      if (iYear % 4 > 0) {
                        dateList[2] = '';
                      }
                    }
                  }
                }
                setValue(
                    formname,
                    id,
                    null,
                    dateList[0] + '-' + dateList[1] + '-' + dateList[2],
                    context);
                if (dateList[2] != '') {
                  //close the detail
                  //setFormValueShow(formname, id);
                  setFocusNext(formname, id, null, false, context);

                  myNotifyListeners();
                  return;
                }

                myNotifyListeners();
              },
            ));
    }
    result.add(Wrap(
        spacing: 10.0, //gap between adjacent items
        runSpacing: 20.0, //gap between lines
        direction: Axis.horizontal,
        children: subList));
  }

  return result;
}