build method
- @override
- BuildContext context,
- LogsOptionsViewModel model
override
Builds the UI according to the state in model
.
Implementation
@override
Widget build(BuildContext context, LogsOptionsViewModel model) => Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
DropdownMenu<Device?>(
label: const Text("Select Device"),
initialSelection: model.deviceFilter,
onSelected: model.setDeviceFilter,
dropdownMenuEntries: [
for (final device in [Device.SUBSYSTEMS, Device.VIDEO, Device.AUTONOMY, Device.DASHBOARD, null])
DropdownMenuEntry(label: device?.humanName ?? "All", value: device),
],
),
const SizedBox(width: 8),
DropdownMenu<BurtLogLevel>(
label: const Text("Select Severity"),
initialSelection: model.levelFilter,
onSelected: model.setLevelFilter,
dropdownMenuEntries: [
for (final level in BurtLogLevel.values.filtered)
DropdownMenuEntry(label: level.humanName, value: level),
],
),
const SizedBox(width: 8),
SizedBox(
width: 250,
child: CheckboxListTile(
title: const Text("Autoscroll"),
subtitle: const Text("Scroll to override"),
value: model.autoscroll,
onChanged: model.setAutoscroll,
),
),
const SizedBox(width: 8),
IconButton(
onPressed: model.togglePause,
icon: Icon((model.paused) ? Icons.play_arrow : Icons.pause),
),
],
),
],
);