Add entity widget type. Preparing to make entity build it's own badge
This commit is contained in:
@ -44,7 +44,7 @@ class _EntityViewPageState extends State<EntityViewPage> {
|
||||
),
|
||||
body: Padding(
|
||||
padding: EdgeInsets.all(10.0),
|
||||
child: _entity.buildWidget(context, false)
|
||||
child: _entity.buildWidget(context, EntityWidgetType.extended)
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ class _ButtonEntityWidgetState extends _EntityWidgetState {
|
||||
}
|
||||
|
||||
@override
|
||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
||||
Widget _buildActionWidget(BuildContext context) {
|
||||
return FlatButton(
|
||||
onPressed: (() {
|
||||
setNewState(null);
|
||||
|
@ -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),
|
||||
|
@ -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<EntityWidget> {
|
||||
|
||||
@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: <Widget>[
|
||||
_buildMainWidget(context),
|
||||
_buildLastUpdatedWidget()
|
||||
],
|
||||
);
|
||||
} else {
|
||||
TheLogger.log("Error", "Unknown entity widget type: ${widget.widgetType}");
|
||||
}
|
||||
}
|
||||
|
||||
@ -163,15 +171,15 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
children: <Widget>[
|
||||
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<EntityWidget> {
|
||||
);
|
||||
}
|
||||
|
||||
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),
|
||||
|
@ -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){
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -437,7 +437,7 @@ class _MainPageState extends State<MainPage> 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),
|
||||
));
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user