joaopaulofcc

Semana 6 - Parte 2

Sep 30th, 2020
974
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 7.34 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'Models/Produto.dart';
  3.  
  4. void main() => runApp(MyApp());
  5.  
  6. class MyApp extends StatelessWidget {
  7.   @override
  8.   Widget build(BuildContext context) {
  9.     return MaterialApp(
  10.       title: "Mercado",
  11.       home: Mercado(),
  12.     );
  13.   }
  14. }
  15.  
  16. class Mercado extends StatefulWidget {
  17.   @override
  18.   _MercadoState createState() => _MercadoState();
  19. }
  20.  
  21. class _MercadoState extends State<Mercado> {
  22.   final TextEditingController _controladorNome = TextEditingController();
  23.   final TextEditingController _controladorQuantidade = TextEditingController();
  24.   final TextEditingController _controladorValor = TextEditingController();
  25.   final TextEditingController _controladorData = TextEditingController();
  26.  
  27.   final List<Produto> produtos = new List();
  28.  
  29.   Future<void> _selectDate(context) async {
  30.     DateTime selectedDate = await showDatePicker(
  31.         context: context,
  32.         initialDate: DateTime.now(),
  33.         firstDate: DateTime(2017),
  34.         lastDate: DateTime(2021));
  35.     String resultado =
  36.         "${selectedDate.day}/${selectedDate.month}/${selectedDate.year}";
  37.     _controladorData.text = resultado;
  38.   }
  39.  
  40.   @override
  41.   Widget build(BuildContext context) {
  42.     return MaterialApp(
  43.         home: DefaultTabController(
  44.             length: 2,
  45.             child: Scaffold(
  46.                 resizeToAvoidBottomPadding: false,
  47.                 appBar: AppBar(
  48.                     title: Text('Produtos'),
  49.                     bottom: TabBar(tabs: [
  50.                       Tab(icon: Icon(Icons.add)),
  51.                       Tab(icon: Icon(Icons.table_chart))
  52.                     ])),
  53.                 body: TabBarView(
  54.                   children: [
  55.                     Column(
  56.                       children: <Widget>[
  57.                         Padding(
  58.                             padding: const EdgeInsets.all(16.0),
  59.                             child: TextField(
  60.                                 controller: _controladorNome,
  61.                                 decoration:
  62.                                     InputDecoration(labelText: 'Nome'))),
  63.                         Padding(
  64.                             padding: const EdgeInsets.all(16.0),
  65.                             child: TextField(
  66.                               controller: _controladorQuantidade,
  67.                               decoration:
  68.                                   InputDecoration(labelText: 'Quantidade'),
  69.                               keyboardType: TextInputType.number,
  70.                             )),
  71.                         Padding(
  72.                             padding: const EdgeInsets.all(16.0),
  73.                             child: TextField(
  74.                               controller: _controladorValor,
  75.                               decoration: InputDecoration(labelText: 'Valor'),
  76.                               keyboardType: TextInputType.number,
  77.                             )),
  78.                         Padding(
  79.                           padding: const EdgeInsets.all(16.0),
  80.                           child: Row(
  81.                             children: [
  82.                               Expanded(
  83.                                   child: TextField(
  84.                                 controller: _controladorData,
  85.                                 enabled: false,
  86.                                 decoration: InputDecoration(labelText: 'Data'),
  87.                               )),
  88.                               Expanded(
  89.                                 child: RaisedButton(
  90.                                     child: Text('Selecionar Data'),
  91.                                     onPressed: () {
  92.                                       _selectDate(context);
  93.                                     }),
  94.                               )
  95.                             ],
  96.                           ),
  97.                         ),
  98.                         Padding(
  99.                             padding: const EdgeInsets.only(top: 16.0),
  100.                             child: RaisedButton(
  101.                               child: Text('Cadastrar'),
  102.                               onPressed: () {
  103.                                 final String nome = _controladorNome.text;
  104.                                 final int quantidade =
  105.                                     int.tryParse(_controladorQuantidade.text);
  106.                                 final double valor =
  107.                                     double.tryParse(_controladorValor.text);
  108.                                 final Produto produtoNovo = Produto(nome,
  109.                                     quantidade, valor, _controladorData.text);
  110.  
  111.                                 produtos.add(produtoNovo);
  112.                                 print(produtos);
  113.                                 setState(() {});
  114.                               },
  115.                             )),
  116.                       ],
  117.                     ),
  118.                     SingleChildScrollView(
  119.                         scrollDirection: Axis.vertical,
  120.                         child: Center(
  121.                           child: Padding(
  122.                             padding: const EdgeInsets.only(top: 30.0),
  123.                             child: DataTable(
  124.                               //sortAscending: sort,
  125.                               //sortColumnIndex: 0,
  126.                               columns: [
  127.                                 DataColumn(
  128.                                   label: Text("Nome",
  129.                                       style: TextStyle(fontSize: 16)),
  130.                                   numeric: false,
  131.                                 ),
  132.                                 DataColumn(
  133.                                   label: Text("Qtd",
  134.                                       style: TextStyle(fontSize: 16)),
  135.                                   numeric: true,
  136.                                 ),
  137.                                 DataColumn(
  138.                                   label: Text("Valor",
  139.                                       style: TextStyle(fontSize: 16)),
  140.                                   numeric: true,
  141.                                 ),
  142.                                 DataColumn(
  143.                                   label: Text("Data",
  144.                                       style: TextStyle(fontSize: 16)),
  145.                                   numeric: false,
  146.                                 ),
  147.                               ],
  148.                               rows: produtos
  149.                                   .map(
  150.                                     (produto) => DataRow(cells: [
  151.                                       DataCell(
  152.                                         Text(produto.nome),
  153.                                       ),
  154.                                       DataCell(
  155.                                         Text(produto.quantidade.toString()),
  156.                                       ),
  157.                                       DataCell(
  158.                                         Text(produto.valor.toString()),
  159.                                       ),
  160.                                       DataCell(
  161.                                         Text(produto.data),
  162.                                       ),
  163.                                     ]),
  164.                                   )
  165.                                   .toList(),
  166.                             ),
  167.                           ),
  168.                         ))
  169.                   ],
  170.                 ))));
  171.   }
  172. }
  173.  
Advertisement
Add Comment
Please, Sign In to add comment