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(
|
body: Padding(
|
||||||
padding: EdgeInsets.all(10.0),
|
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
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
return FlatButton(
|
return FlatButton(
|
||||||
onPressed: (() {
|
onPressed: (() {
|
||||||
setNewState(null);
|
setNewState(null);
|
||||||
|
@ -34,7 +34,7 @@ class _DateTimeEntityWidgetState extends _EntityWidgetState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding:
|
padding:
|
||||||
EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0),
|
EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0),
|
||||||
|
@ -57,10 +57,10 @@ class Entity {
|
|||||||
_lastUpdated = DateTime.tryParse(rawData["last_updated"]);
|
_lastUpdated = DateTime.tryParse(rawData["last_updated"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityWidget buildWidget(BuildContext context, bool inCard) {
|
EntityWidget buildWidget(BuildContext context, int widgetType) {
|
||||||
return EntityWidget(
|
return EntityWidget(
|
||||||
entity: this,
|
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 {
|
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 Entity entity;
|
||||||
final bool inCard;
|
final int widgetType;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_EntityWidgetState createState() {
|
_EntityWidgetState createState() {
|
||||||
@ -144,15 +150,17 @@ class _EntityWidgetState extends State<EntityWidget> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (widget.inCard) {
|
if (widget.widgetType == EntityWidgetType.regular) {
|
||||||
return _buildMainWidget(context);
|
return _buildMainWidget(context);
|
||||||
} else {
|
} else if (widget.widgetType == EntityWidgetType.extended) {
|
||||||
return ListView(
|
return ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
_buildMainWidget(context),
|
_buildMainWidget(context),
|
||||||
_buildLastUpdatedWidget()
|
_buildLastUpdatedWidget()
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
TheLogger.log("Error", "Unknown entity widget type: ${widget.widgetType}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,15 +171,15 @@ class _EntityWidgetState extends State<EntityWidget> {
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
child: _buildIconWidget(),
|
child: _buildIconWidget(),
|
||||||
onTap: widget.inCard ? openEntityPage : null,
|
onTap: widget.widgetType == EntityWidgetType.extended ? null : openEntityPage,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
child: _buildNameWidget(),
|
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(
|
return Padding(
|
||||||
padding:
|
padding:
|
||||||
EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0),
|
EdgeInsets.fromLTRB(0.0, 0.0, Entity.RIGHT_WIDGET_PADDING, 0.0),
|
||||||
|
@ -10,7 +10,7 @@ class _SelectEntityWidgetState extends _EntityWidgetState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
_listOptions.clear();
|
_listOptions.clear();
|
||||||
if (widget.entity._attributes["options"] != null) {
|
if (widget.entity._attributes["options"] != null) {
|
||||||
widget.entity._attributes["options"].forEach((value){
|
widget.entity._attributes["options"].forEach((value){
|
||||||
|
@ -20,7 +20,7 @@ class _SliderEntityWidgetState extends _EntityWidgetState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
if (valueStep < 1) {
|
if (valueStep < 1) {
|
||||||
_multiplier = 10;
|
_multiplier = 10;
|
||||||
} else if (valueStep < 0.1) {
|
} else if (valueStep < 0.1) {
|
||||||
|
@ -22,7 +22,7 @@ class _SwitchEntityWidgetState extends _EntityWidgetState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
return Switch(
|
return Switch(
|
||||||
value: widget.entity.assumedState == 'on',
|
value: widget.entity.assumedState == 'on',
|
||||||
onChanged: ((switchState) {
|
onChanged: ((switchState) {
|
||||||
|
@ -48,7 +48,7 @@ class _TextEntityWidgetState extends _EntityWidgetState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget _buildActionWidget(bool inCard, BuildContext context) {
|
Widget _buildActionWidget(BuildContext context) {
|
||||||
if (!_focusNode.hasFocus && (_tmpValue != widget.entity.state)) {
|
if (!_focusNode.hasFocus && (_tmpValue != widget.entity.state)) {
|
||||||
_tmpValue = widget.entity.state;
|
_tmpValue = widget.entity.state;
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@ class _TextEntityWidgetState extends _EntityWidgetState {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
TheLogger.log("Warning", "Unsupported input mode for ${widget.entity.entityId}");
|
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(
|
entities.add(
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
|
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