From 4725953b32b636741bcd192a4731c7d3e3005ec7 Mon Sep 17 00:00:00 2001 From: estevez Date: Wed, 3 Oct 2018 16:44:11 +0300 Subject: [PATCH] Add entity widget type. Preparing to make entity build it's own badge --- lib/entity.page.dart | 2 +- lib/entity_class/button_entity.class.dart | 2 +- lib/entity_class/datetime_entity.class.dart | 2 +- lib/entity_class/entity.class.dart | 28 +++++++++++++-------- lib/entity_class/select_entity.class.dart | 2 +- lib/entity_class/slider_entity.class.dart | 2 +- lib/entity_class/switch_entity.class.dart | 2 +- lib/entity_class/text_entity.class.dart | 4 +-- lib/main.dart | 2 +- 9 files changed, 27 insertions(+), 19 deletions(-) diff --git a/lib/entity.page.dart b/lib/entity.page.dart index 11b8ac2..5e56531 100644 --- a/lib/entity.page.dart +++ b/lib/entity.page.dart @@ -44,7 +44,7 @@ class _EntityViewPageState extends State { ), body: Padding( padding: EdgeInsets.all(10.0), - child: _entity.buildWidget(context, false) + child: _entity.buildWidget(context, EntityWidgetType.extended) ), ); } diff --git a/lib/entity_class/button_entity.class.dart b/lib/entity_class/button_entity.class.dart index 71aba7b..fd256c3 100644 --- a/lib/entity_class/button_entity.class.dart +++ b/lib/entity_class/button_entity.class.dart @@ -8,7 +8,7 @@ class _ButtonEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { return FlatButton( onPressed: (() { setNewState(null); diff --git a/lib/entity_class/datetime_entity.class.dart b/lib/entity_class/datetime_entity.class.dart index 5edac78..feeab37 100644 --- a/lib/entity_class/datetime_entity.class.dart +++ b/lib/entity_class/datetime_entity.class.dart @@ -34,7 +34,7 @@ class _DateTimeEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { return Padding( padding: EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0), diff --git a/lib/entity_class/entity.class.dart b/lib/entity_class/entity.class.dart index aa168a1..3c2a847 100644 --- a/lib/entity_class/entity.class.dart +++ b/lib/entity_class/entity.class.dart @@ -57,10 +57,10 @@ class Entity { _lastUpdated = DateTime.tryParse(rawData["last_updated"]); } - EntityWidget buildWidget(BuildContext context, bool inCard) { + EntityWidget buildWidget(BuildContext context, int widgetType) { return EntityWidget( entity: this, - inCard: inCard, + widgetType: widgetType, ); } @@ -93,14 +93,20 @@ class Entity { } } +} +class EntityWidgetType { + static final int regular = 1; + static final int extended = 2; + static final int badge = 3; } class EntityWidget extends StatefulWidget { - EntityWidget({Key key, this.entity, this.inCard}) : super(key: key); + + EntityWidget({Key key, this.entity, this.widgetType}) : super(key: key); final Entity entity; - final bool inCard; + final int widgetType; @override _EntityWidgetState createState() { @@ -144,15 +150,17 @@ class _EntityWidgetState extends State { @override Widget build(BuildContext context) { - if (widget.inCard) { + if (widget.widgetType == EntityWidgetType.regular) { return _buildMainWidget(context); - } else { + } else if (widget.widgetType == EntityWidgetType.extended) { return ListView( children: [ _buildMainWidget(context), _buildLastUpdatedWidget() ], ); + } else { + TheLogger.log("Error", "Unknown entity widget type: ${widget.widgetType}"); } } @@ -163,15 +171,15 @@ class _EntityWidgetState extends State { children: [ GestureDetector( child: _buildIconWidget(), - onTap: widget.inCard ? openEntityPage : null, + onTap: widget.widgetType == EntityWidgetType.extended ? null : openEntityPage, ), Expanded( child: GestureDetector( child: _buildNameWidget(), - onTap: widget.inCard ? openEntityPage : null, + onTap: widget.widgetType == EntityWidgetType.extended ? null : openEntityPage, ), ), - _buildActionWidget(widget.inCard, context) + _buildActionWidget(context) ], ), ); @@ -224,7 +232,7 @@ class _EntityWidgetState extends State { ); } - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { return Padding( padding: EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0), diff --git a/lib/entity_class/select_entity.class.dart b/lib/entity_class/select_entity.class.dart index 8c58b6e..5a5759b 100644 --- a/lib/entity_class/select_entity.class.dart +++ b/lib/entity_class/select_entity.class.dart @@ -10,7 +10,7 @@ class _SelectEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { _listOptions.clear(); if (widget.entity._attributes["options"] != null) { widget.entity._attributes["options"].forEach((value){ diff --git a/lib/entity_class/slider_entity.class.dart b/lib/entity_class/slider_entity.class.dart index 09bdc6f..187e761 100644 --- a/lib/entity_class/slider_entity.class.dart +++ b/lib/entity_class/slider_entity.class.dart @@ -20,7 +20,7 @@ class _SliderEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { if (valueStep < 1) { _multiplier = 10; } else if (valueStep < 0.1) { diff --git a/lib/entity_class/switch_entity.class.dart b/lib/entity_class/switch_entity.class.dart index b0359fc..c308153 100644 --- a/lib/entity_class/switch_entity.class.dart +++ b/lib/entity_class/switch_entity.class.dart @@ -22,7 +22,7 @@ class _SwitchEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { return Switch( value: widget.entity.assumedState == 'on', onChanged: ((switchState) { diff --git a/lib/entity_class/text_entity.class.dart b/lib/entity_class/text_entity.class.dart index dd11ee8..c9bedc3 100644 --- a/lib/entity_class/text_entity.class.dart +++ b/lib/entity_class/text_entity.class.dart @@ -48,7 +48,7 @@ class _TextEntityWidgetState extends _EntityWidgetState { } @override - Widget _buildActionWidget(bool inCard, BuildContext context) { + Widget _buildActionWidget(BuildContext context) { if (!_focusNode.hasFocus && (_tmpValue != widget.entity.state)) { _tmpValue = widget.entity.state; } @@ -69,7 +69,7 @@ class _TextEntityWidgetState extends _EntityWidgetState { ); } else { TheLogger.log("Warning", "Unsupported input mode for ${widget.entity.entityId}"); - return super._buildActionWidget(inCard, context); + return super._buildActionWidget(context); } } diff --git a/lib/main.dart b/lib/main.dart index 2c90269..e5532bc 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -437,7 +437,7 @@ class _MainPageState extends State with WidgetsBindingObserver { entities.add( Padding( padding: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), - child: entity.buildWidget(context, true), + child: entity.buildWidget(context, EntityWidgetType.regular), )); } });