build_app
This commit is contained in:
		
							parent
							
								
									4dd18386ac
								
							
						
					
					
						commit
						6cb6b41383
					
				| @ -69,6 +69,9 @@ public class BuilderService { | ||||
| 		executeDump(true); | ||||
| 
 | ||||
| 		// ADD OTHER SERVICE | ||||
| addCustomMenu( "Testm",  "Transcations");  | ||||
| 
 | ||||
| 
 | ||||
| addCustomMenu( "Child",  "Transcations");  | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -23,20 +23,6 @@ import com.realnet.forma.Services.TestmService ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -61,20 +47,6 @@ public class TestmController { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -91,20 +63,6 @@ public class TestmController { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -163,20 +121,6 @@ public class TestmController { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -18,20 +18,6 @@ import com.realnet.WhoColumn.Entity.Extension; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| import com.realnet.forma.Entity.Child; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  @Entity  | ||||
|  @Data | ||||
|  public class    Testm extends Extension {  | ||||
| @ -60,31 +46,5 @@ private String selectautotypename; | ||||
| 
 | ||||
| private String selectautomul; | ||||
| 
 | ||||
| @OneToOne(  cascade=CascadeType.ALL) | ||||
|  private  Child child;  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
|   | ||||
| 
 | ||||
| private String bar_code; | ||||
|   | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
| private String qr_code; | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
| private int numbera; | ||||
| 
 | ||||
| private int numberb; | ||||
| 
 | ||||
| private String calculatedadd; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -18,20 +18,6 @@ import java.util.*; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -32,20 +32,6 @@ import com.realnet.forma.Services.TestmService; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	import org.springframework.stereotype.Service; | ||||
| 
 | ||||
| @Service | ||||
| @ -71,20 +57,6 @@ private TestmRepository Repository; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| public Testm Savedata(Testm data) { | ||||
| 
 | ||||
| 
 | ||||
| @ -118,20 +90,6 @@ if (data.getSelectauto() != null) { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	data.setUpdatedBy(getUser().getUserId()); | ||||
| 		data.setCreatedBy(getUser().getUserId()); | ||||
| 		data.setAccountId(getUser().getAccount().getAccount_id()); | ||||
| @ -177,29 +135,6 @@ old.setSelectauto(data.getSelectauto()); | ||||
| 
 | ||||
| old.setSelectautomul(data.getSelectautomul()); | ||||
| 
 | ||||
| old.setChild(data.getChild()); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| old.setBar_code(data.getBar_code()); | ||||
|   | ||||
| 
 | ||||
|   | ||||
| old.setQr_code(data.getQr_code()); | ||||
|   | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| old.setNumbera(data.getNumbera()); | ||||
| 
 | ||||
| old.setNumberb(data.getNumberb()); | ||||
| 
 | ||||
| old.setCalculatedadd(data.getCalculatedadd()); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| final Testm test = Repository.save(old); | ||||
| 		data.setUpdatedBy(getUser().getUserId()); | ||||
|   return test;}  | ||||
| @ -210,20 +145,6 @@ final Testm test = Repository.save(old); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -1,4 +1,2 @@ | ||||
| CREATE TABLE db.Testm(id BIGINT NOT NULL AUTO_INCREMENT, numberb int, numbera int, calculatedadd VARCHAR(400), selecdya int, selectdyamul VARCHAR(400), onetoone VARCHAR(400), selectmulsta VARCHAR(400), valuell VARCHAR(400), bar_code VARCHAR(400), dataggg VARCHAR(400), selectauto int, selectautomul VARCHAR(400), qr_code VARCHAR(400), namem VARCHAR(400), selectsta VARCHAR(400),  PRIMARY KEY (id)); | ||||
| 
 | ||||
| CREATE TABLE db.Child(id BIGINT NOT NULL AUTO_INCREMENT, namemmm VARCHAR(400),  PRIMARY KEY (id)); | ||||
| CREATE TABLE db.Testm(id BIGINT NOT NULL AUTO_INCREMENT, selecdya int, selectdyamul VARCHAR(400), selectmulsta VARCHAR(400), selectauto int, selectautomul VARCHAR(400), namem VARCHAR(400), selectsta VARCHAR(400),  PRIMARY KEY (id)); | ||||
| 
 | ||||
|  | ||||
| @ -59,20 +59,6 @@ Future<List<Map<String, dynamic>>> getAllWithPagination( | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -104,20 +90,6 @@ Future<List<Map<String, dynamic>>> getAllWithPagination( | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -42,20 +42,6 @@ import '../../../../Reuseable/reusable_dropdown_field.dart'; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -259,254 +245,6 @@ if (element['namem'] != null) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   Widget buildFormField(String fieldOption) { | ||||
|     return Padding( | ||||
|       padding: const EdgeInsets.only(bottom: 16.0), | ||||
|       child: Card( | ||||
|         elevation: 4, | ||||
|         shape: RoundedRectangleBorder( | ||||
|           borderRadius: BorderRadius.circular(8), | ||||
|         ), | ||||
|         child: Padding( | ||||
|           padding: const EdgeInsets.all(12.0), | ||||
|           child: TextFormField( | ||||
|             decoration: InputDecoration( | ||||
|               labelText: fieldOption, | ||||
|               border: OutlineInputBorder( | ||||
|                 borderRadius: BorderRadius.circular(8), | ||||
|               ), | ||||
|             ), | ||||
|             onSaved: (value) { | ||||
|               if (formData['child'] == null) { | ||||
|                 formData['child'] = {}; | ||||
|               } | ||||
|               formData['child'][fieldOption] = value; | ||||
|             }, | ||||
|           ), | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   late Future<List<Map<String, dynamic>>> _valuelldataFuture; // Data from fetchData | ||||
| 
 | ||||
|   Future<List<Map<String, dynamic>>> valuellfetchData() async { | ||||
|      | ||||
|     final resp = await apiService.getEntities(); | ||||
| 
 | ||||
|       if (resp != null) { | ||||
|              return resp; | ||||
|       } else { | ||||
|         throw Exception('Failed to load data: '); | ||||
|       } | ||||
|    | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   void showvaluellDialog(BuildContext context) { | ||||
|     showDialog( | ||||
|       context: context, | ||||
|       builder: (BuildContext context) { | ||||
|         return SingleChildScrollView( | ||||
|           child: AlertDialog( | ||||
|             title: const Text('Select a record'), | ||||
|             content: FutureBuilder<List<Map<String, dynamic>>>( | ||||
|               future: _valuelldataFuture, | ||||
|               builder: (context, snapshot) { | ||||
|                 if (snapshot.connectionState == ConnectionState.waiting) { | ||||
|                   return const Center(child: CircularProgressIndicator()); | ||||
|                 } else if (snapshot.hasError) { | ||||
|                   return Center(child: Text('Error: ${snapshot.error}')); | ||||
|                 } else if (!snapshot.hasData || snapshot.data!.isEmpty) { | ||||
|                   return const Center(child: Text('No data available..')); | ||||
|                 } else { | ||||
| final List<String> columnsToShow = [ | ||||
| 
 | ||||
|                      | ||||
|   | ||||
| 
 | ||||
|                     'namem',  | ||||
|                       | ||||
| 
 | ||||
|                     ]; | ||||
|                   return SingleChildScrollView( | ||||
|                     scrollDirection: Axis.horizontal, | ||||
|                     child: DataTable( | ||||
|                       columnSpacing: 30, | ||||
|                       headingRowColor: MaterialStateColor.resolveWith( | ||||
|                           (states) => Colors.blue.shade100), | ||||
|                       dataRowColor: MaterialStateColor.resolveWith( | ||||
|                           (states) => Colors.white), | ||||
|                       dividerThickness: 0.5, | ||||
|                       columns: columnsToShow | ||||
|                           .map( | ||||
|                             (key) => DataColumn( | ||||
|                               label: Text( | ||||
|                                 key, | ||||
|                                 style: const TextStyle( | ||||
|                                     fontWeight: FontWeight.bold, fontSize: 16), | ||||
|                               ), | ||||
|                             ), | ||||
|                           ) | ||||
|                           .toList(), | ||||
|                       rows: snapshot.data!.map((item) { | ||||
|                         return DataRow( | ||||
|                             cells: columnsToShow.map((key) { | ||||
|                           return DataCell( | ||||
|                             Text( | ||||
|                               item[key].toString(), | ||||
|                               style: const TextStyle(fontSize: 14), | ||||
|                             ), | ||||
|                             onTap: () { | ||||
|                               setState(() { | ||||
| 
 | ||||
|   | ||||
|                                 namemController.text = item['namem'] ?? ''; | ||||
|   | ||||
| 
 | ||||
|                                 // Add more fields as needed | ||||
|                               }); | ||||
|                               Navigator.pop(context); | ||||
|                             }, | ||||
|                           ); | ||||
|                         }).toList()); | ||||
|                       }).toList(), | ||||
|                     ), | ||||
|                   ); | ||||
|                 } | ||||
|               }, | ||||
|             ), | ||||
|             actions: [ | ||||
|               TextButton( | ||||
|                 child: const Text('Close'), | ||||
|                 onPressed: () { | ||||
|                   Navigator.of(context).pop(); | ||||
|                 }, | ||||
|               ), | ||||
|             ], | ||||
|           ), | ||||
|         ); | ||||
|       }, | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   final TextEditingController fieldggController = TextEditingController(); | ||||
| 
 | ||||
| 
 | ||||
|   final TextEditingController numberaController = TextEditingController(); | ||||
| 
 | ||||
| 
 | ||||
|   final TextEditingController numberbController = TextEditingController(); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
|   String calculatedaddOperator = '+'; | ||||
|   String calculatedaddresult = ''; | ||||
| 
 | ||||
|   final List<String> calculatedaddoperators = ['+', '-', '*', '/']; | ||||
| 
 | ||||
|   void calculatecalculatedaddResult() { | ||||
|     int calculation; | ||||
|     switch (calculatedaddOperator) { | ||||
|       case '+': | ||||
|         calculation =  | ||||
| 
 | ||||
|   | ||||
| int.parse(numberaController.text) + | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|   | ||||
| int.parse(numberbController.text) + | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| 0; | ||||
| 
 | ||||
| 
 | ||||
|         break; | ||||
|       case '-': | ||||
|         calculation = | ||||
| 
 | ||||
|   | ||||
| int.parse(numberaController.text) - | ||||
|    | ||||
| 
 | ||||
|   | ||||
| int.parse(numberbController.text) - | ||||
|    | ||||
| 
 | ||||
| 0; | ||||
|         break; | ||||
|       case '*': | ||||
|         calculation = | ||||
| 
 | ||||
|   | ||||
| int.parse(numberaController.text) * | ||||
|    | ||||
| 
 | ||||
|   | ||||
| int.parse(numberbController.text) * | ||||
|    | ||||
| 
 | ||||
| 1; | ||||
|         break; | ||||
|       case '/': | ||||
|         if ( | ||||
| 
 | ||||
|   | ||||
| int.parse(numberaController.text)== 0 ||  | ||||
|    | ||||
| 
 | ||||
|   | ||||
| int.parse(numberbController.text)== 0 ||  | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 1 != 1) { | ||||
|           calculatedaddresult = 'Division by zero error'; | ||||
|           return; | ||||
|         } | ||||
|         calculation = ( | ||||
| 
 | ||||
|   | ||||
| int.parse(numberaController.text) / | ||||
|    | ||||
| 
 | ||||
|   | ||||
| int.parse(numberbController.text) / | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| 1).toInt(); | ||||
|         break; | ||||
|       default: | ||||
|         calculation = 0; | ||||
|     } | ||||
|     setState(() { | ||||
|       calculatedaddresult = 'Result: $calculation'; | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   late Future<List<Map<String, dynamic>>> _datagggdataFuture; // Data from fetchData | ||||
| 
 | ||||
|   Future<List<Map<String, dynamic>>> datagggfetchData() async { | ||||
|      | ||||
| final provider = | ||||
|           Provider.of<TestmViewModelScreen>(context, listen: false); | ||||
|     final resp = await provider.getdatagggGrid(); | ||||
| 
 | ||||
|       if (resp != null) { | ||||
|              return resp; | ||||
|       } else { | ||||
|         throw Exception('Failed to load data: '); | ||||
|       } | ||||
|    | ||||
|   } | ||||
| 
 | ||||
|  @override | ||||
|   void initState() { | ||||
|     super.initState();  | ||||
| @ -534,22 +272,6 @@ final provider = | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     _valuelldataFuture = valuellfetchData(); // Initialize _dataFuture with the function | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     _datagggdataFuture = datagggfetchData(); // Initialize _dataFuture with the function | ||||
| 
 | ||||
| 
 | ||||
| }  | ||||
| 
 | ||||
|    | ||||
| @ -584,27 +306,6 @@ final provider = | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  actions: [ | ||||
|           IconButton( | ||||
|             icon: const Icon(Icons.grid_on), | ||||
|             onPressed: () { | ||||
|               showvaluellDialog(context); | ||||
|             }, | ||||
|           ), | ||||
|         ], | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ), | ||||
|       body: SingleChildScrollView( | ||||
|         child: Padding( | ||||
| @ -932,154 +633,6 @@ final provider = | ||||
|         ), | ||||
|       ), | ||||
| 
 | ||||
| Padding( | ||||
|       padding: const EdgeInsets.all(16.0), | ||||
|       child: Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: [ | ||||
|           const SizedBox( | ||||
|             height: 20, | ||||
|             child: Text( | ||||
|               'Child', | ||||
|               style: TextStyle( | ||||
|                 fontSize: 18, | ||||
|                 fontWeight: FontWeight.bold, | ||||
|                 color: Colors.black, | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           const SizedBox(height: 16), // Add space between elements | ||||
| 
 | ||||
|   | ||||
|            | ||||
|           buildFormField('namemmm'), | ||||
|   | ||||
| 		 | ||||
| 
 | ||||
|         ], | ||||
|       ), | ||||
|     ), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Container( | ||||
|   padding: EdgeInsets.all(16.0), | ||||
|   decoration: BoxDecoration( | ||||
|     color: Colors.grey[200], | ||||
|     borderRadius: BorderRadius.circular(8.0), | ||||
|     boxShadow: [ | ||||
|       BoxShadow( | ||||
|         color: Colors.black.withOpacity(0.2), | ||||
|         spreadRadius: 2, | ||||
|         blurRadius: 4, | ||||
|         offset: Offset(0, 2), | ||||
|       ), | ||||
|     ], | ||||
|   ), | ||||
|   child: Column( | ||||
|     children: [ | ||||
|       Text( | ||||
|         "Fieldgg", | ||||
|         style: TextStyle( | ||||
|           fontSize: 18, | ||||
|           fontWeight: FontWeight.bold, | ||||
|         ), | ||||
|       ), | ||||
|       SizedBox(height: 16), | ||||
| 
 | ||||
|   | ||||
| ReusableTextField( | ||||
|   onSaved:(value) => formData['bar_code'] = value , | ||||
|   label:"Enter Bar_code", | ||||
|   // ValidationProperties | ||||
| ), | ||||
| 
 | ||||
|   SizedBox(height: 16), | ||||
|   | ||||
| 
 | ||||
|   | ||||
| ReusableTextField( | ||||
|   onSaved:(value) => formData['qr_code'] = value , | ||||
|   label:"Enter Qr_code", | ||||
|   // ValidationProperties | ||||
| ), | ||||
| 
 | ||||
|   SizedBox(height: 16), | ||||
|   | ||||
| 
 | ||||
|  SizedBox(height: 16), | ||||
|     ], | ||||
|   ), | ||||
| ), | ||||
| const SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| ReusableTextField( | ||||
|                   controller: numberaController, | ||||
| 
 | ||||
|               onSaved:(value) => formData['numbera'] = value , | ||||
|               label: "Enter Numbera", | ||||
|               keyboardType: TextInputType.number, | ||||
|               inputFormatters: [ | ||||
|                 FilteringTextInputFormatter.allow((RegExp(r'[0-9]'))), | ||||
|               ], | ||||
|              // ValidationProperties      | ||||
| ), | ||||
| 
 | ||||
| SizedBox(height: 16),  | ||||
| 
 | ||||
| ReusableTextField( | ||||
|                   controller: numberbController, | ||||
| 
 | ||||
|               onSaved:(value) => formData['numberb'] = value , | ||||
|               label: "Enter Numberb", | ||||
|               keyboardType: TextInputType.number, | ||||
|               inputFormatters: [ | ||||
|                 FilteringTextInputFormatter.allow((RegExp(r'[0-9]'))), | ||||
|               ], | ||||
|              // ValidationProperties      | ||||
| ), | ||||
| 
 | ||||
| SizedBox(height: 16),  | ||||
| 
 | ||||
|       | ||||
|             const SizedBox(height: 8.0), | ||||
|             DropdownButtonFormField<String>( | ||||
|               value: calculatedaddOperator, | ||||
|               items: calculatedaddoperators.map((String operator) { | ||||
|                 return DropdownMenuItem( | ||||
|                   value: operator, | ||||
|                   child: Text(operator), | ||||
|                 ); | ||||
|               }).toList(), | ||||
|               onChanged: (value) { | ||||
|                 setState(() { | ||||
|                   calculatedaddOperator = value!; | ||||
|                   print(calculatedaddOperator.toString()); | ||||
|                   print("value-- $value"); | ||||
|                 }); | ||||
|               }, | ||||
|               decoration: const InputDecoration(labelText: 'Operator'), | ||||
|             ), | ||||
|             const SizedBox(height: 20.0), | ||||
|             ElevatedButton( | ||||
|               onPressed: () { | ||||
|                 if (_formKey.currentState!.validate()) { | ||||
|                   _formKey.currentState?.save();  // Save the form fields | ||||
| 
 | ||||
|                 } | ||||
|                 calculatecalculatedaddResult(); | ||||
|                 setState(() { | ||||
| 
 | ||||
|                 }); | ||||
|               }, | ||||
|               child: const Text('Calculate'), | ||||
|             ), | ||||
|             const SizedBox(height: 20.0), | ||||
|             Text(calculatedaddresult,style: TextStyle(color: Colors.black),), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    const SizedBox(width: 8), | ||||
|                 CustomButton( | ||||
|                   height: getVerticalSize(50), | ||||
| @ -1096,20 +649,6 @@ SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -1129,20 +668,6 @@ SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -1188,66 +713,6 @@ SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|                 SizedBox(height: 16), | ||||
| 
 | ||||
| FutureBuilder<List<Map<String, dynamic>>>( | ||||
|       future: _datagggdataFuture, | ||||
|       builder: (context, snapshot) { | ||||
|         if (snapshot.connectionState == ConnectionState.waiting) { | ||||
|           return const Center(child: CircularProgressIndicator()); | ||||
|         } else if (snapshot.hasError) { | ||||
|           return Center(child: Text('Error: ${snapshot.error}')); | ||||
|         } else if (!snapshot.hasData || snapshot.data!.isEmpty) { | ||||
|           return const Center(child: Text('No data available..')); | ||||
|         } else { | ||||
|           final keys = snapshot.data!.first.keys.toList(); | ||||
| 
 | ||||
|           return SingleChildScrollView( | ||||
|             scrollDirection: Axis.horizontal, | ||||
|             child: DataTable( | ||||
|               columnSpacing: 30, | ||||
|               headingRowColor: MaterialStateColor.resolveWith((states) => Colors.blue.shade100), | ||||
|               dataRowColor: MaterialStateColor.resolveWith((states) => Colors.white), | ||||
|               dividerThickness: 0.5, | ||||
|               columns: keys.map( | ||||
|                     (key) => DataColumn( | ||||
|                   label: Text( | ||||
|                     key, | ||||
|                     style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 16), | ||||
|                   ), | ||||
|                 ), | ||||
|               ) | ||||
|                   .toList(), | ||||
|               rows: snapshot.data!.map((item) { | ||||
|                 return DataRow(cells: keys.map((key) { | ||||
|                   return DataCell( | ||||
|                     Text( | ||||
|                       item[key].toString(), | ||||
|                       style: const TextStyle(fontSize: 14), | ||||
|                     ), | ||||
|                   ); | ||||
|                 }).toList()); | ||||
|               }).toList(), | ||||
|             ), | ||||
|           ); | ||||
|         } | ||||
|       }, | ||||
|     ), | ||||
|                 SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
|    ], | ||||
|           ), | ||||
|               ), | ||||
|  | ||||
| @ -56,20 +56,6 @@ class _testm_entity_list_screenState extends State<testm_entity_list_screen> { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -232,55 +218,7 @@ Future<void> fetchEntities() async { | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['selectautomul'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['child'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['bar_code'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['qr_code'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['numbera'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['numberb'].toString().toLowerCase().contains(keyword.toLowerCase()) || | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|               | ||||
|  entity['dataggg'].toString().toLowerCase().contains(keyword.toLowerCase())  | ||||
|  entity['selectautomul'].toString().toLowerCase().contains(keyword.toLowerCase())  | ||||
| 
 | ||||
| 
 | ||||
|  ).toList(); | ||||
| @ -364,20 +302,6 @@ onTapArrowleft1(BuildContext context) { | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -785,117 +709,6 @@ onTapArrowleft1(BuildContext context) { | ||||
|               ), | ||||
|             ), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|   Padding( | ||||
|               padding: getPadding( | ||||
|                 top: 10, | ||||
|               ), | ||||
|               child: Row( | ||||
|                 mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|                 children: [ | ||||
|                   Text( | ||||
|                     "Bar_code : ", | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16, | ||||
|                   ), | ||||
|                   Text( | ||||
|                     entity['bar_code'].toString() ?? 'No Bar_code Available', | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16Bluegray900, | ||||
|                   ), | ||||
|                 ], | ||||
|               ), | ||||
|             ), | ||||
|   | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|   Padding( | ||||
|               padding: getPadding( | ||||
|                 top: 10, | ||||
|               ), | ||||
|               child: Row( | ||||
|                 mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|                 children: [ | ||||
|                   Text( | ||||
|                     "Qr_code : ", | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16, | ||||
|                   ), | ||||
|                   Text( | ||||
|                     entity['qr_code'].toString() ?? 'No Qr_code Available', | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16Bluegray900, | ||||
|                   ), | ||||
|                 ], | ||||
|               ), | ||||
|             ), | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   Padding( | ||||
|               padding: getPadding( | ||||
|                 top: 10, | ||||
|               ), | ||||
|               child: Row( | ||||
|                 mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|                 children: [ | ||||
|                   Text( | ||||
|                     "Numbera : ", | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16, | ||||
|                   ), | ||||
|                   Text( | ||||
|                     entity['numbera'].toString() ?? 'No Numbera Available', | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16Bluegray900, | ||||
|                   ), | ||||
|                 ], | ||||
|               ), | ||||
|             ), | ||||
| 
 | ||||
| 
 | ||||
|   Padding( | ||||
|               padding: getPadding( | ||||
|                 top: 10, | ||||
|               ), | ||||
|               child: Row( | ||||
|                 mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|                 children: [ | ||||
|                   Text( | ||||
|                     "Numberb : ", | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16, | ||||
|                   ), | ||||
|                   Text( | ||||
|                     entity['numberb'].toString() ?? 'No Numberb Available', | ||||
|                     overflow: TextOverflow.ellipsis, | ||||
|                     textAlign: TextAlign.left, | ||||
|                     style: AppStyle.txtGilroyMedium16Bluegray900, | ||||
|                   ), | ||||
|                 ], | ||||
|               ), | ||||
|             ), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|       | ||||
|    ], | ||||
|         ), | ||||
|  | ||||
| @ -229,52 +229,6 @@ if (element['namem'] != null) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| Widget buildFormField(String fieldOption) { | ||||
|     return Padding( | ||||
|       padding: const EdgeInsets.only(bottom: 16.0), | ||||
|       child: Card( | ||||
|         elevation: 4, | ||||
|         shape: RoundedRectangleBorder( | ||||
|           borderRadius: BorderRadius.circular(8), | ||||
|         ), | ||||
|         child: Padding( | ||||
|           padding: const EdgeInsets.all(12.0), | ||||
|           child: TextFormField( | ||||
|               initialValue: widget.entity['child'] != null && | ||||
|                       widget.entity['child'][fieldOption] != null | ||||
|                   ? widget.entity['child'][fieldOption] | ||||
|                   : '', | ||||
|               decoration: InputDecoration( | ||||
|                 labelText: fieldOption, | ||||
|                 border: OutlineInputBorder( | ||||
|                   borderRadius: BorderRadius.circular(8), | ||||
|                 ), | ||||
|               ), | ||||
| onSaved: (value) { | ||||
|               if (widget.entity['child'] == null) { | ||||
|                 widget.entity['child'] = {}; | ||||
|               } | ||||
|               widget.entity['child'][fieldOption] = value; | ||||
|             }, | ||||
|             ), | ||||
|           ), | ||||
|         ), | ||||
|         ); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   @override | ||||
|   void initState() { | ||||
| @ -326,20 +280,6 @@ if (selectautomulString != null) { | ||||
| selectedselectautomulValue = selectautomulString.split(', '); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
|   | ||||
| @ -367,20 +307,6 @@ selectedselectautomulValue = selectautomulString.split(', '); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -657,154 +583,6 @@ FutureBuilder<List<String>>( | ||||
| ), | ||||
| 
 | ||||
| 
 | ||||
| Padding( | ||||
|       padding: const EdgeInsets.all(16.0), | ||||
|       child: Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: [ | ||||
|           const SizedBox( | ||||
|             height: 20, | ||||
|             child: Text( | ||||
|               'Child', | ||||
|               style: TextStyle( | ||||
|                 fontSize: 18, | ||||
|                 fontWeight: FontWeight.bold, | ||||
|                 color: Colors.black, | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           const SizedBox(height: 16), // Add space between elements | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
|           buildFormField('namemmm'), | ||||
|   | ||||
| 		 | ||||
|         ], | ||||
|       ), | ||||
|     ), | ||||
| 
 | ||||
|   Padding( | ||||
|                   padding: EdgeInsets.all(16), | ||||
|                   child: Column( | ||||
|                     crossAxisAlignment: CrossAxisAlignment.start, | ||||
|                     children: <Widget>[ | ||||
|                        | ||||
| 
 | ||||
|                       ElevatedButton( | ||||
|                         onPressed: () { | ||||
|                           // Save changes logic here | ||||
|                            | ||||
| 
 | ||||
|                           Navigator.pop(context); | ||||
|                           // Implement API call to update data | ||||
|                         }, | ||||
|                         child: Text('Save'), | ||||
|                       ), | ||||
|                     ], | ||||
|                   ), | ||||
|                 ), | ||||
| 
 | ||||
| Container( | ||||
|   padding: EdgeInsets.all(16.0), | ||||
|   decoration: BoxDecoration( | ||||
|     color: Colors.grey[200], | ||||
|     borderRadius: BorderRadius.circular(8.0), | ||||
|     boxShadow: [ | ||||
|       BoxShadow( | ||||
|         color: Colors.black.withOpacity(0.2), | ||||
|         spreadRadius: 2, | ||||
|         blurRadius: 4, | ||||
|         offset: Offset(0, 2), | ||||
|       ), | ||||
|     ], | ||||
|   ), | ||||
|   child: Column( | ||||
|     children: [ | ||||
|       Text( | ||||
|         "Fieldgg", | ||||
|         style: TextStyle( | ||||
|           fontSize: 18, | ||||
|           fontWeight: FontWeight.bold, | ||||
|         ), | ||||
|       ), | ||||
|       SizedBox(height: 16), | ||||
|       | ||||
|        | ||||
|   | ||||
|       SizedBox(height: 16), | ||||
|       TextFormField( | ||||
|         initialValue: widget.entity['bar_code'], | ||||
|         decoration: InputDecoration( | ||||
|           labelText: 'fieldgg bar_code', | ||||
|         ), | ||||
|         onChanged: (value) { | ||||
|           setState(() { | ||||
|             widget.entity['bar_code'] = value; | ||||
|           }); | ||||
|         }, | ||||
|       ), | ||||
|         | ||||
| 
 | ||||
|   | ||||
|       SizedBox(height: 16), | ||||
|       TextFormField( | ||||
|         initialValue: widget.entity['qr_code'], | ||||
|         decoration: InputDecoration( | ||||
|           labelText: 'fieldgg qr_code', | ||||
|         ), | ||||
|         onChanged: (value) { | ||||
|           setState(() { | ||||
|             widget.entity['qr_code'] = value; | ||||
|           }); | ||||
|         }, | ||||
|       ), | ||||
|         | ||||
| 
 | ||||
|       SizedBox(height: 16), | ||||
|     ], | ||||
|   ), | ||||
| ), | ||||
| const SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  ReusableTextField( | ||||
|               initialValue: widget.entity['numbera'].toString(), | ||||
|               onSaved: (value) => widget.entity['numbera']= value, | ||||
|               label: "Enter Numbera", | ||||
|               keyboardType: TextInputType.number, | ||||
|               inputFormatters: [ | ||||
|                 FilteringTextInputFormatter.allow((RegExp(r'[0-9]'))), | ||||
|               ], | ||||
|               validator: (value) { | ||||
|                 if (value == null || value.isEmpty) { | ||||
|                   return 'Please enter a number'; | ||||
|                 } | ||||
|                 return null; | ||||
|               }, | ||||
|             ), | ||||
| 
 | ||||
|  ReusableTextField( | ||||
|               initialValue: widget.entity['numberb'].toString(), | ||||
|               onSaved: (value) => widget.entity['numberb']= value, | ||||
|               label: "Enter Numberb", | ||||
|               keyboardType: TextInputType.number, | ||||
|               inputFormatters: [ | ||||
|                 FilteringTextInputFormatter.allow((RegExp(r'[0-9]'))), | ||||
|               ], | ||||
|               validator: (value) { | ||||
|                 if (value == null || value.isEmpty) { | ||||
|                   return 'Please enter a number'; | ||||
|                 } | ||||
|                 return null; | ||||
|               }, | ||||
|             ), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   | ||||
|           CustomButton( | ||||
|                   height: getVerticalSize(50), | ||||
| @ -821,20 +599,6 @@ const SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -855,20 +619,6 @@ const SizedBox(height: 16), | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -105,26 +105,4 @@ class TestmRepoScreen { | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  Future<dynamic> getdatagggGrid() async { | ||||
|     try { | ||||
|       String apiUrl = "$baseUrl/Testm"; | ||||
|       final response = await _helper.getGetApiResponse(apiUrl); | ||||
|       return response; | ||||
|     } catch (e) { | ||||
|       throw Exception('Failed to Upload dataggg: $e'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| } | ||||
|  | ||||
| @ -168,33 +168,4 @@ List<Map<String, dynamic>> selectautomulItems = []; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   late List<Map<String, dynamic>> datagggdataFuture = | ||||
|       []; // Data from fetchData | ||||
| 
 | ||||
|  Future<List<Map<String, dynamic>>>   getdatagggGrid() async { | ||||
| 
 | ||||
|       try { | ||||
|      final value = await repo.getdatagggGrid(); | ||||
|         datagggdataFuture =  (value as List) | ||||
|             .map((item) => item as Map<String, dynamic>) | ||||
|             .toList(); | ||||
| 
 | ||||
|    return datagggdataFuture; | ||||
|     } catch (e) { | ||||
|       throw Exception('Failed to get all: $e'); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| @ -1,5 +1,6 @@ | ||||
| import '../../Entity/forma/Testm/TestmView/Testm_entity_list_screen.dart'; | ||||
| import '../../Entity/forma/Testm/Testm_viewModel/Testm_view_model_screen.dart'; | ||||
| 
 | ||||
| import '../../Entity/forma/Testm/TestmView/Testm_entity_list_screen.dart'; | ||||
| import '../../Entity/forma/Testm/Testm_viewModel/Testm_view_model_screen.dart'; | ||||
| 
 | ||||
| import 'package:base_project/utils/image_constant.dart'; | ||||
| import 'package:base_project/commans/widgets/custome_drawe_item.dart'; | ||||
| @ -73,22 +74,24 @@ Navigator.pushNamed(context, RouteNames.changePasswordView); | ||||
| ), | ||||
| 
 | ||||
| // NEW MENU | ||||
| DrawerItem( | ||||
|             color: AppColors.primary, | ||||
|             icon: Icons.chat_bubble, | ||||
|             title: 'Testm', | ||||
|             onTap: () { | ||||
|               Navigator.push( | ||||
|                 context, | ||||
|                 MaterialPageRoute( | ||||
|                   builder: (context) => ChangeNotifierProvider( | ||||
|                     create: (context) => TestmViewModelScreen(), | ||||
|                     child: testm_entity_list_screen(), | ||||
|                   ), | ||||
|                 ), | ||||
|               ); | ||||
|             }, | ||||
|           ), | ||||
| 
 | ||||
| 
 | ||||
| DrawerItem( | ||||
| color: AppColors.primary, | ||||
| icon: Icons.chat_bubble, | ||||
| title: 'Testm', | ||||
| onTap: () { | ||||
| Navigator.push( | ||||
| context, | ||||
| MaterialPageRoute( | ||||
| builder: (context) => ChangeNotifierProvider( | ||||
| create: (context) => TestmViewModelScreen(), | ||||
| child: testm_entity_list_screen(), | ||||
| ), | ||||
| ), | ||||
| ); | ||||
| }, | ||||
| ), | ||||
| 
 | ||||
| 
 | ||||
| DrawerItem( | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user