let AI comment everything because well... yeah...
This commit is contained in:
@@ -1,15 +1,34 @@
|
||||
// * Widget for tracking various wildlife monitoring quantities
|
||||
// * Features:
|
||||
// * - Tracking of droppings (Losung) counts and samples
|
||||
// * - Urine marking spot counts and samples
|
||||
// * - Estrus blood sample tracking
|
||||
// * - Hair sample tracking
|
||||
// * All fields support genetic sample counting
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:fforte/l10n/app_localizations.dart';
|
||||
|
||||
/// Widget for managing counts of various wildlife monitoring samples
|
||||
/// Provides input fields for different types of samples and their genetic subsets
|
||||
class Anzahlen extends StatefulWidget {
|
||||
/// Controller for number of droppings found
|
||||
final TextEditingController losungAnz;
|
||||
/// Controller for number of droppings collected
|
||||
final TextEditingController losungGes;
|
||||
/// Controller for number of genetic samples from droppings
|
||||
final TextEditingController losungGen;
|
||||
/// Controller for number of urine marking spots
|
||||
final TextEditingController urinAnz;
|
||||
/// Controller for number of genetic samples from urine
|
||||
final TextEditingController urinGen;
|
||||
/// Controller for number of estrus blood spots
|
||||
final TextEditingController oestrAnz;
|
||||
/// Controller for number of genetic samples from estrus blood
|
||||
final TextEditingController oestrGen;
|
||||
/// Controller for number of hair samples
|
||||
final TextEditingController haarAnz;
|
||||
/// Controller for number of genetic samples from hair
|
||||
final TextEditingController haarGen;
|
||||
|
||||
const Anzahlen(
|
||||
@@ -28,6 +47,7 @@ class Anzahlen extends StatefulWidget {
|
||||
AnzahlenState createState() => AnzahlenState();
|
||||
}
|
||||
|
||||
/// State class for the quantity tracking widget
|
||||
class AnzahlenState extends State<Anzahlen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -37,6 +57,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
// Droppings count section
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
@@ -46,9 +67,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.anzahlLosungen)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -57,9 +76,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.losungAnz.selection = TextSelection(baseOffset: 0, extentOffset: widget.losungAnz.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Align(
|
||||
@@ -67,9 +84,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.davonEingesammelt)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -78,11 +93,10 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.losungGes.selection = TextSelection(baseOffset: 0, extentOffset: widget.losungGes.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
),
|
||||
// Genetic samples from droppings
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
@@ -94,9 +108,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
AppLocalizations.of(context)!.davonGenetikproben),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -107,9 +119,8 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
),
|
||||
],
|
||||
),
|
||||
const Divider(
|
||||
height: 40,
|
||||
),
|
||||
const Divider(height: 40),
|
||||
// Urine marking spots section
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
@@ -119,9 +130,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(AppLocalizations.of(context)!
|
||||
.anzahlUrinMakierstellen)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -130,9 +139,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.urinAnz.selection = TextSelection(baseOffset: 0, extentOffset: widget.urinAnz.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Align(
|
||||
@@ -140,9 +147,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(AppLocalizations.of(context)!
|
||||
.davonGenetikproben)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -151,14 +156,11 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.urinGen.selection = TextSelection(baseOffset: 0, extentOffset: widget.urinGen.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
),
|
||||
const Divider(
|
||||
height: 40,
|
||||
),
|
||||
const Divider(height: 40),
|
||||
// Estrus blood section
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
@@ -168,9 +170,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.anzahlOestrusblut)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -179,9 +179,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.oestrAnz.selection = TextSelection(baseOffset: 0, extentOffset: widget.oestrAnz.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Align(
|
||||
@@ -189,9 +187,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(AppLocalizations.of(context)!
|
||||
.davonGenetikproben)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -200,14 +196,11 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.oestrGen.selection = TextSelection(baseOffset: 0, extentOffset: widget.oestrGen.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
),
|
||||
const Divider(
|
||||
height: 40,
|
||||
),
|
||||
const Divider(height: 40),
|
||||
// Hair samples section
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
@@ -217,9 +210,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.anzahlHaarproben)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -228,9 +219,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.haarAnz.selection = TextSelection(baseOffset: 0, extentOffset: widget.haarAnz.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Align(
|
||||
@@ -238,9 +227,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
child: Text(AppLocalizations.of(context)!
|
||||
.davonGenetikproben)),
|
||||
),
|
||||
const SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
Expanded(
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft, child: TextField(
|
||||
@@ -249,9 +236,7 @@ class AnzahlenState extends State<Anzahlen> {
|
||||
onTap: () => widget.haarGen.selection = TextSelection(baseOffset: 0, extentOffset: widget.haarGen.value.text.length),
|
||||
)),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user