part of '../main.dart'; class ConfigPanelWidget extends StatefulWidget { ConfigPanelWidget({Key key}) : super(key: key); @override _ConfigPanelWidgetState createState() => new _ConfigPanelWidgetState(); } class ConfigurationItem { ConfigurationItem({ this.isExpanded: false, this.header, this.body }); bool isExpanded; final String header; final Widget body; } class _ConfigPanelWidgetState extends State { List _items; @override void initState() { super.initState(); _items = [ ConfigurationItem( header: 'General', body: Padding( padding: EdgeInsets.fromLTRB(Sizes.leftWidgetPadding, 0.0, Sizes.rightWidgetPadding, Sizes.rowPadding), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text("Server management", style: TextStyle(fontSize: Sizes.largeFontSize)), Container(height: Sizes.rowPadding,), Text("Control your Home Assistant server from HA Client."), Divider(), Row( mainAxisSize: MainAxisSize.min, children: [ FlatServiceButton( text: "Restart", serviceName: "restart", serviceDomain: "homeassistant", entityId: null, ), FlatServiceButton( text: "Stop", serviceName: "stop", serviceDomain: "homeassistant", entityId: null, ), ], ) ], ), ) ) ]; } @override Widget build(BuildContext context) { return ListView( children: [ new ExpansionPanelList( expansionCallback: (int index, bool isExpanded) { setState(() { _items[index].isExpanded = !_items[index].isExpanded; }); }, children: _items.map((ConfigurationItem item) { return new ExpansionPanel( headerBuilder: (BuildContext context, bool isExpanded) { return CardHeaderWidget( name: item.header, ); }, isExpanded: item.isExpanded, body: new Container( child: item.body, ), ); }).toList(), ), ], ); } @override void dispose() { super.dispose(); } }