diff --git a/flutter b/flutter new file mode 100644 index 0000000..e69de29 diff --git a/lib/screens/Excursion/widgets/hinweise.dart b/lib/screens/Excursion/widgets/hinweise.dart index 36b3f9e..666a8ce 100644 --- a/lib/screens/Excursion/widgets/hinweise.dart +++ b/lib/screens/Excursion/widgets/hinweise.dart @@ -19,9 +19,51 @@ class _HinweiseState extends State { bool heulenChecked = false; bool sonstigesChecked = false; + // for sonstiges textfield TextEditingController sonstigesController = TextEditingController(); + @override + void initState() { + super.initState(); + sonstigesController.addListener(updateController); + } + + @override + void dispose() { + sonstigesController.dispose(); + super.dispose(); + } + + void updateController() { + Map props = { + "liegestelle": liegestelleChecked, + "kadaver": kadaverChecked, + "sichtung": sichtungChecked, + "heulen": heulenChecked, + "sonstiges": sonstigesChecked + }; + bool firstRun = true; + + widget.hinweise.text = ""; + + for (String key in props.keys) { + if (!firstRun) { + widget.hinweise.text += ";"; + } + if (key == "sonstiges") { + widget.hinweise.text += "$key:${sonstigesController.text}"; + + } else { + widget.hinweise.text += "$key:${props[key]}"; + } + + firstRun = false; + + } + print(widget.hinweise.text); + } + @override Widget build(BuildContext context) { @@ -33,6 +75,7 @@ class _HinweiseState extends State { value: liegestelleChecked, onChanged: (bool? value) { setState(() => liegestelleChecked = value ?? false); + updateController(); } ), @@ -41,6 +84,7 @@ class _HinweiseState extends State { value: kadaverChecked, onChanged: (bool? value) { setState(() => kadaverChecked = value ?? false); + updateController(); } ), @@ -49,6 +93,7 @@ class _HinweiseState extends State { value: sichtungChecked, onChanged: (bool? value) { setState(() => sichtungChecked = value ?? false); + updateController(); } ), @@ -57,18 +102,20 @@ class _HinweiseState extends State { value: heulenChecked, onChanged: (bool? value) { setState(() => heulenChecked = value ?? false); + updateController(); } ), CheckboxListTile( title: Text("Sonstiges"), - value: liegestelleChecked, + value: sonstigesChecked, onChanged: (bool? value) { setState(() => sonstigesChecked = value ?? false); + updateController(); } ), if (sonstigesChecked) - VarTextField(textController: sonstigesController, localization: "Sonstiges", dbName: "HinweiseSonstiges", required: false, dbDesignation: DatabasesEnum.excursion,) + VarTextField(textController: sonstigesController, localization: "Sonstiges", dbName: "HinweiseSonstiges", required: false, dbDesignation: DatabasesEnum.excursion) ], );