import 'package:flutter/material.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:im_stepper/stepper.dart'; import 'package:unit2/model/passo/land_property_owner.dart'; import 'package:unit2/screens/passo/Land/edit_land/land_appraisal.dart'; import 'package:unit2/screens/passo/Land/edit_land/location_and_boundaries_edit.dart'; import 'package:unit2/screens/passo/Land/edit_land/other_improvements_edit.dart'; import 'package:unit2/screens/passo/Land/edit_land/property_assessment_cont_edit.dart'; import 'package:unit2/screens/passo/Land/edit_land/property_assessment_edit.dart'; import 'package:unit2/screens/passo/Land/edit_land/property_owner_info_edit.dart'; import 'package:unit2/screens/passo/Land/edit_land/value_adjustments_edit.dart'; import 'package:unit2/theme-data.dart/colors.dart'; GlobalKey landKey = GlobalKey(); class EditLand extends StatefulWidget { final int index; final LandPropertyOwner faas; final String title; const EditLand( {super.key, required this.title, required this.index, required this.faas}); @override _EditLand createState() => _EditLand(); } class _EditLand extends State { // THE FOLLOWING TWO VARIABLES ARE REQUIRED TO CONTROL THE STEPPER. int activeStep = 0; // Initial step set to 5. int upperBound = 6; // upperBound MUST BE total number of icons minus 1. void PrevBtn() { setState(() { activeStep--; }); } void NextBtn() { setState(() { activeStep++; }); } void onSAveAll() { return Navigator.of(context).pop(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( centerTitle: true, backgroundColor: primary, title: Text('Land FAAS'), ), body: Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ NumberStepper( numbers: [1, 2, 3, 4, 5, 6, 7], activeStepColor: primary, numberStyle: TextStyle(color: Colors.white), lineColor: primary, // activeStep property set to activeStep variable defined above. activeStep: activeStep, activeStepBorderColor: Colors.white, activeStepBorderWidth: 1, // This ensures step-tapping updates the activeStep. onStepReached: (index) { setState(() { activeStep = index; }); }, ), Expanded( child: Container( child: content(PrevBtn, NextBtn, onSAveAll), ), ), ], ), ), ); } /// Returns the next button. // Returns the content widget based on the activeStep. Widget content(PrevBtn, NextBtn, onSAveAll) { switch (activeStep) { case 0: return LandPropertyOwnerInfoEdit(NextBtn, widget.faas!); case 1: return LandLocationAndBoundariesEdit(PrevBtn, NextBtn, widget.faas!); case 2: return LandAppraisalEdit(PrevBtn, NextBtn, widget.faas.id!); case 3: return OtherImprovementEditPage(PrevBtn, NextBtn, widget.faas.id!); case 4: return ValueAdjustmentEditPage(PrevBtn, NextBtn, widget.faas.id!); case 5: return LandPropertyAssessmentEditPage( PrevBtn, NextBtn, widget.faas.id!); case 6: return LandSignatoriesEdit(onSAveAll, widget.faas.id!); default: return LandPropertyOwnerInfoEdit(NextBtn, widget.faas!); } } }