of static method

Returns the nearest ListTableTheme.

Implementation

static ListTableThemeData of(BuildContext context) {
  final ListTableTheme? listTableTheme =
      context.dependOnInheritedWidgetOfExactType<ListTableTheme>();
  ListTableThemeData? listTableThemeData = listTableTheme?.data;

  if (listTableThemeData == null || !listTableThemeData._isConcrete) {
    final ThemeData themeData = Theme.of(context);
    final TextTheme textTheme = themeData.textTheme;
    final ColorScheme colorScheme = themeData.colorScheme;

    listTableThemeData ??= themeData.listTableTheme;

    final listTableValue =
        _ListTableThemeData(textTheme: textTheme, colorScheme: colorScheme);

    final IconThemeData iconThemeData =
        listTableThemeData.iconThemeData ?? listTableValue.iconThemeData;
    final double itemHeight =
        listTableThemeData.itemHeight ?? listTableValue.itemHeight;
    final TextStyle textStyle =
        listTableThemeData.textStyle ?? listTableValue.textStyle;
    final Color selectedColor =
        listTableThemeData.selectedColor ?? listTableValue.selectedColor;
    final Color selectedHighlightColor =
        listTableThemeData.selectedHighlightColor ??
            listTableValue.selectedHighlightColor;
    final Color selectedHoverColor = listTableThemeData.selectedHoverColor ??
        listTableValue.selectedHoverColor;
    final Color hoverColor =
        listTableThemeData.hoverColor ?? listTableValue.hoverColor;
    final Color highlightColor =
        listTableThemeData.highlightColor ?? listTableValue.highlightColor;
    final Color background =
        listTableThemeData.background ?? listTableValue.background;
    final Color borderColor =
        listTableThemeData.borderColor ?? listTableValue.borderColor;
    final Color borderHoverColor = listTableThemeData.borderHoverColor ??
        listTableValue.borderHoverColor;
    final Color borderHighlightColor =
        listTableThemeData.borderHighlightColor ??
            listTableValue.borderHighlightColor;
    final Color borderIndicatorColor =
        listTableThemeData.borderIndicatorColor ??
            listTableValue.borderIndicatorColor;

    return listTableThemeData.copyWith(
      iconThemeData: iconThemeData,
      itemHeight: itemHeight,
      textStyle: textStyle,
      selectedColor: selectedColor,
      selectedHighlightColor: selectedHighlightColor,
      selectedHoverColor: selectedHoverColor,
      hoverColor: hoverColor,
      highlightColor: highlightColor,
      background: background,
      borderColor: borderColor,
      borderHoverColor: borderHoverColor,
      borderHighlightColor: borderHighlightColor,
      borderIndicatorColor: borderIndicatorColor,
    );
  }

  assert(listTableThemeData._isConcrete);

  return listTableThemeData;
}