×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: vinicius furtado
Added: Jan 10, 2022 6:43 PM
Views: 460
Tags: no tags
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package br.com.sistema.view;
  7.  
  8. import br.com.sistema.dao.ClientesDAO;
  9. import br.com.sistema.dao.FuncionariosDAO;
  10. import br.com.sistema.model.Clientes;
  11. import br.com.sistema.model.Funcionarios;
  12. import br.com.sistema.model.Utilitarios;
  13. import br.com.sistema.model.ValidaCPFeCNPJ;
  14. import java.awt.Color;
  15. import java.awt.Component;
  16. import java.awt.event.KeyEvent;
  17.  
  18. import java.util.List;
  19. import javax.swing.JFrame;
  20. import javax.swing.JOptionPane;
  21. import javax.swing.JPanel;
  22. import javax.swing.JTextField;
  23. import javax.swing.table.DefaultTableModel;
  24.  
  25. /**
  26.  *
  27.  * @author Tampelini
  28.  */
  29. public class FrmFuncionarios extends javax.swing.JFrame {
  30.  
  31.     //Metodo Listar na tabela
  32.     public void listar() {
  33.  
  34.         FuncionariosDAO dao = new FuncionariosDAO();
  35.         List<Funcionarios> lista = dao.listarFuncionarios();
  36.         DefaultTableModel dados = (DefaultTableModel) tabelaFuncionarios.getModel();
  37.         dados.setNumRows(0);
  38.  
  39.         for (Funcionarios c : lista) {
  40.             dados.addRow(new Object[]{
  41.                 c.getId(),
  42.                 c.getNome(),
  43.                 c.getRg(),
  44.                 c.getCpf(),
  45.                 c.getEmail(),
  46.                 c.getSenha(),
  47.                 c.getCargo(),
  48.                 c.getNivel_acesso(),
  49.                 c.getTelefone(),
  50.                 c.getCelular(),
  51.                 c.getCep(),
  52.                 c.getEndereco(),
  53.                 c.getNumero(),
  54.                 c.getComplemento(),
  55.                 c.getBairro(),
  56.                 c.getCidade(),
  57.                 c.getUf()
  58.             });
  59.  
  60.         }
  61.  
  62.     }
  63.  
  64.     public FrmFuncionarios() {
  65.         initComponents();
  66.         this.getContentPane().setBackground(Color.WHITE);
  67.  
  68.     }
  69.  
  70.     /**
  71.      * This method is called from within the constructor to initialize the form.
  72.      * WARNING: Do NOT modify this code. The content of this method is always
  73.      * regenerated by the Form Editor.
  74.      */
  75.     @SuppressWarnings("unchecked")
  76.     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  77.     private void initComponents() {
  78.  
  79.         jPanel1 = new javax.swing.JPanel();
  80.         jLabel1 = new javax.swing.JLabel();
  81.         jTabbedPane1 = new javax.swing.JTabbedPane();
  82.         painel_dados = new javax.swing.JPanel();
  83.         jLabel3 = new javax.swing.JLabel();
  84.         txtcpf = new javax.swing.JFormattedTextField();
  85.         jLabel4 = new javax.swing.JLabel();
  86.         txtcel = new javax.swing.JFormattedTextField();
  87.         jLabel5 = new javax.swing.JLabel();
  88.         txtfixo = new javax.swing.JFormattedTextField();
  89.         jLabel6 = new javax.swing.JLabel();
  90.         txtrg = new javax.swing.JFormattedTextField();
  91.         jLabel7 = new javax.swing.JLabel();
  92.         btnbusca = new javax.swing.JButton();
  93.         jLabel8 = new javax.swing.JLabel();
  94.         txtcodigo = new javax.swing.JTextField();
  95.         txtnome = new javax.swing.JTextField();
  96.         txtemail = new javax.swing.JTextField();
  97.         jLabel2 = new javax.swing.JLabel();
  98.         txtend = new javax.swing.JTextField();
  99.         txtcomplemento = new javax.swing.JTextField();
  100.         txtbairro = new javax.swing.JFormattedTextField();
  101.         jLabel9 = new javax.swing.JLabel();
  102.         txtcidade = new javax.swing.JFormattedTextField();
  103.         jLabel10 = new javax.swing.JLabel();
  104.         jLabel11 = new javax.swing.JLabel();
  105.         jLabel12 = new javax.swing.JLabel();
  106.         txtnumero = new javax.swing.JFormattedTextField();
  107.         jLabel13 = new javax.swing.JLabel();
  108.         txtcep = new javax.swing.JFormattedTextField();
  109.         jLabel14 = new javax.swing.JLabel();
  110.         cbuf = new javax.swing.JComboBox<>();
  111.         jLabel15 = new javax.swing.JLabel();
  112.         jLabel17 = new javax.swing.JLabel();
  113.         txtsenha = new javax.swing.JPasswordField();
  114.         jLabel18 = new javax.swing.JLabel();
  115.         txtcargo = new javax.swing.JTextField();
  116.         cbnivel = new javax.swing.JComboBox<>();
  117.         jLabel19 = new javax.swing.JLabel();
  118.         jPanel4 = new javax.swing.JPanel();
  119.         jScrollPane1 = new javax.swing.JScrollPane();
  120.         tabelaFuncionarios = new javax.swing.JTable();
  121.         jLabel16 = new javax.swing.JLabel();
  122.         txtpesquisa = new javax.swing.JTextField();
  123.         btnpesquisar = new javax.swing.JButton();
  124.         btnnovo = new javax.swing.JButton();
  125.         btnsalvar = new javax.swing.JButton();
  126.         btneditar = new javax.swing.JButton();
  127.         btnexcluir = new javax.swing.JButton();
  128.  
  129.         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  130.         setTitle("Cadastro de Funcionários");
  131.         addWindowListener(new java.awt.event.WindowAdapter() {
  132.             public void windowActivated(java.awt.event.WindowEvent evt) {
  133.                 formWindowActivated(evt);
  134.             }
  135.         });
  136.  
  137.         jPanel1.setBackground(new java.awt.Color(0, 102, 204));
  138.  
  139.         jLabel1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
  140.         jLabel1.setForeground(new java.awt.Color(255, 255, 255));
  141.         jLabel1.setText("Cadastro de Funcionários");
  142.  
  143.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  144.         jPanel1.setLayout(jPanel1Layout);
  145.         jPanel1Layout.setHorizontalGroup(
  146.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  147.             .addGroup(jPanel1Layout.createSequentialGroup()
  148.                 .addGap(23, 23, 23)
  149.                 .addComponent(jLabel1)
  150.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  151.         );
  152.         jPanel1Layout.setVerticalGroup(
  153.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  154.             .addGroup(jPanel1Layout.createSequentialGroup()
  155.                 .addGap(21, 21, 21)
  156.                 .addComponent(jLabel1)
  157.                 .addContainerGap(20, Short.MAX_VALUE))
  158.         );
  159.  
  160.         jTabbedPane1.setBackground(new java.awt.Color(255, 255, 255));
  161.  
  162.         painel_dados.setBackground(new java.awt.Color(255, 255, 255));
  163.         painel_dados.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
  164.         painel_dados.addComponentListener(new java.awt.event.ComponentAdapter() {
  165.             public void componentShown(java.awt.event.ComponentEvent evt) {
  166.                 painel_dadosComponentShown(evt);
  167.             }
  168.         });
  169.  
  170.         jLabel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  171.         jLabel3.setText("Nome:");
  172.  
  173.         try {
  174.             txtcpf.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
  175.         } catch (java.text.ParseException ex) {
  176.             ex.printStackTrace();
  177.         }
  178.         txtcpf.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  179.         txtcpf.addFocusListener(new java.awt.event.FocusAdapter() {
  180.             public void focusLost(java.awt.event.FocusEvent evt) {
  181.                 txtcpfFocusLost(evt);
  182.             }
  183.         });
  184.         txtcpf.addKeyListener(new java.awt.event.KeyAdapter() {
  185.             public void keyPressed(java.awt.event.KeyEvent evt) {
  186.                 txtcpfKeyPressed(evt);
  187.             }
  188.         });
  189.  
  190.         jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  191.         jLabel4.setText("E-mail:");
  192.  
  193.         try {
  194.             txtcel.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##) #### - ####")));
  195.         } catch (java.text.ParseException ex) {
  196.             ex.printStackTrace();
  197.         }
  198.         txtcel.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  199.  
  200.         jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  201.         jLabel5.setText("CPF:");
  202.  
  203.         try {
  204.             txtfixo.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##) #### - ####")));
  205.         } catch (java.text.ParseException ex) {
  206.             ex.printStackTrace();
  207.         }
  208.         txtfixo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  209.  
  210.         jLabel6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  211.         jLabel6.setText("RG:");
  212.  
  213.         try {
  214.             txtrg.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###.###-##")));
  215.         } catch (java.text.ParseException ex) {
  216.             ex.printStackTrace();
  217.         }
  218.         txtrg.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  219.  
  220.         jLabel7.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  221.         jLabel7.setText("Telefone (fixo):");
  222.  
  223.         btnbusca.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  224.         btnbusca.setText("Pesquisar");
  225.         btnbusca.addActionListener(new java.awt.event.ActionListener() {
  226.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  227.                 btnbuscaActionPerformed(evt);
  228.             }
  229.         });
  230.  
  231.         jLabel8.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  232.         jLabel8.setText("Celular:");
  233.  
  234.         txtcodigo.setEditable(false);
  235.         txtcodigo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  236.  
  237.         txtnome.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  238.         txtnome.addActionListener(new java.awt.event.ActionListener() {
  239.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  240.                 txtnomeActionPerformed(evt);
  241.             }
  242.         });
  243.  
  244.         txtemail.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  245.  
  246.         jLabel2.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  247.         jLabel2.setText("Código:");
  248.  
  249.         txtend.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  250.  
  251.         txtcomplemento.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  252.  
  253.         txtbairro.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  254.  
  255.         jLabel9.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  256.         jLabel9.setText("CEP:");
  257.  
  258.         txtcidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  259.         txtcidade.addActionListener(new java.awt.event.ActionListener() {
  260.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  261.                 txtcidadeActionPerformed(evt);
  262.             }
  263.         });
  264.  
  265.         jLabel10.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  266.         jLabel10.setText("Endereço:");
  267.  
  268.         jLabel11.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  269.         jLabel11.setText("Complemento:");
  270.  
  271.         jLabel12.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  272.         jLabel12.setText("Bairro:");
  273.  
  274.         txtnumero.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  275.  
  276.         jLabel13.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  277.         jLabel13.setText("Nº:");
  278.  
  279.         try {
  280.             txtcep.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####-###")));
  281.         } catch (java.text.ParseException ex) {
  282.             ex.printStackTrace();
  283.         }
  284.         txtcep.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  285.         txtcep.addKeyListener(new java.awt.event.KeyAdapter() {
  286.             public void keyPressed(java.awt.event.KeyEvent evt) {
  287.                 txtcepKeyPressed(evt);
  288.             }
  289.         });
  290.  
  291.         jLabel14.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  292.         jLabel14.setText("UF:");
  293.  
  294.         cbuf.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  295.         cbuf.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO" }));
  296.  
  297.         jLabel15.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  298.         jLabel15.setText("Cidade:");
  299.  
  300.         jLabel17.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  301.         jLabel17.setText("Senha:");
  302.  
  303.         txtsenha.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  304.  
  305.         jLabel18.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  306.         jLabel18.setText("Cargo:");
  307.  
  308.         txtcargo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  309.  
  310.         cbnivel.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  311.         cbnivel.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Usuário", "Administrador" }));
  312.         cbnivel.addActionListener(new java.awt.event.ActionListener() {
  313.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  314.                 cbnivelActionPerformed(evt);
  315.             }
  316.         });
  317.  
  318.         jLabel19.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  319.         jLabel19.setText("Nível de Acesso:""Dados Pessoais", painel_dados);
  320.  
  321.         jPanel4.setBackground(new java.awt.Color(255, 255, 255));
  322.         jPanel4.addComponentListener(new java.awt.event.ComponentAdapter() {
  323.             public void componentShown(java.awt.event.ComponentEvent evt) {
  324.                 jPanel4ComponentShown(evt);
  325.             }
  326.         });
  327.  
  328.         tabelaFuncionarios = new javax.swing.JTable(){
  329.             public boolean isCellEditable(int rowIndex, int mColIndex) {
  330.                 return false;
  331.             }
  332.         };
  333.         tabelaFuncionarios.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  334.         tabelaFuncionarios.setModel(new javax.swing.table.DefaultTableModel(
  335.             new Object [][] {
  336.  
  337.             },
  338.             new String [] {
  339.                 "Código", "Nome", "RG", "CPF", "E-mail", "Senha", "Cargo", "Nível Acesso", "Telefone", "Celular", "Cep", "Endereço", "Nº", "Comp", "Bairro", "Cidade", "UF"
  340.             }
  341.         ));
  342.         tabelaFuncionarios.addMouseListener(new java.awt.event.MouseAdapter() {
  343.             public void mouseClicked(java.awt.event.MouseEvent evt) {
  344.                 tabelaFuncionariosMouseClicked(evt);
  345.             }
  346.         });
  347.         jScrollPane1.setViewportView(tabelaFuncionarios);
  348.  
  349.         jLabel16.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  350.         jLabel16.setText("Nome:");
  351.  
  352.         txtpesquisa.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  353.         txtpesquisa.addKeyListener(new java.awt.event.KeyAdapter() {
  354.             public void keyPressed(java.awt.event.KeyEvent evt) {
  355.                 txtpesquisaKeyPressed(evt);
  356.             }
  357.         });
  358.  
  359.         btnpesquisar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  360.         btnpesquisar.setText("Pesquisar");
  361.         btnpesquisar.addActionListener(new java.awt.event.ActionListener() {
  362.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  363.                 btnpesquisarActionPerformed(evt);
  364.             }
  365.         });
  366.  
  367.         javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
  368.         jPanel4.setLayout(jPanel4Layout);
  369.         jPanel4Layout.setHorizontalGroup(
  370.             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  371.             .addGroup(jPanel4Layout.createSequentialGroup()
  372.                 .addContainerGap()
  373.                 .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  374.                     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 968, Short.MAX_VALUE)
  375.                     .addGroup(jPanel4Layout.createSequentialGroup()
  376.                         .addComponent(jLabel16)
  377.                         .addGap(9, 9, 9)
  378.                         .addComponent(txtpesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 316, javax.swing.GroupLayout.PREFERRED_SIZE)
  379.                         .addGap(18, 18, 18)
  380.                         .addComponent(btnpesquisar)
  381.                         .addGap(0, 0, Short.MAX_VALUE)))
  382.                 .addContainerGap())
  383.         );
  384.         jPanel4Layout.setVerticalGroup(
  385.             jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  386.             .addGroup(jPanel4Layout.createSequentialGroup()
  387.                 .addGap(35, 35, 35)
  388.                 .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  389.                     .addGroup(jPanel4Layout.createSequentialGroup()
  390.                         .addGap(5, 5, 5)
  391.                         .addComponent(jLabel16))
  392.                     .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  393.                         .addComponent(txtpesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  394.                         .addComponent(btnpesquisar)))
  395.                 .addGap(32, 32, 32)
  396.                 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 272, Short.MAX_VALUE)
  397.                 .addGap(35, 35, 35))
  398.         );
  399.  
  400.         jTabbedPane1.addTab("Consulta de funcionários", jPanel4);
  401.  
  402.         btnnovo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  403.         btnnovo.setText("+ Novo");
  404.         btnnovo.addActionListener(new java.awt.event.ActionListener() {
  405.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  406.                 btnnovoActionPerformed(evt);
  407.             }
  408.         });
  409.  
  410.         btnsalvar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  411.         btnsalvar.setText("Salvar");
  412.         btnsalvar.addActionListener(new java.awt.event.ActionListener() {
  413.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  414.                 btnsalvarActionPerformed(evt);
  415.             }
  416.         });
  417.  
  418.         btneditar.setEnabled( false );// habilita o botão salvar
  419.         btneditar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  420.         btneditar.setText("Editar");
  421.         btneditar.addActionListener(new java.awt.event.ActionListener() {
  422.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  423.                 btneditarActionPerformed(evt);
  424.             }
  425.         });
  426.  
  427.         btnexcluir.setEnabled( false );// habilita o botão salvar
  428.         btnexcluir.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
  429.         btnexcluir.setText("Excluir");
  430.         btnexcluir.addActionListener(new java.awt.event.ActionListener() {
  431.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  432.                 btnexcluirActionPerformed(evt);
  433.             }
  434.         });
  435.  
  436.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  437.         getContentPane().setLayout(layout);
  438.         layout.setHorizontalGroup(
  439.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  440.             .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  441.             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  442.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  443.                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  444.                 .addContainerGap())
  445.             .addGroup(layout.createSequentialGroup()
  446.                 .addGap(271, 271, 271)
  447.                 .addComponent(btnnovo, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
  448.                 .addGap(6, 6, 6)
  449.                 .addComponent(btnsalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
  450.                 .addGap(10, 10, 10)
  451.                 .addComponent(btneditar, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
  452.                 .addGap(10, 10, 10)
  453.                 .addComponent(btnexcluir, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
  454.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  455.         );
  456.         layout.setVerticalGroup(
  457.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  458.             .addGroup(layout.createSequentialGroup()
  459.                 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  460.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  461.                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  462.                 .addGap(41, 41, 41)
  463.                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  464.                     .addComponent(btnnovo, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  465.                     .addComponent(btnsalvar, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  466.                     .addComponent(btneditar, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  467.                     .addComponent(btnexcluir, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE))
  468.                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  469.         );
  470.  
  471.         pack();
  472.         setLocationRelativeTo(null);
  473.     }// </editor-fold>                        
  474.  
  475.     private void txtcidadeActionPerformed(java.awt.event.ActionEvent evt) {                                          
  476.         // TODO add your handling code here:
  477.     }                                        
  478.  
  479.     private void btnbuscaActionPerformed(java.awt.event.ActionEvent evt) {                                        
  480.         // botao buscar Funcionario  por nome    
  481.  
  482.         String nome = txtnome.getText();
  483.         Funcionarios obj = new Funcionarios();
  484.         FuncionariosDAO dao = new FuncionariosDAO();
  485.  
  486.         obj = dao.consultaPorNome(nome);
  487.  
  488.         if (obj.getNome() != null) {
  489.  
  490.             //Exibi os dados do obj nos campos de texto
  491.             txtcodigo.setText(String.valueOf(obj.getId()));
  492.             txtnome.setText(obj.getNome());
  493.             txtrg.setText(obj.getRg());
  494.             txtcpf.setText(obj.getCpf());
  495.             txtemail.setText(obj.getEmail());
  496.             txtsenha.setText(obj.getSenha());
  497.             txtcargo.setText(obj.getCargo());
  498.             cbnivel.setSelectedItem(obj.getNivel_acesso());
  499.  
  500.             txtfixo.setText(obj.getTelefone());
  501.             txtcel.setText(obj.getCelular());
  502.             txtcep.setText(obj.getCep());
  503.             txtend.setText(obj.getEndereco());
  504.             txtnumero.setText(String.valueOf(obj.getNumero()));
  505.             txtcomplemento.setText(obj.getComplemento());
  506.             txtbairro.setText(obj.getBairro());
  507.             txtcidade.setText(obj.getCidade());
  508.             cbuf.setSelectedItem(obj.getUf());
  509.         } else {
  510.             JOptionPane.showMessageDialog(null, "Funcionário  não encontrado!");
  511.         }
  512.  
  513.     }                                        
  514.  
  515.     private void txtcepKeyPressed(java.awt.event.KeyEvent evt) {                                  
  516.  
  517.         //Programacao do keypress
  518.         if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
  519.             Clientes obj = new Clientes();
  520.             ClientesDAO dao = new ClientesDAO();
  521.             obj = dao.buscaCep(txtcep.getText());
  522.  
  523.             txtend.setText(obj.getEndereco());
  524.             txtbairro.setText(obj.getBairro());
  525.             txtcidade.setText(obj.getCidade());
  526.             cbuf.setSelectedItem(obj.getUf());
  527.  
  528.         }
  529.  
  530.     }                                
  531.  
  532.     private void btnpesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                            
  533.         // Botao pesquisar
  534.         String nome = "%" + txtpesquisa.getText() + "%";
  535.  
  536.         FuncionariosDAO dao = new FuncionariosDAO();
  537.         List<Funcionarios> lista = dao.listarFuncionariosPorNome(nome);
  538.  
  539.         DefaultTableModel dados = (DefaultTableModel) tabelaFuncionarios.getModel();
  540.         dados.setNumRows(0);
  541.  
  542.         for (Funcionarios c : lista) {
  543.             dados.addRow(new Object[]{
  544.                 c.getId(),
  545.                 c.getNome(),
  546.                 c.getRg(),
  547.                 c.getCpf(),
  548.                 c.getEmail(),
  549.                 c.getSenhaCriptografada(),
  550.                 c.getCargo(),
  551.                 c.getNivel_acesso(),
  552.                 c.getTelefone(),
  553.                 c.getCelular(),
  554.                 c.getCep(),
  555.                 c.getEndereco(),
  556.                 c.getNumero(),
  557.                 c.getComplemento(),
  558.                 c.getBairro(),
  559.                 c.getCidade(),
  560.                 c.getUf()
  561.             });
  562.  
  563.         }
  564.  
  565.  
  566.     }                                            
  567.  
  568.     private void txtnomeActionPerformed(java.awt.event.ActionEvent evt) {                                        
  569.         // TODO add your handling code here:
  570.     }                                      
  571.  
  572.     private void btnsalvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  573.         // boto salvar
  574.         int lib = 0;  
  575.         String msg = "Os Campos: \n";
  576.        
  577.         if(txtnome.getText().equals("")){//campo nome vazio
  578.             msg += "\n Nome ";
  579.             lib++;
  580.         }
  581.         if(txtcpf.getText().equals("   .   .   -  ")){//campo cpf vazio
  582.             msg += "\n CPF ";
  583.             lib++;
  584.             //JOptionPane.showMessageDialog(null, " Campo CPF está Vazio ", "ERRO AO CADASTRAR ", HEIGHT);
  585.         }
  586.         if(txtcep.getText().equals("     -   ")){//campo cep vazio
  587.             msg += "\n CEP ";
  588.             lib++;
  589.             //JOptionPane.showMessageDialog(null, " Campo CEP está Vazio ", "ERRO AO CADASTRAR ", HEIGHT);
  590.         }
  591.         if(txtcel.getText().equals("(  )        -     ")){//campo celular vazio
  592.             msg += "\n Celular ";
  593.             lib++;
  594.             //JOptionPane.showMessageDialog(null, " Campo Celular está Vazio ", "ERRO AO CADASTRAR ", HEIGHT);
  595.         }
  596.        if (txtnumero.getText().equals("")){//se o numero da residencia estiver nulo seta 0
  597.             txtnumero.setText("0");
  598.         }
  599.  
  600.         if (lib == 0){
  601.            
  602.        
  603.         Funcionarios obj = new Funcionarios();
  604.  
  605.         obj.setNome(txtnome.getText());
  606.         obj.setRg(txtrg.getText());
  607.         obj.setCpf(txtcpf.getText());
  608.         obj.setEmail(txtemail.getText());
  609.  
  610.         obj.setSenha(txtsenha.getText());
  611.         obj.setCargo(txtcargo.getText());
  612.         obj.setNivel_acesso(cbnivel.getSelectedItem().toString());
  613.  
  614.         obj.setTelefone(txtfixo.getText());
  615.         obj.setCelular(txtcel.getText());
  616.         obj.setCep(txtcep.getText());
  617.         obj.setEndereco(txtend.getText());
  618.         obj.setNumero(Integer.parseInt(txtnumero.getText()));
  619.         obj.setComplemento(txtcomplemento.getText());
  620.         obj.setBairro(txtbairro.getText());
  621.         obj.setCidade(txtcidade.getText());
  622.         obj.setUf(cbuf.getSelectedItem().toString());
  623.  
  624.         FuncionariosDAO dao = new FuncionariosDAO();
  625.  
  626.         dao.cadastrarFuncionarios(obj);
  627.  
  628.         new Utilitarios().LimpaTela(painel_dados);
  629.        
  630.         }else{
  631.               msg += "\n\n Estão Vazios.";
  632.         JOptionPane.showMessageDialog(null, msg, "ERRO AO CADASTRAR ", HEIGHT);
  633.         }
  634.  
  635.     }                                        
  636.  
  637.     private void formWindowActivated(java.awt.event.WindowEvent evt) {                                    
  638.         // Carrega a lista
  639.         listar();
  640.  
  641.     }                                    
  642.  
  643.     private void tabelaFuncionariosMouseClicked(java.awt.event.MouseEvent evt) {                                                
  644.         //Pega os dados
  645.        
  646.         if (evt.getClickCount() == 2) {
  647.         jTabbedPane1.setSelectedIndex(0);
  648.        
  649.        
  650.         btnsalvar.setEnabled( false );// desabilita o botão salvar
  651.         btneditar.setEnabled( true );// habilita o botão editar
  652.         btnexcluir.setEnabled( true );//habilita o botão escluir
  653.  
  654.         txtcodigo.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 0).toString());
  655.         txtnome.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 1).toString());
  656.         txtrg.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 2).toString());
  657.         txtcpf.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 3).toString());
  658.         txtemail.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 4).toString());
  659.         txtsenha.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 5).toString());
  660.         txtcargo.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 6).toString());
  661.         cbnivel.setSelectedItem(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 7).toString());
  662.         txtfixo.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 8).toString());
  663.         txtcel.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 9).toString());
  664.         txtcep.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 10).toString());
  665.         txtend.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 11).toString());
  666.         txtnumero.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 12).toString());
  667.         txtcomplemento.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 13).toString());
  668.         txtbairro.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 14).toString());
  669.         txtcidade.setText(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 15).toString());
  670.         cbuf.setSelectedItem(tabelaFuncionarios.getValueAt(tabelaFuncionarios.getSelectedRow(), 16).toString());
  671.         }
  672.  
  673.     }                                              
  674.  
  675.     private void btneditarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  676.         // botao editar
  677.  
  678.         Funcionarios obj = new Funcionarios();
  679.  
  680.         int op;
  681.        
  682.         op = JOptionPane.showConfirmDialog(null, "Você tem certeza que deseja editar?");
  683.  
  684.         if (op == 0) {
  685.        
  686.         obj.setNome(txtnome.getText());
  687.         obj.setRg(txtrg.getText());
  688.         obj.setCpf(txtcpf.getText());
  689.         obj.setEmail(txtemail.getText());
  690.  
  691.         obj.setSenha(txtsenha.getText());
  692.         obj.setCargo(txtcargo.getText());
  693.         obj.setNivel_acesso(cbnivel.getSelectedItem().toString());
  694.  
  695.         obj.setTelefone(txtfixo.getText());
  696.         obj.setCelular(txtcel.getText());
  697.         obj.setCep(txtcep.getText());
  698.         obj.setEndereco(txtend.getText());
  699.         obj.setNumero(Integer.parseInt(txtnumero.getText()));
  700.         obj.setComplemento(txtcomplemento.getText());
  701.         obj.setBairro(txtbairro.getText());
  702.         obj.setCidade(txtcidade.getText());
  703.         obj.setUf(cbuf.getSelectedItem().toString());
  704.  
  705.         obj.setId(Integer.parseInt(txtcodigo.getText()));
  706.  
  707.         FuncionariosDAO dao = new FuncionariosDAO();
  708.  
  709.         dao.alterarFuncionario(obj);
  710.  
  711.         new Utilitarios().LimpaTela(painel_dados);
  712.      
  713.         btnsalvar.setEnabled( true );// habilita o botão salvar
  714.         btneditar.setEnabled( false );// desabilita o botão editar
  715.         btnexcluir.setEnabled( false );// desabilita o botão escluir
  716.         btnnovo.setEnabled( true );// habilita o botão escluir
  717.         }
  718.     }                                        
  719.  
  720.     private void btnexcluirActionPerformed(java.awt.event.ActionEvent evt) {                                          
  721.         // botao excluir
  722.  
  723.         int op;
  724.        
  725.         op = JOptionPane.showConfirmDialog(null, "Você tem certeza que deseja excluir?");
  726.  
  727.         if (op == 0) {
  728.        
  729.         Funcionarios obj = new Funcionarios();
  730.  
  731.         obj.setId(Integer.parseInt(txtcodigo.getText()));
  732.  
  733.         FuncionariosDAO dao = new FuncionariosDAO();
  734.  
  735.         dao.excluirFuncionario(obj);
  736.         new Utilitarios().LimpaTela(painel_dados);
  737.        
  738.         btnsalvar.setEnabled( true );// habilita o botão salvar
  739.         btneditar.setEnabled( false );// desabilita o botão editar
  740.         btnexcluir.setEnabled( false );// desabilita o botão escluir
  741.         btnnovo.setEnabled( true );// habilita o botão escluir
  742.         }
  743.     }                                          
  744.  
  745.     private void txtpesquisaKeyPressed(java.awt.event.KeyEvent evt) {                                      
  746.         String nome = "%" + txtpesquisa.getText() + "%";
  747.  
  748.         FuncionariosDAO dao = new FuncionariosDAO();
  749.         List<Funcionarios> lista = dao.listarFuncionariosPorNome(nome);
  750.  
  751.         DefaultTableModel dados = (DefaultTableModel) tabelaFuncionarios.getModel();
  752.         dados.setNumRows(0);
  753.  
  754.         for (Funcionarios c : lista) {
  755.             dados.addRow(new Object[]{
  756.                 c.getId(),
  757.                 c.getNome(),
  758.                 c.getRg(),
  759.                 c.getCpf(),
  760.                 c.getEmail(),
  761.                 c.getSenha(),
  762.                 c.getCargo(),
  763.                 c.getNivel_acesso(),
  764.                 c.getTelefone(),
  765.                 c.getCelular(),
  766.                 c.getCep(),
  767.                 c.getEndereco(),
  768.                 c.getNumero(),
  769.                 c.getComplemento(),
  770.                 c.getBairro(),
  771.                 c.getCidade(),
  772.                 c.getUf()
  773.             });
  774.  
  775.         }
  776.  
  777.     }                                      
  778.  
  779.     private void btnnovoActionPerformed(java.awt.event.ActionEvent evt) {                                        
  780.         new Utilitarios().LimpaTela(painel_dados);
  781.         btnsalvar.setEnabled( true );// habilita o botão salvar
  782.         btneditar.setEnabled( false );// desabilita o botão editar
  783.         btnexcluir.setEnabled( false );// desabilita o botão escluir
  784.         btnnovo.setEnabled( true );// habilita o botão escluir
  785.     }                                      
  786.  
  787.     private void cbnivelActionPerformed(java.awt.event.ActionEvent evt) {                                        
  788.         // TODO add your handling code here:
  789.     }                                      
  790.  
  791.     private void txtcpfKeyPressed(java.awt.event.KeyEvent evt) {                                  
  792.         // TODO add your handling code here:
  793.     }                                
  794.  
  795.     private void txtcpfFocusLost(java.awt.event.FocusEvent evt) {                                
  796.         // TODO add your handling code here:
  797.         ValidaCPFeCNPJ model = new ValidaCPFeCNPJ();
  798.         Funcionarios obj = new Funcionarios();
  799.         Utilitarios verifica = new Utilitarios();
  800.        
  801.         if(txtcpf.getText().equals("   .   .   -  ")){// compara se a txtcpf está vazia        
  802.         }
  803.         else{
  804.             if (obj.equalsCpf(txtcpf.getText())) {// se for false...
  805.                 JOptionPane.showMessageDialog(null, "CPF Já Cadastrado");
  806.             }else{
  807.                 boolean testecpf = model.isCPF(txtcpf.getText());// envia o cpf para a validação
  808.                 if (testecpf == false) {// se for false...
  809.                     JOptionPane.showMessageDialog(null, "CPF Inválido");
  810.                     txtcpf.setText(obj.getCpf());//seta null no campo cpf
  811.                 }
  812.             }
  813.         }
  814.     }                                
  815.  
  816.     private void jPanel4ComponentShown(java.awt.event.ComponentEvent evt) {                                      
  817.         // TODO add your handling code here:
  818.         btnsalvar.setEnabled( false );// desabilita o botão salvar
  819.         btneditar.setEnabled( false );// desabilita o botão editar
  820.         btnexcluir.setEnabled( false );// desabilita o botão escluir
  821.         btnnovo.setEnabled( false );// desabilita o botão escluir
  822.     }                                      
  823.  
  824.     private void painel_dadosComponentShown(java.awt.event.ComponentEvent evt) {                                            
  825.         // TODO add your handling code here:
  826.         if(txtcodigo.getText().equals("")){
  827.         btnsalvar.setEnabled( true );// habilita o botão salvar
  828.         btneditar.setEnabled( false );// desabilita o botão editar
  829.         btnexcluir.setEnabled( false );// desabilita o botão escluir
  830.         btnnovo.setEnabled( true );// habilita o botão escluir
  831.         }else{
  832.         btnsalvar.setEnabled( false );// desabilita o botão salvar
  833.         btneditar.setEnabled( true );// habilita o botão editar
  834.         btnexcluir.setEnabled( true );// habilita o botão escluir
  835.         btnnovo.setEnabled( true );// habilita o botão escluir  
  836.         }
  837.     }                                          
  838.  
  839.     /**
  840.      * @param args the command line arguments
  841.      */
  842.     public static void main(String args[]) {
  843.         /* Set the Nimbus look and feel */
  844.         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  845.         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  846.          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  847.          */
  848.         try {
  849.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  850.                 if ("Windows".equals(info.getName())) {
  851.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  852.                     break;
  853.                 }
  854.             }
  855.         } catch (ClassNotFoundException ex) {
  856.             java.util.logging.Logger.getLogger(FrmFuncionarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  857.         } catch (InstantiationException ex) {
  858.             java.util.logging.Logger.getLogger(FrmFuncionarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  859.         } catch (IllegalAccessException ex) {
  860.             java.util.logging.Logger.getLogger(FrmFuncionarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  861.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  862.             java.util.logging.Logger.getLogger(FrmFuncionarios.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  863.         }
  864.         //</editor-fold>
  865.         //</editor-fold>
  866.  
  867.         /* Create and display the form */
  868.         java.awt.EventQueue.invokeLater(new Runnable() {
  869.             public void run() {
  870.                 new FrmFuncionarios().setVisible(true);
  871.             }
  872.         });
  873.     }
  874.  
  875.     // Variables declaration - do not modify                    
  876.     private javax.swing.JButton btnbusca;
  877.     private javax.swing.JButton btneditar;
  878.     private javax.swing.JButton btnexcluir;
  879.     private javax.swing.JButton btnnovo;
  880.     private javax.swing.JButton btnpesquisar;
  881.     private javax.swing.JButton btnsalvar;
  882.     private javax.swing.JComboBox<String> cbnivel;
  883.     private javax.swing.JComboBox<String> cbuf;
  884.     private javax.swing.JLabel jLabel1;
  885.     private javax.swing.JLabel jLabel10;
  886.     private javax.swing.JLabel jLabel11;
  887.     private javax.swing.JLabel jLabel12;
  888.     private javax.swing.JLabel jLabel13;
  889.     private javax.swing.JLabel jLabel14;
  890.     private javax.swing.JLabel jLabel15;
  891.     private javax.swing.JLabel jLabel16;
  892.     private javax.swing.JLabel jLabel17;
  893.     private javax.swing.JLabel jLabel18;
  894.     private javax.swing.JLabel jLabel19;
  895.     private javax.swing.JLabel jLabel2;
  896.     private javax.swing.JLabel jLabel3;
  897.     private javax.swing.JLabel jLabel4;
  898.     private javax.swing.JLabel jLabel5;
  899.     private javax.swing.JLabel jLabel6;
  900.     private javax.swing.JLabel jLabel7;
  901.     private javax.swing.JLabel jLabel8;
  902.     private javax.swing.JLabel jLabel9;
  903.     private javax.swing.JPanel jPanel1;
  904.     private javax.swing.JPanel jPanel4;
  905.     private javax.swing.JScrollPane jScrollPane1;
  906.     private javax.swing.JTabbedPane jTabbedPane1;
  907.     private javax.swing.JPanel painel_dados;
  908.     private javax.swing.JTable tabelaFuncionarios;
  909.     private javax.swing.JFormattedTextField txtbairro;
  910.     private javax.swing.JTextField txtcargo;
  911.     private javax.swing.JFormattedTextField txtcel;
  912.     private javax.swing.JFormattedTextField txtcep;
  913.     private javax.swing.JFormattedTextField txtcidade;
  914.     private javax.swing.JTextField txtcodigo;
  915.     private javax.swing.JTextField txtcomplemento;
  916.     private javax.swing.JFormattedTextField txtcpf;
  917.     private javax.swing.JTextField txtemail;
  918.     private javax.swing.JTextField txtend;
  919.     private javax.swing.JFormattedTextField txtfixo;
  920.     private javax.swing.JTextField txtnome;
  921.     private javax.swing.JFormattedTextField txtnumero;
  922.     private javax.swing.JTextField txtpesquisa;
  923.     private javax.swing.JFormattedTextField txtrg;
  924.     private javax.swing.JPasswordField txtsenha;
  925.     // End of variables declaration                  
  926. }
  927.