AdaptiveMetricsLab<T> constructor

const AdaptiveMetricsLab<T>({
  1. Key? key,
  2. required List<T> queries,
  3. required Widget itemBuilder(
    1. BuildContext context,
    2. T query,
    3. bool selected,
    4. VoidCallback onTap,
    ),
  4. required Widget focusBuilder(
    1. BuildContext context,
    2. T query
    ),
  5. required Widget annotationsBuilder(
    1. BuildContext context,
    2. T query
    ),
  6. required Widget historyBuilder(
    1. BuildContext context,
    2. T query
    ),
  7. required String queryTitle,
  8. required String annotationsTitle,
  9. required String historyTitle,
  10. Widget? header,
  11. Widget? emptyState,
  12. String? queryDescription,
  13. Widget? queryLeading,
  14. String? annotationsDescription,
  15. Widget? annotationsLeading,
  16. String? historyDescription,
  17. Widget? historyLeading,
  18. String modalQueryLabel = 'Open queries',
  19. Widget modalQueryIcon = const Icon(Icons.query_stats_outlined),
  20. String modalAnnotationsLabel = 'Open annotations',
  21. Widget modalAnnotationsIcon = const Icon(Icons.draw_outlined),
  22. String modalHistoryLabel = 'Open history',
  23. Widget modalHistoryIcon = const Icon(Icons.history_outlined),
  24. AdaptiveSize queryDockedAt = AdaptiveSize.medium,
  25. AdaptiveSize annotationsDockedAt = AdaptiveSize.expanded,
  26. AdaptiveSize historyDockedAt = AdaptiveSize.expanded,
  27. AdaptiveHeight minimumQueryDockedHeight = AdaptiveHeight.compact,
  28. AdaptiveHeight minimumAnnotationsDockedHeight = AdaptiveHeight.medium,
  29. AdaptiveHeight minimumHistoryDockedHeight = AdaptiveHeight.expanded,
  30. bool useContainerConstraints = true,
  31. bool considerOrientation = false,
  32. int? selectedIndex,
  33. int initialIndex = 0,
  34. ValueChanged<int>? onSelectedIndexChanged,
  35. double spacing = 16,
  36. double itemSpacing = 12,
  37. int queryFlex = 2,
  38. int focusFlex = 4,
  39. int annotationsFlex = 2,
  40. int focusPaneFlex = 3,
  41. int historyFlex = 2,
  42. EdgeInsetsGeometry queryPadding = const EdgeInsets.all(16),
  43. EdgeInsetsGeometry focusPadding = const EdgeInsets.all(16),
  44. EdgeInsetsGeometry annotationsPadding = const EdgeInsets.all(16),
  45. EdgeInsetsGeometry historyPadding = const EdgeInsets.all(16),
  46. double modalHeightFactor = 0.72,
  47. bool showModalDragHandle = true,
  48. bool animateSize = true,
  49. Duration animationDuration = const Duration(milliseconds: 250),
  50. Curve animationCurve = Curves.easeInOutCubic,
})

Creates an adaptive metrics lab.

Implementation

const AdaptiveMetricsLab({
  super.key,
  required this.queries,
  required this.itemBuilder,
  required this.focusBuilder,
  required this.annotationsBuilder,
  required this.historyBuilder,
  required this.queryTitle,
  required this.annotationsTitle,
  required this.historyTitle,
  this.header,
  this.emptyState,
  this.queryDescription,
  this.queryLeading,
  this.annotationsDescription,
  this.annotationsLeading,
  this.historyDescription,
  this.historyLeading,
  this.modalQueryLabel = 'Open queries',
  this.modalQueryIcon = const Icon(Icons.query_stats_outlined),
  this.modalAnnotationsLabel = 'Open annotations',
  this.modalAnnotationsIcon = const Icon(Icons.draw_outlined),
  this.modalHistoryLabel = 'Open history',
  this.modalHistoryIcon = const Icon(Icons.history_outlined),
  this.queryDockedAt = AdaptiveSize.medium,
  this.annotationsDockedAt = AdaptiveSize.expanded,
  this.historyDockedAt = AdaptiveSize.expanded,
  this.minimumQueryDockedHeight = AdaptiveHeight.compact,
  this.minimumAnnotationsDockedHeight = AdaptiveHeight.medium,
  this.minimumHistoryDockedHeight = AdaptiveHeight.expanded,
  this.useContainerConstraints = true,
  this.considerOrientation = false,
  this.selectedIndex,
  this.initialIndex = 0,
  this.onSelectedIndexChanged,
  this.spacing = 16,
  this.itemSpacing = 12,
  this.queryFlex = 2,
  this.focusFlex = 4,
  this.annotationsFlex = 2,
  this.focusPaneFlex = 3,
  this.historyFlex = 2,
  this.queryPadding = const EdgeInsets.all(16),
  this.focusPadding = const EdgeInsets.all(16),
  this.annotationsPadding = const EdgeInsets.all(16),
  this.historyPadding = const EdgeInsets.all(16),
  this.modalHeightFactor = 0.72,
  this.showModalDragHandle = true,
  this.animateSize = true,
  this.animationDuration = const Duration(milliseconds: 250),
  this.animationCurve = Curves.easeInOutCubic,
});