Advertisement
ziobudda

Untitled

Oct 23rd, 2022
955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 3.83 KB | None | 0 0
  1. import 'dart:developer';
  2.  
  3. import 'package:flutter/material.dart';
  4.  
  5. import '../../../api/api.dart';
  6. import '../../../schema/category.dart';
  7. import '../../../widget/wElevatedButton.dart';
  8. import '../../../widget/wGenericField.dart';
  9. import '../../../widget/wTextField.dart';
  10.  
  11. class Filter extends StatefulWidget {
  12.   TextEditingController controllerId;
  13.   TextEditingController controllerName;
  14.   TextEditingController controllerCategory;
  15.   dynamic Function()? controllerButton;
  16.  
  17.   Filter(
  18.       {Key? key,
  19.       required this.controllerId,
  20.       required this.controllerName,
  21.       required this.controllerCategory,
  22.       required this.controllerButton})
  23.       : super(key: key);
  24.  
  25.   @override
  26.   State<Filter> createState() => _FilterState();
  27. }
  28.  
  29. class _FilterState extends State<Filter> {
  30.   late List category;
  31.   TextEditingController _controllerId = TextEditingController();
  32.   TextEditingController _controllerName = TextEditingController();
  33.  
  34.   //TextEditingController _controllerCategory = TextEditingController();
  35.  
  36.   @override
  37.   Widget build(BuildContext context) {
  38.     widget.controllerCategory.text = '';
  39.     print("dentro build");
  40.     return Padding(
  41.         padding: const EdgeInsets.all(8.0),
  42.         child: Row(
  43.           children: [
  44.             Expanded(
  45.                 flex: 2,
  46.                 child: WTextField(
  47.                   label: 'Id',
  48.                   controller: _controllerId,
  49.                 )),
  50.             Expanded(
  51.               flex: 8,
  52.               child: WTextField(
  53.                 label: 'Nome prodotto',
  54.                 controller: _controllerName,
  55.               ),
  56.             ),
  57.             Expanded(
  58.               flex: 2,
  59.               child: wGenericField(
  60.                 label: 'Categoria',
  61.                 child: FutureBuilder(
  62.                   future: Api().category.getCategories(),
  63.                   builder: (BuildContext context, AsyncSnapshot snapshot) {
  64.                     print("detro builder");
  65.                     if (!snapshot.hasData) return CircularProgressIndicator();
  66.  
  67.                     List<DropdownMenuItem<String>> r = [];
  68.                     r.add(DropdownMenuItem<String>(
  69.                       value: 'N.A.',
  70.                       child: Text(''),
  71.                     ));
  72.                     for (var i = 0; i < snapshot.data.length; i++) {
  73.                       print(
  74.                           "Analizzo $i/${snapshot.data.length} ${snapshot.data[i].name}");
  75.                       r.add(DropdownMenuItem<String>(
  76.                         value: snapshot.data[i].name,
  77.                         child: Text(snapshot.data[i].name),
  78.                       ));
  79.                     }
  80.                     return DDButton(r);
  81.                   },
  82.                 ),
  83.               ),
  84.             ),
  85.             Expanded(
  86.               flex: 2,
  87.               child: wElevatedButton(
  88.                   onPressed: widget.controllerButton, titolo: "Filtra"),
  89.             ),
  90.           ],
  91.         ));
  92.   }
  93.  
  94.   setChangeId() {
  95.     widget.controllerId.text = _controllerId.text;
  96.   }
  97.  
  98.   setChangeName() {
  99.     widget.controllerName.text = _controllerName.text;
  100.   }
  101.  
  102.   setChangeCategory() {
  103.     print("cambio categoriaa");
  104.   }
  105.  
  106.   @override
  107.   void initState() {
  108.     super.initState();
  109.  
  110.     // Start listening to changes.
  111.     _controllerId.addListener(setChangeId);
  112.     _controllerName.addListener(setChangeName);
  113.   }
  114.  
  115.   Widget DDButton(r) {
  116.     inspect(widget.controllerCategory.text);
  117.     print("dentro ddbutton");
  118.     var valore = 'N.A.';
  119.     return DropdownButton(
  120.       isExpanded: true,
  121.       items: r,
  122.       onChanged: (value) {
  123.         print("Cateogia onChanged");
  124.         inspect(value);
  125.         widget.controllerCategory.text = value as String;
  126.         valore = value;
  127.         setState(() {});
  128.       },
  129.       value: valore,
  130.     );
  131.   }
  132. }
  133.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement