add FCS UI
This commit is contained in:
@@ -9,9 +9,14 @@ class LengthPicker extends StatefulWidget {
|
||||
final TextEditingController controller;
|
||||
final String lableKey;
|
||||
final bool isReadOnly;
|
||||
final bool displayFeet;
|
||||
|
||||
const LengthPicker(
|
||||
{Key key, this.controller, this.lableKey, this.isReadOnly = false})
|
||||
{Key key,
|
||||
this.controller,
|
||||
this.lableKey,
|
||||
this.isReadOnly = false,
|
||||
this.displayFeet = false})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -34,10 +39,12 @@ class _LengthPickerState extends State<LengthPicker> {
|
||||
|
||||
_setText() {
|
||||
double v = double.parse(widget.controller.text, (s) => 0);
|
||||
int _v = v.toInt();
|
||||
|
||||
int f = (v / 12).floor();
|
||||
int ins = (v % 12).round();
|
||||
|
||||
_controller.text = "$f' $ins\"";
|
||||
_controller.text = widget.displayFeet ? "$f' $ins\"" : "$_v\"";
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -51,7 +58,7 @@ class _LengthPickerState extends State<LengthPicker> {
|
||||
labelTextKey: widget.lableKey,
|
||||
controller: _controller,
|
||||
textInputType: TextInputType.number,
|
||||
textAlign: TextAlign.end,
|
||||
textAlign: widget.displayFeet ? TextAlign.end : TextAlign.center,
|
||||
)),
|
||||
);
|
||||
}
|
||||
@@ -63,6 +70,7 @@ class _LengthPickerState extends State<LengthPicker> {
|
||||
return LengthPickerDialog(
|
||||
controller: widget.controller,
|
||||
labelKey: widget.lableKey,
|
||||
displayFeet: widget.displayFeet,
|
||||
);
|
||||
},
|
||||
);
|
||||
@@ -72,8 +80,10 @@ class _LengthPickerState extends State<LengthPicker> {
|
||||
class LengthPickerDialog extends StatefulWidget {
|
||||
final TextEditingController controller;
|
||||
final String labelKey;
|
||||
final bool displayFeet;
|
||||
|
||||
const LengthPickerDialog({Key key, this.controller, this.labelKey})
|
||||
const LengthPickerDialog(
|
||||
{Key key, this.controller, this.labelKey, this.displayFeet})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
@@ -91,7 +101,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
if (widget.controller != null) {
|
||||
double v = double.parse(widget.controller.text, (s) => 0);
|
||||
_valueFeet = (v / 12).floor();
|
||||
_valueInc = (v % 12).toInt();
|
||||
_valueInc = widget.displayFeet ? (v % 12).toInt() : v.toInt();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,31 +117,33 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
)),
|
||||
children: [
|
||||
Center(child: Text(_getText())),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0, left: 8),
|
||||
child: LocalText(
|
||||
context,
|
||||
"feet",
|
||||
color: primaryColor,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
activeColor: primaryColor,
|
||||
value: _valueFeet.toDouble(),
|
||||
min: 0,
|
||||
max: 15,
|
||||
divisions: 100,
|
||||
label: (_valueFeet ?? 0).round().toString(),
|
||||
onChanged: (double v) {
|
||||
_updateFeet(v);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
widget.displayFeet
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 8.0, left: 8),
|
||||
child: LocalText(
|
||||
context,
|
||||
"feet",
|
||||
color: primaryColor,
|
||||
fontSize: 12,
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
activeColor: primaryColor,
|
||||
value: _valueFeet.toDouble(),
|
||||
min: 0,
|
||||
max: 15,
|
||||
divisions: 100,
|
||||
label: (_valueFeet ?? 0).round().toString(),
|
||||
onChanged: (double v) {
|
||||
_updateFeet(v);
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
: Container(),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
@@ -148,7 +160,7 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
activeColor: primaryColor,
|
||||
value: _valueInc.toDouble(),
|
||||
min: 0,
|
||||
max: 11,
|
||||
max: widget.displayFeet ? 11 : 50,
|
||||
divisions: 100,
|
||||
label: (_valueInc ?? 0).round().toString(),
|
||||
onChanged: (double v) {
|
||||
@@ -177,13 +189,15 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
|
||||
});
|
||||
if (widget.controller != null) {
|
||||
int _v = _valueInc.round() + _valueFeet.round() * 12;
|
||||
widget.controller.text = _v.toString();
|
||||
widget.controller.text =
|
||||
widget.displayFeet ? _v.toString() : _valueInc.toString();
|
||||
}
|
||||
}
|
||||
|
||||
String _getText() {
|
||||
int ft = _valueFeet.round();
|
||||
int ins = _valueInc.round();
|
||||
return "$ft\' $ins\"";
|
||||
|
||||
return widget.displayFeet ? "$ft\' $ins\"" : "$ins\"";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user