Resolves #110: Slider improvements
This commit is contained in:
parent
70b6469bd1
commit
ce69f044fb
@ -161,12 +161,7 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
if (widget.widgetType == EntityWidgetType.regular) {
|
||||
return _buildMainWidget(context);
|
||||
} else if (widget.widgetType == EntityWidgetType.extended) {
|
||||
return ListView(
|
||||
children: <Widget>[
|
||||
_buildMainWidget(context),
|
||||
_buildLastUpdatedWidget()
|
||||
],
|
||||
);
|
||||
return _buildExtendedWidget(context);
|
||||
} else if (widget.widgetType == EntityWidgetType.badge) {
|
||||
return _buildBadgeWidget(context);
|
||||
} else {
|
||||
@ -175,6 +170,15 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
}
|
||||
}
|
||||
|
||||
Widget _buildExtendedWidget(BuildContext context) {
|
||||
return ListView(
|
||||
children: <Widget>[
|
||||
_buildMainWidget(context),
|
||||
_buildSecondRowWidget()
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildMainWidget(BuildContext context) {
|
||||
return SizedBox(
|
||||
height: Entity.WIDGET_HEIGHT,
|
||||
@ -205,7 +209,7 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
}
|
||||
|
||||
Widget buildAdditionalWidget() {
|
||||
return _buildLastUpdatedWidget();
|
||||
return _buildSecondRowWidget();
|
||||
}
|
||||
|
||||
Widget _buildIconWidget() {
|
||||
@ -218,7 +222,7 @@ class _EntityWidgetState extends State<EntityWidget> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildLastUpdatedWidget() {
|
||||
Widget _buildSecondRowWidget() {
|
||||
return Padding(
|
||||
padding: EdgeInsets.fromLTRB(
|
||||
Entity.LEFT_WIDGET_PADDING, Entity.SMALL_FONT_SIZE, 0.0, 0.0),
|
||||
|
@ -11,6 +11,11 @@ class _SliderEntityWidgetState extends _EntityWidgetState {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
if (valueStep < 1) {
|
||||
_multiplier = 10;
|
||||
} else if (valueStep < 0.1) {
|
||||
_multiplier = 100;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@ -20,46 +25,80 @@ class _SliderEntityWidgetState extends _EntityWidgetState {
|
||||
}
|
||||
|
||||
@override
|
||||
Widget _buildActionWidget(BuildContext context) {
|
||||
if (valueStep < 1) {
|
||||
_multiplier = 10;
|
||||
} else if (valueStep < 0.1) {
|
||||
_multiplier = 100;
|
||||
}
|
||||
return Expanded(
|
||||
//width: 200.0,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Slider(
|
||||
min: this.minValue * _multiplier,
|
||||
max: this.maxValue * _multiplier,
|
||||
value: (doubleState <= this.maxValue) &&
|
||||
(doubleState >= this.minValue)
|
||||
? doubleState * _multiplier
|
||||
: this.minValue * _multiplier,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
widget.entity.state = (value.roundToDouble() / _multiplier).toString();
|
||||
});
|
||||
/*eventBus.fire(new StateChangedEvent(widget.entity.entityId,
|
||||
(value.roundToDouble() / _multiplier).toString(), true));*/
|
||||
},
|
||||
onChangeEnd: (value) {
|
||||
setNewState(value.roundToDouble() / _multiplier);
|
||||
},
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(right: Entity.RIGHT_WIDGET_PADDING),
|
||||
child: Text("${widget.entity.state}${widget.entity.unitOfMeasurement}",
|
||||
textAlign: TextAlign.right,
|
||||
style: new TextStyle(
|
||||
fontSize: Entity.STATE_FONT_SIZE,
|
||||
)),
|
||||
)
|
||||
],
|
||||
),
|
||||
Widget _buildExtendedWidget(BuildContext context) {
|
||||
return ListView(
|
||||
children: <Widget>[
|
||||
_buildMainWidget(context),
|
||||
_buildExtendedSlider(),
|
||||
_buildSecondRowWidget()
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildExtendedSlider() {
|
||||
return Slider(
|
||||
min: this.minValue * _multiplier,
|
||||
max: this.maxValue * _multiplier,
|
||||
value: (doubleState <= this.maxValue) &&
|
||||
(doubleState >= this.minValue)
|
||||
? doubleState * _multiplier
|
||||
: this.minValue * _multiplier,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
widget.entity.state =
|
||||
(value.roundToDouble() / _multiplier).toString();
|
||||
});
|
||||
/*eventBus.fire(new StateChangedEvent(widget.entity.entityId,
|
||||
(value.roundToDouble() / _multiplier).toString(), true));*/
|
||||
},
|
||||
onChangeEnd: (value) {
|
||||
setNewState(value.roundToDouble() / _multiplier);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget _buildActionWidget(BuildContext context) {
|
||||
Widget stateWidget = Padding(
|
||||
padding: EdgeInsets.only(right: Entity.RIGHT_WIDGET_PADDING),
|
||||
child: Text("${widget.entity.state}${widget.entity.unitOfMeasurement}",
|
||||
textAlign: TextAlign.right,
|
||||
style: new TextStyle(
|
||||
fontSize: Entity.STATE_FONT_SIZE,
|
||||
)),
|
||||
);
|
||||
if (widget.widgetType == EntityWidgetType.regular) {
|
||||
return Expanded(
|
||||
//width: 200.0,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Slider(
|
||||
min: this.minValue * _multiplier,
|
||||
max: this.maxValue * _multiplier,
|
||||
value: (doubleState <= this.maxValue) &&
|
||||
(doubleState >= this.minValue)
|
||||
? doubleState * _multiplier
|
||||
: this.minValue * _multiplier,
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
widget.entity.state =
|
||||
(value.roundToDouble() / _multiplier).toString();
|
||||
});
|
||||
/*eventBus.fire(new StateChangedEvent(widget.entity.entityId,
|
||||
(value.roundToDouble() / _multiplier).toString(), true));*/
|
||||
},
|
||||
onChangeEnd: (value) {
|
||||
setNewState(value.roundToDouble() / _multiplier);
|
||||
},
|
||||
),
|
||||
),
|
||||
stateWidget
|
||||
],
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return stateWidget;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user