build method

  1. @override
Widget build(
  1. BuildContext context,
  2. ElectricalModel model
)
override

Builds the UI according to the state in model.

Implementation

@override
Widget build(BuildContext context, ElectricalModel model) => Column(
    crossAxisAlignment: CrossAxisAlignment.stretch,
    children: [
      Row(children: [  // The header at the top
        const SizedBox(width: 8),
        Text("Electrical", style: context.textTheme.headlineMedium),
        const SizedBox(width: 12),
        const Spacer(),
        Text(model.axis ? "Horizontal" : "Vertical", style: context.textTheme.labelLarge),
        const SizedBox(width: 12),
        Switch(
          value: model.axis,
          onChanged: (bool value) => model.changeDirection(),
        ),
        const SizedBox(width: 8),
        ElevatedButton.icon(icon: const Icon(Icons.clear), label: const Text("Clear all"), onPressed: model.clear),
        const SizedBox(width: 8),
        ViewsSelector(index: index),
      ],),
      if (model.axis) Expanded(child:
        Row(children: [
          for (final graph in _getGraphs(model))
            Expanded(child: graph),
        ],),
      )
      else
        for (final graph in _getGraphs(model))
          Expanded(child: graph),
      const SizedBox(height: 8),
    ],
  );