getTabBody method

dynamic getTabBody(
  1. dynamic tabname,
  2. dynamic context,
  3. dynamic backcolor
)

Implementation

getTabBody(tabname, context, backcolor) {
  myLogAll('getTabBody');
  if (_tabList[tabname] == null) {
    return null;
  }
  dynamic data = _tabList[tabname][gData][_tabList[tabname][gTabIndex]];
  if (!(data[gVisible] ?? true)) {
    return null;
  }
  if (data[gType] == gCard) {
    var body = data[gBody];
    if (body == null) {
      for (int i = 0; i < _tabList[tabname][gData].length; i++) {
        if (_tabList[tabname][gData][i][gLabel] == data[gLabel]) {
          _tabList[tabname][gData][i][gVisible] = true;
          body = _tabList[tabname][gData][i][gBody];
          break;
        }
      }
    }

    return getCard(body, context, tabname, backcolor, body);
  } else if (data[gType].endsWith(gTable)) {
    data[gTabName] = tabname;
    //print('===========  getTabBody 2 1');
    return getTableBody(data, context, backcolor);
  } else if (data[gType] == gTab) {
    //设置明细tab
    List<Widget> result = [];
    dynamic tabID = data[gTabid];
    List dataChild = [];
    List dataBody = data[gBody][0][gData];
    for (int i = 0; i < dataBody.length; i++) {
      Map data0 = getMap(dataBody[i]);
      dataChild.add(data0);
    }

    setTabBasic(dataChild, context, tabID);
    var tab = getTab(tabID, context);
    if (tab == null) {
      return getEmptyWidget();
    }
    //var tabData = tab[gData];
    final double screenHeight = MediaQuery.of(context).size.height;

    result.add(Column(
      children: [
        getTabByIndex(tabID, context, tab),
        /*SizedBox(
          height: 60.0,
          child: ListView.builder(
            scrollDirection: Axis.horizontal,
            itemCount: tab[gData].length,
            itemBuilder: (context, index) =>
                getTabByIndex(index, tabID, context,tab),
          ),
        ),*/
        SizedBox(
          height: screenHeight * 0.7,
          child: getTabBody(tabID, context, backcolor),
        )
      ],
    ));
    //show tab
    if (result.length > 1) {
      result[0] = Expanded(child: result[0]);
      Widget aRow = Column(
          mainAxisAlignment: MainAxisAlignment.center, children: result);
      return aRow;
    }
    return result[0];
  } else if (data[gType] == gTabletree) {
    //dynamic tableName = data[gActionid];
    setTreeNode(data, context);
    return getTreeBody(data, context, backcolor);
  }

  return MyLabel(
      {gLabel: data[gType] + ' will be available soon'}, backcolor);
}