Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package View; import DAO.TreinadorJpaController; import DataBase.Treinador; import academiavisual.FormPrincipal; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; import javax.swing.JOptionPane; /** * * @author afnsoo */ public class JInternalFrameCadastroTreinador extends javax.swing.JInternalFrame { /** * Creates new form JInternalFrameCadastroTreinador */ public JInternalFrameCadastroTreinador() { initComponents(); abaConsulta(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); entityManagerTreinador = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("AcademiaVisualPU") .createEntityManager(); treinadorQuery = java.beans.Beans.isDesignTime() ? null : entityManagerTreinador.createQuery("SELECT t FROM Treinador t"); treinadorList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : treinadorQuery.getResultList(); jButtonExcluirTreinador = new javax.swing.JButton(); jButtonFecharTreinador = new javax.swing.JButton(); jTabbedPaneTreinador = new javax.swing.JTabbedPane(); jPanelConsultaTreinador = new javax.swing.JPanel(); jScrollPaneTreinador = new javax.swing.JScrollPane(); jTableTreinador = new javax.swing.JTable(); jLabelProcurarTreinador = new javax.swing.JLabel(); jTextFieldProcurarTreinador = new javax.swing.JTextField(); jComboBoxProcurarTreinador = new javax.swing.JComboBox(); jButtonProcurarTreinador = new javax.swing.JButton(); jPanelAlterarTreinador = new javax.swing.JPanel(); jLabelNomeTreinador = new javax.swing.JLabel(); jLabelCpfTreinador = new javax.swing.JLabel(); jLabelDataNascimentoTreinador = new javax.swing.JLabel(); jLabelEnderecoTreinador = new javax.swing.JLabel(); jLabelLoginTreinador = new javax.swing.JLabel(); jLabelSenhaTreinador = new javax.swing.JLabel(); jLabelEmailTreinador = new javax.swing.JLabel(); jTextFieldNomeTreinador = new javax.swing.JTextField(); jTextFieldEnderecoTreinador = new javax.swing.JTextField(); jTextFieldLoginTreinador = new javax.swing.JTextField(); jTextFieldEmailTreinador = new javax.swing.JTextField(); jPasswordFieldSenhaTreinador = new javax.swing.JPasswordField(); jLabelAdministradorTreinador = new javax.swing.JLabel(); jCheckBoxAdministradorTreinador = new javax.swing.JCheckBox(); jFormattedTextFieldCpfTreinador = new javax.swing.JFormattedTextField(); jFormattedTextFieldDataTreinador = new javax.swing.JFormattedTextField(); jButtonCancelarTreinador = new javax.swing.JButton(); jButtonConfirmarTreinador = new javax.swing.JButton(); jButtonInserirTreinador = new javax.swing.JButton(); jButtonAlterarTreinador = new javax.swing.JButton(); setTitle("Cadastro Treinador"); addInternalFrameListener(new javax.swing.event.InternalFrameListener() { public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt) { } public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt) { formInternalFrameOpened(evt); } }); jButtonExcluirTreinador.setText("Excluir"); jButtonExcluirTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonExcluirTreinadorActionPerformed(evt); } }); jButtonFecharTreinador.setText("Fechar"); jButtonFecharTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonFecharTreinadorActionPerformed(evt); } }); org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings .createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, treinadorList, jTableTreinador); org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${id}")); columnBinding.setColumnName("Id"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${nome}")); columnBinding.setColumnName("Nome"); columnBinding.setColumnClass(String.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${dataNascimento}")); columnBinding.setColumnName("Data Nascimento"); columnBinding.setColumnClass(java.util.Date.class); columnBinding.setEditable(false); columnBinding = jTableBinding .addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${administrador}")); columnBinding.setColumnName("Administrador"); columnBinding.setColumnClass(Integer.class); columnBinding.setEditable(false); bindingGroup.addBinding(jTableBinding); jTableBinding.bind(); jScrollPaneTreinador.setViewportView(jTableTreinador); jLabelProcurarTreinador.setText("Opo De Busca"); jTextFieldProcurarTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextFieldProcurarTreinadorActionPerformed(evt); } }); jComboBoxProcurarTreinador .setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Id", "Nome", "CPF", "Validade" })); jButtonProcurarTreinador.setText("Buscar"); jButtonProcurarTreinador.setMaximumSize(new java.awt.Dimension(75, 23)); jButtonProcurarTreinador.setMinimumSize(new java.awt.Dimension(75, 23)); jButtonProcurarTreinador.setPreferredSize(new java.awt.Dimension(75, 23)); javax.swing.GroupLayout jPanelConsultaTreinadorLayout = new javax.swing.GroupLayout( jPanelConsultaTreinador); jPanelConsultaTreinador.setLayout(jPanelConsultaTreinadorLayout); jPanelConsultaTreinadorLayout.setHorizontalGroup(jPanelConsultaTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPaneTreinador, javax.swing.GroupLayout.DEFAULT_SIZE, 574, Short.MAX_VALUE) .addGroup(jPanelConsultaTreinadorLayout.createSequentialGroup().addContainerGap() .addComponent(jLabelProcurarTreinador) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jComboBoxProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTextFieldProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButtonProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); jPanelConsultaTreinadorLayout.setVerticalGroup(jPanelConsultaTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelConsultaTreinadorLayout.createSequentialGroup() .addComponent( jScrollPaneTreinador, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(jPanelConsultaTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelProcurarTreinador) .addComponent(jTextFieldProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButtonProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jComboBoxProcurarTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap())); jTabbedPaneTreinador.addTab("Consulta", jPanelConsultaTreinador); jLabelNomeTreinador.setText("Nome:"); jLabelCpfTreinador.setText("CPF:"); jLabelDataNascimentoTreinador.setText("Data Nascimento:"); jLabelEnderecoTreinador.setText("Endereco:"); jLabelLoginTreinador.setText("Login:"); jLabelSenhaTreinador.setText("Senha:"); jLabelEmailTreinador.setText("Email:"); jLabelAdministradorTreinador.setText(" Administrador:"); jCheckBoxAdministradorTreinador.setText("Administrador"); try { jFormattedTextFieldCpfTreinador.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.MaskFormatter("###.###.###-##"))); } catch (java.text.ParseException ex) { ex.printStackTrace(); } jFormattedTextFieldDataTreinador.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory( new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("yyyy/M/dd")))); javax.swing.GroupLayout jPanelAlterarTreinadorLayout = new javax.swing.GroupLayout(jPanelAlterarTreinador); jPanelAlterarTreinador.setLayout(jPanelAlterarTreinadorLayout); jPanelAlterarTreinadorLayout.setHorizontalGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAlterarTreinadorLayout.createSequentialGroup().addContainerGap() .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAlterarTreinadorLayout.createSequentialGroup() .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabelDataNascimentoTreinador) .addComponent(jLabelCpfTreinador).addComponent(jLabelNomeTreinador) .addComponent(jLabelAdministradorTreinador)) .addGap(97, 97, 97) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jCheckBoxAdministradorTreinador) .addComponent(jPasswordFieldSenhaTreinador) .addComponent(jTextFieldEnderecoTreinador, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextFieldLoginTreinador, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jTextFieldEmailTreinador, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE) .addComponent(jTextFieldNomeTreinador, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE) .addComponent(jFormattedTextFieldCpfTreinador) .addComponent(jFormattedTextFieldDataTreinador))) .addComponent(jLabelSenhaTreinador).addComponent(jLabelLoginTreinador) .addComponent(jLabelEnderecoTreinador).addComponent(jLabelEmailTreinador)) .addContainerGap(61, Short.MAX_VALUE))); jPanelAlterarTreinadorLayout.setVerticalGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAlterarTreinadorLayout.createSequentialGroup().addContainerGap() .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelNomeTreinador).addComponent(jTextFieldNomeTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelCpfTreinador).addComponent(jFormattedTextFieldCpfTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelDataNascimentoTreinador).addComponent( jFormattedTextFieldDataTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelEnderecoTreinador).addComponent(jTextFieldEnderecoTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelLoginTreinador).addComponent(jTextFieldLoginTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelSenhaTreinador).addComponent(jPasswordFieldSenhaTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelEmailTreinador) .addComponent(jTextFieldEmailTreinador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(7, 7, 7) .addGroup(jPanelAlterarTreinadorLayout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelAdministradorTreinador) .addComponent(jCheckBoxAdministradorTreinador)) .addContainerGap(82, Short.MAX_VALUE))); jTabbedPaneTreinador.addTab("Alterar", jPanelAlterarTreinador); jButtonCancelarTreinador.setText("Cancelar"); jButtonCancelarTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonCancelarTreinadorActionPerformed(evt); } }); jButtonConfirmarTreinador.setText("Confirmar"); jButtonConfirmarTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonConfirmarTreinadorActionPerformed(evt); } }); jButtonInserirTreinador.setText("Inserir"); jButtonInserirTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonInserirTreinadorActionPerformed(evt); } }); jButtonAlterarTreinador.setText("Alterar"); jButtonAlterarTreinador.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAlterarTreinadorActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTabbedPaneTreinador) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jButtonInserirTreinador) .addGap(18, 18, 18).addComponent(jButtonAlterarTreinador).addGap(18, 18, 18) .addComponent(jButtonExcluirTreinador).addGap(18, 18, 18) .addComponent(jButtonConfirmarTreinador).addGap(18, 18, 18) .addComponent(jButtonCancelarTreinador) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButtonFecharTreinador).addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addComponent(jTabbedPaneTreinador) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButtonInserirTreinador).addComponent(jButtonAlterarTreinador) .addComponent(jButtonExcluirTreinador).addComponent(jButtonFecharTreinador) .addComponent(jButtonCancelarTreinador).addComponent(jButtonConfirmarTreinador)) .addContainerGap())); bindingGroup.bind(); pack(); }// </editor-fold>//GEN-END:initComponents //Bind automtico no funiona como o esperado. Os mtodos abaixo circulam este problema. /** * Popula os textField da aba Alterar. * * @param t Fonte dos dados para o textField, caso seja null os campos sero * esvaziados. */ private void popularCamposAlterar(Treinador t) { if (t == null) { jTextFieldEmailTreinador.setText(""); jTextFieldEnderecoTreinador.setText(""); jTextFieldLoginTreinador.setText(""); jTextFieldNomeTreinador.setText(""); jPasswordFieldSenhaTreinador.setText(""); jFormattedTextFieldCpfTreinador.setValue(null); jCheckBoxAdministradorTreinador.setSelected(false); jFormattedTextFieldDataTreinador.setValue(null); } else { boolean b; b = t.getAdministrador() != 0; /*valor diferente de zero = true. contrrio = false.*/ jTextFieldEmailTreinador.setText(t.getEmail()); jTextFieldEnderecoTreinador.setText(t.getEndereco()); jTextFieldLoginTreinador.setText(t.getLogin()); jTextFieldNomeTreinador.setText(t.getNome()); jPasswordFieldSenhaTreinador.setText(t.getSenha()); jFormattedTextFieldCpfTreinador.setValue(t.getCpf()); jCheckBoxAdministradorTreinador.setSelected(b); jFormattedTextFieldDataTreinador.setValue(t.getDataNascimento()); } } /** * Aps a edio do objeto pega dados da aba Alterar e coloca no objeto. * * @param t Objeto a ser populado. */ private void popularObjeto(Treinador t) { //TODO: Garantir que @param no nulo /*O campo ID gerado pelo banco de dados*/ t.setNome(jTextFieldNomeTreinador.getText()); t.setCpf((String) jFormattedTextFieldCpfTreinador.getText()); t.setEndereco(jTextFieldEnderecoTreinador.getText()); t.setLogin(jTextFieldLoginTreinador.getText()); t.setSenha(Hashing.sha256().hashString(jPasswordFieldSenhaTreinador.getText(), Charsets.UTF_8).toString()); t.setEmail(jTextFieldEmailTreinador.getText()); t.setDataNascimento((Date) jFormattedTextFieldDataTreinador.getValue()); /*Seta se o treinador sendo cadastrado adiminstrador*/ if (jCheckBoxAdministradorTreinador.isSelected()) { t.setAdministrador(1); } else { t.setAdministrador(0); } } /** * Entra na Aba de Consulta */ private void abaConsulta() { jTabbedPaneTreinador.setSelectedIndex(0); jTabbedPaneTreinador.setEnabledAt(0, true); jTabbedPaneTreinador.setEnabledAt(1, false); jButtonConfirmarTreinador.setEnabled(false); jButtonCancelarTreinador.setEnabled(false); jButtonInserirTreinador.setEnabled(true); jButtonAlterarTreinador.setEnabled(true); jButtonExcluirTreinador.setEnabled(true); } /** * Entra na Aba de Alterar */ private void abaAlterar() { jTabbedPaneTreinador.setSelectedIndex(1); jTabbedPaneTreinador.setEnabledAt(1, true); jTabbedPaneTreinador.setEnabledAt(0, false); jButtonInserirTreinador.setEnabled(false); jButtonAlterarTreinador.setEnabled(false); jButtonExcluirTreinador.setEnabled(false); jButtonConfirmarTreinador.setEnabled(true); jButtonCancelarTreinador.setEnabled(true); } /** * Valida os campos com as seguintes normas: * <ul> * <li> Nome: no nulo e menor que 40 caracteres; * <li> CPF: no nulo, vlido, e com 11 caracteres - no formato * ###.###.###-##; * <li> LOGIN: Ser menor que 10 caracteres, no nulo e nico - realizada * consulta no banco de dados; * <li> Password: maior que 6 e menor que 15 caracteres, no sendo nulo; * <li> Email: no nulo e vlido, menor que 40 caracteres; * <li> Endereo: no nulo e menor que 40 caracteres. * </ul> * * @return true caso os campos estejam corretos, false caso contrrio. */ private boolean validacaoDeCampos() { boolean valido = true; String msgErro = ""; String campo; //Checa o campo EMAIL: Pattern p = Pattern.compile("^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$"); Matcher m = p.matcher(jTextFieldEmailTreinador.getText()); campo = jTextFieldEmailTreinador.getText(); if ((!m.find()) || ("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Email invlido. O campo deve ser vlido, no nulo e menor que 40 caracteres\n"; jTextFieldEmailTreinador.setText(""); //Limpa o campo de email } //Checa o campo Nome campo = jTextFieldNomeTreinador.getText(); if (("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Nome invlido. O campo deve no deve ser nulo e deve ser menor que 40 caracteres\n"; jTextFieldNomeTreinador.setText("");// Limpa o campo de nome } //Checa o campo CPF campo = jFormattedTextFieldCpfTreinador.getText(); if (campo.replaceAll("[^0123456789]", "").length() != 11) { valido = false; msgErro += "CPF invlido. O campo deve ter apenas nmeros e deve ser na forma 123.123.123-99\n"; jFormattedTextFieldCpfTreinador.setValue(null); ; //Limpa campo CPF } //Checa o campo login campo = jTextFieldLoginTreinador.getText(); if ((campo.length() < 10) && !("".equals(campo))) { //Campo possivelmente vlido //Checar unicidade //INFO: Cdigo Legado modificado. if ((flagAnterior == INSERIR) || (!campo.equals(treinadorAlterar.getLogin()))) { try { EntityManagerFactory emf = Persistence.createEntityManagerFactory("AcademiaVisualPU"); TreinadorJpaController treinadorJpaController = new TreinadorJpaController(emf); Treinador resultado = (Treinador) treinadorJpaController.findLogin(campo); if (resultado != null) { //Encontrou um login identico valido = false; msgErro += "Login invlido. O campo deve ser nico\n"; jTextFieldLoginTreinador.setText(""); } } catch (Exception e) { //TODO: Definir melhor qual tipo de exceo lanada e.printStackTrace(); } } } else { valido = false; msgErro += "Login invlido. O campo no deve ser nulo e deve ser menor que 10 caracteres\n"; jTextFieldNomeTreinador.setText(""); } //Checa o campo password campo = String.valueOf(jPasswordFieldSenhaTreinador.getPassword()); if ((campo.length() < 6) || (campo.length() > 15)) { valido = false; msgErro += "Senha invlida. O campo deve ter pelo menos 6 caracteres, mas no mais que 15\n"; jPasswordFieldSenhaTreinador.setText(""); } //Checa o campo endereo campo = jTextFieldEnderecoTreinador.getText(); if (("".equals(campo)) || (campo.length() > 40)) { valido = false; msgErro += "Endereo invlido. O campo deve no deve ser nulo e deve ser menor que 40 caracteres\n"; jTextFieldEnderecoTreinador.setText(""); } if (!valido) { JOptionPane.showMessageDialog(null, msgErro, "Campos Errados!", JOptionPane.ERROR_MESSAGE); } return valido; } private void jButtonFecharTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFecharTreinadorActionPerformed dispose(); }//GEN-LAST:event_jButtonFecharTreinadorActionPerformed private void jTextFieldProcurarTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldProcurarTreinadorActionPerformed String[] sql = { "", "SELECT t FROM Treinador t WHERE t.nome LIKE :nome ", "SELECT t FROM Treinador t WHERE t.cpf = :cpf " }; try { Query query = null; if (jTextFieldProcurarTreinador.getText().length() > 0) { if (jComboBoxProcurarTreinador.getSelectedIndex() == 0) { query = entityManagerTreinador.createNamedQuery("Aluno.findById"); query.setParameter("id", Long.valueOf(jTextFieldProcurarTreinador.getText())); } if (jComboBoxProcurarTreinador.getSelectedIndex() == 1) { query = entityManagerTreinador.createQuery(sql[1]); query.setParameter("nome", '%' + jTextFieldProcurarTreinador.getText() + '%'); } } else { query = treinadorQuery; } treinadorList.clear(); treinadorList.addAll(query.getResultList()); jTableTreinador.updateUI(); jTableTreinador.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(this, e); } }//GEN-LAST:event_jTextFieldProcurarTreinadorActionPerformed private void jButtonInserirTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonInserirTreinadorActionPerformed flagAnterior = INSERIR; popularCamposAlterar(null); abaAlterar(); }//GEN-LAST:event_jButtonInserirTreinadorActionPerformed private void jButtonAlterarTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAlterarTreinadorActionPerformed if (!treinadorList.isEmpty() && jTableTreinador.getSelectedRow() != -1) { flagAnterior = ALTERAR; treinadorAlterar = treinadorList.get(jTableTreinador.getSelectedRow()); popularCamposAlterar(treinadorAlterar); abaAlterar(); } else { JOptionPane.showMessageDialog(null, "Selecione um treinador !"); } }//GEN-LAST:event_jButtonAlterarTreinadorActionPerformed private void jButtonExcluirTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExcluirTreinadorActionPerformed if (!treinadorList.isEmpty() && jTableTreinador.getSelectedRow() != -1) { int option = JOptionPane.showConfirmDialog(this, "Verifique com ateno os dados que deseja excluir!\n" + "Clique em sim se esse for mesmo o aluno que deseja excluir.\n" + "Clique em cancelar para voltar."); if (option == JOptionPane.YES_OPTION) { try { /* EXCLUIR O USUARIO DE TODOS AS TABELAS QUE UTILIZAM O MESMO ! Acho que no necessrio -- Luccas. */ treinadorList.get(jTableTreinador.getSelectedRow()).excluir(); treinadorList.remove(jTableTreinador.getSelectedRow()); jTableTreinador.updateUI(); jTableTreinador.repaint(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } else { JOptionPane.showMessageDialog(null, "Excluso cancelada !"); } } else { JOptionPane.showMessageDialog(null, "Selecione um treinador !"); } }//GEN-LAST:event_jButtonExcluirTreinadorActionPerformed private void jButtonConfirmarTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonConfirmarTreinadorActionPerformed boolean atualizacaoFeita = false; /*Indica que a atualizao/insero foi feita com sucesso, mantendo a aba de alterao focada. */ if (flagAnterior == INSERIR) { //Verifica se os campos esto corretos antes de modific-los. if (validacaoDeCampos()) { treinador = new Treinador(); //Cria um aluno vazio popularObjeto(treinador); //Popula o objeto //Insere o objeto no banco de dados treinador.incluir(); /*Coisas do bind: Para adicionar elemento por ultimo na tabela inserir na penultima posio tipo: list.size() - 1 -> No faz sentido, mas assim que o bind funciona... */ //TODO: Consertar o bug que d quando so feitas as primeiras inseres.(primeira e segunda apenas TRATAR ESSES CASOS). treinadorList.add(treinadorList.size() - 1, treinador); jTableTreinador.repaint(); atualizacaoFeita = true; } } if (flagAnterior == ALTERAR) { //Verifica se os campos esto corretos para atualiz-los if (validacaoDeCampos()) { popularObjeto(treinadorAlterar); //altera o aluno no banco de dados treinadorAlterar.alterar(); jTableTreinador.repaint(); atualizacaoFeita = true; } } if (atualizacaoFeita) { abaConsulta(); } }//GEN-LAST:event_jButtonConfirmarTreinadorActionPerformed private void jButtonCancelarTreinadorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelarTreinadorActionPerformed abaConsulta(); }//GEN-LAST:event_jButtonCancelarTreinadorActionPerformed private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) {//GEN-FIRST:event_formInternalFrameOpened if (TelaInicial.verificarAdministrador()) { jButtonInserirTreinador.setEnabled(false); jButtonAlterarTreinador.setEnabled(false); jButtonExcluirTreinador.setEnabled(false); } }//GEN-LAST:event_formInternalFrameOpened private int flagAnterior; //Define qual boto foi clicado private Treinador treinador; //Enderea objetos criados //Flags para identificar que boto foi clicado anteriormente. private final int INSERIR = 1; private final int ALTERAR = 2; //Aluno para ser alterado private Treinador treinadorAlterar; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.persistence.EntityManager entityManagerTreinador; private javax.swing.JButton jButtonAlterarTreinador; private javax.swing.JButton jButtonCancelarTreinador; private javax.swing.JButton jButtonConfirmarTreinador; private javax.swing.JButton jButtonExcluirTreinador; private javax.swing.JButton jButtonFecharTreinador; private javax.swing.JButton jButtonInserirTreinador; private javax.swing.JButton jButtonProcurarTreinador; private javax.swing.JCheckBox jCheckBoxAdministradorTreinador; private javax.swing.JComboBox jComboBoxProcurarTreinador; private javax.swing.JFormattedTextField jFormattedTextFieldCpfTreinador; private javax.swing.JFormattedTextField jFormattedTextFieldDataTreinador; private javax.swing.JLabel jLabelAdministradorTreinador; private javax.swing.JLabel jLabelCpfTreinador; private javax.swing.JLabel jLabelDataNascimentoTreinador; private javax.swing.JLabel jLabelEmailTreinador; private javax.swing.JLabel jLabelEnderecoTreinador; private javax.swing.JLabel jLabelLoginTreinador; private javax.swing.JLabel jLabelNomeTreinador; private javax.swing.JLabel jLabelProcurarTreinador; private javax.swing.JLabel jLabelSenhaTreinador; private javax.swing.JPanel jPanelAlterarTreinador; private javax.swing.JPanel jPanelConsultaTreinador; private javax.swing.JPasswordField jPasswordFieldSenhaTreinador; private javax.swing.JScrollPane jScrollPaneTreinador; private javax.swing.JTabbedPane jTabbedPaneTreinador; private javax.swing.JTable jTableTreinador; private javax.swing.JTextField jTextFieldEmailTreinador; private javax.swing.JTextField jTextFieldEnderecoTreinador; private javax.swing.JTextField jTextFieldLoginTreinador; private javax.swing.JTextField jTextFieldNomeTreinador; private javax.swing.JTextField jTextFieldProcurarTreinador; private java.util.List<DataBase.Treinador> treinadorList; private javax.persistence.Query treinadorQuery; private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables }