show method

void show(
  1. IFormField model
)

Implementation

void show(IFormField model) {
  try {
    bool found = false;

    for (IFormField field in widget.model.formFields) {
      if (field == model) {
        found = true;
        try {
          List<dynamic>? pagers =
              (field as WidgetModel).findAncestorsOfExactType(PageModel);
          if (pagers != null) {
            Log().debug('found ${pagers.length} page(s)');
            for (PageModel page in pagers as Iterable<PageModel>) {
              // ensure we can handle pagers within pagers, probably a bit extreme
              PagerModel pageParent = page.parent
                  as PagerModel; // (parent as PAGER.PagerModel).View();
              int? index;
              for (int i = 0; i < pageParent.pages.length; i++) {
                if (pageParent.pages[i] == page) {
                  index = i;
                  i = pageParent.pages.length;
                }
              }
              if (index != null && pageParent.controller != null) {
                // found page with field to go to within pager
                pageParent.controller!.jumpToPage(index);
              }
            }
          }
        } catch (e) {
          Log().debug('$e');
        }
        break;
      }
    }
    if (found == false) {
      Log().debug('Unable to find field');
    }
  } catch (e) {
    Log().error('Error scrolling to form field. eror is $e');
  }
}