diff --git a/lib/entities/entity.class.dart b/lib/entities/entity.class.dart index e353c67..14197b0 100644 --- a/lib/entities/entity.class.dart +++ b/lib/entities/entity.class.dart @@ -211,60 +211,6 @@ class Entity { ); } - Widget buildEntityPageWidget(BuildContext context, {bool showClose: false}) { - return EntityModel( - entityWrapper: EntityWrapper(entity: this), - child: ListView( - padding: EdgeInsets.all(0), - children: [ - showClose ? - Container( - color: Colors.blue[300], - height: 36, - child: Row( - children: [ - Expanded( - child: Padding( - padding: EdgeInsets.only(left: 8), - child: Text( - this.displayName, - style: TextStyle( - fontWeight: FontWeight.bold, - color: Colors.white, - fontSize: 22 - ), - ), - ), - ), - IconButton( - padding: EdgeInsets.all(0), - icon: Icon(Icons.close), - color: Colors.white, - iconSize: 30.0, - onPressed: () { - eventBus.fire(ShowEntityPageEvent()); - }, - ) - ], - ), - ) : - Container(height: 0, width: 0,), - Padding( - padding: EdgeInsets.only(top: Sizes.rowPadding, left: Sizes.leftWidgetPadding), - child: DefaultEntityContainer(state: _buildStatePartForPage(context)), - ), - LastUpdatedWidget(), - Divider(), - _buildAdditionalControlsForPage(context), - Divider(), - buildHistoryWidget(), - EntityAttributesList() - ] - ), - handleTap: false, - ); - } - Widget buildHistoryWidget() { return EntityHistoryWidget( config: historyConfig, diff --git a/lib/entities/entity_page_layout.widget.dart b/lib/entities/entity_page_layout.widget.dart new file mode 100644 index 0000000..2ce6793 --- /dev/null +++ b/lib/entities/entity_page_layout.widget.dart @@ -0,0 +1,64 @@ +part of '../main.dart'; + +class EntityPageLayout extends StatelessWidget { + + final bool showClose; + final Entity entity; + + const EntityPageLayout({Key key, @required this.entity, this.showClose: false}) : super(key: key); + + @override + Widget build(BuildContext context) { + return EntityModel( + entityWrapper: EntityWrapper(entity: this.entity), + child: ListView( + padding: EdgeInsets.all(0), + children: [ + showClose ? + Container( + color: Colors.blue[300], + height: 36, + child: Row( + children: [ + Expanded( + child: Padding( + padding: EdgeInsets.only(left: 8), + child: Text( + this.entity.displayName, + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.white, + fontSize: 22 + ), + ), + ), + ), + IconButton( + padding: EdgeInsets.all(0), + icon: Icon(Icons.close), + color: Colors.white, + iconSize: 30.0, + onPressed: () { + eventBus.fire(ShowEntityPageEvent()); + }, + ) + ], + ), + ) : + Container(height: 0, width: 0,), + Padding( + padding: EdgeInsets.only(top: Sizes.rowPadding, left: Sizes.leftWidgetPadding), + child: DefaultEntityContainer(state: this.entity._buildStatePartForPage(context)), + ), + LastUpdatedWidget(), + Divider(), + this.entity._buildAdditionalControlsForPage(context), + Divider(), + this.entity.buildHistoryWidget(), + EntityAttributesList() + ] + ), + handleTap: false, + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index 614768f..dda6121 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -124,6 +124,7 @@ part 'types/event_bus_events.dart'; part 'cards/widgets/gauge_card_body.dart'; part 'cards/widgets/light_card_body.dart'; part 'pages/play_media.page.dart'; +part 'entities/entity_page_layout.widget.dart'; EventBus eventBus = new EventBus(); diff --git a/lib/pages/entity.page.dart b/lib/pages/entity.page.dart index 85eb1fc..137238d 100644 --- a/lib/pages/entity.page.dart +++ b/lib/pages/entity.page.dart @@ -41,7 +41,7 @@ class _EntityViewPageState extends State { } body = PageLoadingIndicator(); } else { - body = entity.buildEntityPageWidget(context); + body = EntityPageLayout(entity: entity); } return new Scaffold( appBar: new AppBar( diff --git a/lib/pages/main.page.dart b/lib/pages/main.page.dart index 7b5137d..e255602 100644 --- a/lib/pages/main.page.dart +++ b/lib/pages/main.page.dart @@ -697,7 +697,7 @@ class _MainPageState extends ReceiveShareState with WidgetsBindingObse ), ConstrainedBox( constraints: BoxConstraints.tightFor(width: Sizes.entityPageMaxWidth), - child: entity.buildEntityPageWidget(context, showClose: true), + child: EntityPageLayout(entity: entity, showClose: true,), ) ], );