package Interface;
import Classes.CadastroDePessoas;
import Classes.GerenciaTabelas;
import Classes.Pessoa;
import Classes.PlainDocument;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;
public class JanelaAdicionarNovo extends javax.swing.JFrame {
private CadastroDePessoas cadastroDePessoas = new CadastroDePessoas();
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
private static JanelaAdicionarNovo instancia = new JanelaAdicionarNovo();
public JanelaAdicionarNovo() {
initComponents();
this.setTitle("Adicionar Registro");
txtUF.setText("RS");
txtCidade.setText("Porto Alegre");
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setBounds(20, 20, 1024, 768);
txtFormatDataOrigem.setVisible(false);
lblDataOrigem.setVisible(false);
lblDataSemEspacos.setVisible(false);
MaskFormatter mascaraCpf = null;
try {
mascaraCpf = new MaskFormatter("###.###.###-##");
} catch (ParseException pe) {
pe.printStackTrace();
}
mascaraCpf.setPlaceholderCharacter('_');
mascaraCpf.setValidCharacters("[telefone removido]");
mascaraCpf.install(txtFormatCpf);
MaskFormatter mascaraCnpj = null;
try{
mascaraCnpj = new MaskFormatter("##.###.###/####-##");
}
catch(ParseException pe){
pe.printStackTrace();
}
mascaraCnpj.setPlaceholderCharacter('_');
mascaraCnpj.setValidCharacters("[telefone removido]");
mascaraCnpj.install(txtFormatCnpj);
MaskFormatter mascaraData = null;
try {
mascaraData = new MaskFormatter("##/##/####");
} catch (ParseException pe) {
pe.printStackTrace();
}
mascaraData.setPlaceholderCharacter('_');
mascaraData.setValidCharacters("[telefone removido]");
mascaraData.install(txtFormatDataOrigem);
MaskFormatter mascaraCep = null;
try {
mascaraCep = new MaskFormatter("#####-###");
}
catch (ParseException pe) {
pe.printStackTrace();
}
mascaraCep.setPlaceholderCharacter('_');
mascaraCep.setValidCharacters("[telefone removido]");
mascaraCep.install(txtFormatCep);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
GrupoBotoesJAdd = new javax.swing.ButtonGroup();
painel = new javax.swing.JLayeredPane();
opcCnpj = new javax.swing.JRadioButton();
opcCpf = new javax.swing.JRadioButton();
btnAdicionar = new javax.swing.JButton();
btnCancelar = new javax.swing.JButton();
txtCidade = new javax.swing.JTextField();
txtHomePage = new javax.swing.JTextField();
txtEmailGeral = new javax.swing.JTextField();
txtFax = new javax.swing.JTextField();
txtTelefone = new javax.swing.JTextField();
txtUF = new javax.swing.JTextField();
txtBairro = new javax.swing.JTextField();
txtEndereco = new javax.swing.JTextField();
txtApelido = new javax.swing.JTextField();
txtNome = new javax.swing.JTextField();
lblAlerta1 = new javax.swing.JLabel();
lblCpf = new javax.swing.JLabel();
lblCnpj = new javax.swing.JLabel();
lblDataSemEspacos = new javax.swing.JLabel();
lblDataOrigem = new javax.swing.JLabel();
lblEmailGeral = new javax.swing.JLabel();
lblHomePage = new javax.swing.JLabel();
lblFax = new javax.swing.JLabel();
lblTelefone = new javax.swing.JLabel();
lblUf = new javax.swing.JLabel();
lblCep = new javax.swing.JLabel();
lblNome = new javax.swing.JLabel();
lblApelido = new javax.swing.JLabel();
lblEndereco = new javax.swing.JLabel();
lblBairro = new javax.swing.JLabel();
lblCidade = new javax.swing.JLabel();
lblFundo = new javax.swing.JLabel();
txtFormatDataOrigem = new javax.swing.JFormattedTextField();
txtFormatCep = new javax.swing.JFormattedTextField();
txtFormatCpf = new javax.swing.JFormattedTextField();
txtFormatCnpj = new javax.swing.JFormattedTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
setTitle("Adicionar Registro");
setMinimumSize(new java.awt.Dimension(832, 500));
setResizable(false);
GrupoBotoesJAdd.add(opcCnpj);
opcCnpj.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
opcCnpjActionPerformed(evt);
}
});
opcCnpj.setBounds(740, 610, 21, 21);
painel.add(opcCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);
GrupoBotoesJAdd.add(opcCpf);
opcCpf.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
opcCpfActionPerformed(evt);
}
});
opcCpf.setBounds(740, 580, 21, 21);
painel.add(opcCpf, javax.swing.JLayeredPane.PALETTE_LAYER);
btnAdicionar.setText("Adicionar");
btnAdicionar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAdicionarActionPerformed(evt);
}
});
btnAdicionar.setBounds(340, 650, 100, 23);
painel.add(btnAdicionar, javax.swing.JLayeredPane.PALETTE_LAYER);
btnCancelar.setText("Cancelar");
btnCancelar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCancelarActionPerformed(evt);
}
});
btnCancelar.setBounds(470, 650, 100, 23);
painel.add(btnCancelar, javax.swing.JLayeredPane.PALETTE_LAYER);
txtCidade.setFont(new java.awt.Font("Verdana", 0, 12));
txtCidade.setText("Porto Alegre");
txtCidade.setDocument(new PlainDocument(40, "."));
txtCidade.setBounds(140, 380, 390, 22);
painel.add(txtCidade, javax.swing.JLayeredPane.PALETTE_LAYER);
txtHomePage.setFont(new java.awt.Font("Verdana", 0, 12));
txtHomePage.setDocument(new PlainDocument(30, "."));
txtHomePage.setBounds(140, 540, 620, 20);
painel.add(txtHomePage, javax.swing.JLayeredPane.PALETTE_LAYER);
txtEmailGeral.setFont(new java.awt.Font("Verdana", 0, 12));
txtEmailGeral.setDocument(new PlainDocument(50, "."));
txtEmailGeral.setBounds(140, 500, 620, 22);
painel.add(txtEmailGeral, javax.swing.JLayeredPane.PALETTE_LAYER);
txtFax.setFont(new java.awt.Font("Verdana", 0, 12));
txtFax.setDocument(new PlainDocument(30, "."));
txtFax.setBounds(140, 460, 620, 22);
painel.add(txtFax, javax.swing.JLayeredPane.PALETTE_LAYER);
txtTelefone.setFont(new java.awt.Font("Verdana", 0, 12));
txtTelefone.setDocument(new PlainDocument(65, "."));
txtTelefone.setBounds(140, 420, 620, 22);
painel.add(txtTelefone, javax.swing.JLayeredPane.PALETTE_LAYER);
txtUF.setFont(new java.awt.Font("Verdana", 0, 12));
txtUF.setHorizontalAlignment(javax.swing.JTextField.CENTER);
txtUF.setText("RS");
txtUF.setDocument(new PlainDocument());
txtUF.setBounds(570, 380, 31, 22);
painel.add(txtUF, javax.swing.JLayeredPane.PALETTE_LAYER);
txtBairro.setFont(new java.awt.Font("Verdana", 0, 12));
txtBairro.setDocument(new PlainDocument(35, "."));
txtBairro.setBounds(140, 340, 620, 22);
painel.add(txtBairro, javax.swing.JLayeredPane.PALETTE_LAYER);
txtEndereco.setFont(new java.awt.Font("Verdana", 0, 12));
txtEndereco.setDocument(new PlainDocument(50, "."));
txtEndereco.setBounds(140, 300, 620, 22);
painel.add(txtEndereco, javax.swing.JLayeredPane.PALETTE_LAYER);
txtApelido.setFont(new java.awt.Font("Verdana", 0, 12)); // NOI18N
txtApelido.setDocument(new PlainDocument(35, "."));
txtApelido.setBounds(140, 260, 620, 22);
painel.add(txtApelido, javax.swing.JLayeredPane.PALETTE_LAYER);
txtNome.setFont(new java.awt.Font("Verdana", 0, 12)); // NOI18N
txtNome.setDocument(new PlainDocument(45, "."));
txtNome.setBounds(140, 220, 620, 20);
painel.add(txtNome, javax.swing.JLayeredPane.PALETTE_LAYER);
lblAlerta1.setFont(new java.awt.Font("Verdana", 0, 9));
lblAlerta1.setForeground(java.awt.Color.yellow);
lblAlerta1.setText("O Campo \"Nome\" deve ser Preenchido (*)");
lblAlerta1.setBounds(50, 690, 230, 11);
painel.add(lblAlerta1, javax.swing.JLayeredPane.PALETTE_LAYER);
lblCpf.setFont(new java.awt.Font("Verdana", 1, 12));
lblCpf.setForeground(new java.awt.Color(255, 255, 255));
lblCpf.setText("CPF");
lblCpf.setBounds(540, 580, 50, 16);
painel.add(lblCpf, javax.swing.JLayeredPane.PALETTE_LAYER);
lblCnpj.setFont(new java.awt.Font("Verdana", 1, 12));
lblCnpj.setForeground(new java.awt.Color(255, 255, 255));
lblCnpj.setText("CNPJ");
lblCnpj.setBounds(540, 610, 50, 16);
painel.add(lblCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);
lblDataSemEspacos.setFont(new java.awt.Font("Verdana", 0, 9));
lblDataSemEspacos.setForeground(java.awt.Color.yellow);
lblDataSemEspacos.setText("Digite a data no formato: DD/MM/AAAA");
lblDataSemEspacos.setBounds(50, 610, 250, 11);
painel.add(lblDataSemEspacos, javax.swing.JLayeredPane.PALETTE_LAYER);
lblDataOrigem.setFont(new java.awt.Font("Verdana", 1, 12));
lblDataOrigem.setForeground(new java.awt.Color(255, 255, 255));
lblDataOrigem.setText("Data de Nascimento / Fundação");
lblDataOrigem.setBounds(50, 580, 230, 16);
painel.add(lblDataOrigem, javax.swing.JLayeredPane.PALETTE_LAYER);
lblEmailGeral.setFont(new java.awt.Font("Verdana", 1, 12));
lblEmailGeral.setForeground(new java.awt.Color(255, 255, 255));
lblEmailGeral.setText("E-mail");
lblEmailGeral.setBounds(50, 500, 90, 16);
painel.add(lblEmailGeral, javax.swing.JLayeredPane.PALETTE_LAYER);
lblHomePage.setFont(new java.awt.Font("Verdana", 1, 12));
lblHomePage.setForeground(new java.awt.Color(255, 255, 255));
lblHomePage.setText("Home page");
lblHomePage.setBounds(50, 540, 90, 16);
painel.add(lblHomePage, javax.swing.JLayeredPane.PALETTE_LAYER);
lblFax.setFont(new java.awt.Font("Verdana", 1, 12));
lblFax.setForeground(new java.awt.Color(255, 255, 255));
lblFax.setText("FAX");
lblFax.setBounds(50, 460, 30, 16);
painel.add(lblFax, javax.swing.JLayeredPane.PALETTE_LAYER);
lblTelefone.setFont(new java.awt.Font("Verdana", 1, 12));
lblTelefone.setForeground(new java.awt.Color(255, 255, 255));
lblTelefone.setText("Telefone");
lblTelefone.setBounds(50, 420, 80, 16);
painel.add(lblTelefone, javax.swing.JLayeredPane.PALETTE_LAYER);
lblUf.setFont(new java.awt.Font("Verdana", 1, 12));
lblUf.setForeground(new java.awt.Color(255, 255, 255));
lblUf.setText("UF");
lblUf.setBounds(540, 380, 34, 20);
painel.add(lblUf, javax.swing.JLayeredPane.PALETTE_LAYER);
lblCep.setFont(new java.awt.Font("Verdana", 1, 12));
lblCep.setForeground(new java.awt.Color(255, 255, 255));
lblCep.setText("CEP");
lblCep.setBounds(620, 380, 30, 20);
painel.add(lblCep, javax.swing.JLayeredPane.PALETTE_LAYER);
lblNome.setFont(new java.awt.Font("Verdana", 1, 12));
lblNome.setForeground(new java.awt.Color(255, 255, 255));
lblNome.setText("Nome *");
lblNome.setBounds(50, 220, 60, 16);
painel.add(lblNome, javax.swing.JLayeredPane.PALETTE_LAYER);
lblApelido.setFont(new java.awt.Font("Verdana", 1, 12));
lblApelido.setForeground(new java.awt.Color(255, 255, 255));
lblApelido.setText("Apelido");
lblApelido.setBounds(50, 260, 60, 16);
painel.add(lblApelido, javax.swing.JLayeredPane.PALETTE_LAYER);
lblEndereco.setFont(new java.awt.Font("Verdana", 1, 12));
lblEndereco.setForeground(new java.awt.Color(255, 255, 255));
lblEndereco.setText("Endereço");
lblEndereco.setBounds(50, 300, 80, 16);
painel.add(lblEndereco, javax.swing.JLayeredPane.PALETTE_LAYER);
lblBairro.setFont(new java.awt.Font("Verdana", 1, 12));
lblBairro.setForeground(new java.awt.Color(255, 255, 255));
lblBairro.setText("Bairro");
lblBairro.setBounds(50, 340, 70, 16);
painel.add(lblBairro, javax.swing.JLayeredPane.PALETTE_LAYER);
lblCidade.setFont(new java.awt.Font("Verdana", 1, 12));
lblCidade.setForeground(new java.awt.Color(255, 255, 255));
lblCidade.setText("Cidade");
lblCidade.setBounds(50, 380, 70, 16);
painel.add(lblCidade, javax.swing.JLayeredPane.PALETTE_LAYER);
lblFundo.setForeground(new java.awt.Color(255, 255, 255));
lblFundo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Interface/TelaFundo_1.JPG"))); // NOI18N
lblFundo.setBounds(0, 0, 1024, 768);
painel.add(lblFundo, javax.swing.JLayeredPane.DEFAULT_LAYER);
txtFormatDataOrigem.setBounds(270, 580, 120, 20);
painel.add(txtFormatDataOrigem, javax.swing.JLayeredPane.PALETTE_LAYER);
txtFormatCep.setBounds(650, 380, 109, 20);
painel.add(txtFormatCep, javax.swing.JLayeredPane.PALETTE_LAYER);
txtFormatCpf.setEnabled(false);
txtFormatCpf.setBounds(590, 580, 140, 20);
painel.add(txtFormatCpf, javax.swing.JLayeredPane.PALETTE_LAYER);
txtFormatCnpj.setEnabled(false);
txtFormatCnpj.setBounds(590, 610, 140, 20);
painel.add(txtFormatCnpj, javax.swing.JLayeredPane.PALETTE_LAYER);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(painel, javax.swing.GroupLayout.PREFERRED_SIZE, 1024, javax.swing.GroupLayout.PREFERRED_SIZE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(painel, javax.swing.GroupLayout.PREFERRED_SIZE, 768, javax.swing.GroupLayout.PREFERRED_SIZE)
);
pack();
}// </editor-fold>
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private void btnAdicionarActionPerformed(java.awt.event.ActionEvent evt) {
if(txtNome.getText().trim().length() == 0){
JOptionPane.showMessageDialog(rootPane, "O campo nome deve ser preenchido");
}
else{
String nome = txtNome.getText();
Pessoa pessoa = new Pessoa(nome);
cadastroDePessoas.adiciona(pessoa);
String bairro = txtBairro.getText();
pessoa.setBairro(bairro);
String email = txtEmailGeral.getText();
pessoa.setEmail(email);
String fone = txtTelefone.getText();
pessoa.setTelefone(fone);
String endereco = txtEndereco.getText();
pessoa.setEndereco(endereco);
String cidade = txtCidade.getText();
pessoa.setCidade(cidade);
String uf = txtUF.getText();
pessoa.setUf(uf);
String apelido = txtApelido.getText();
pessoa.setApelido(apelido);
String homepage = txtHomePage.getText();
pessoa.setHomepage(homepage);
String fax = txtFax.getText();
pessoa.setFax(fax);
if(txtFormatCep.getText().length() > 0 && txtFormatCep.getText().length() < 8){
JOptionPane.showMessageDialog(null, "O numero do CEP é inválido");
}
else{
String cep = txtFormatCep.getText();
pessoa.setCep(cep);
}
if(!txtFormatDataOrigem.getText().trim().equals("__/__/____")){
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
Date agora = new Date();
Date cal = new Date();
try {
cal = formatoData.parse(txtFormatDataOrigem.getText());
}
catch (ParseException ex){
JOptionPane.showMessageDialog(rootPane, "Formato da data incorreto", "Erro", JOptionPane.ERROR_MESSAGE);
return;
}
// TODO validar meses e dias :/
if(cal.after(agora)){
JOptionPane.showMessageDialog(rootPane, "Data inválida", "Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
pessoa.setDataOrigem(cal);
}
}
if(opcCpf.isSelected()){
if(txtFormatCpf.getText().length() > 0 && txtFormatCpf.getText().length() < 14){
JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
String cpf = txtFormatCpf.getText();
pessoa.setCpf(cpf);
}
}
else if(opcCnpj.isSelected()){
if(txtFormatCnpj.getText().length() > 0 && txtFormatCnpj.getText().length() < 18){
JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
String cnpj = txtFormatCnpj.getText();
pessoa.setCnpj(cnpj);
}
}
gerenciaTabelas.adicionaPessoa(cadastroDePessoas.ultimaPessoaDaLista().parametroAddTabPessoas());
JOptionPane.showMessageDialog(null, "Individuo adicionado com sucesso","Parabéns", JOptionPane.PLAIN_MESSAGE);
this.dispose();
}
}
private void opcCpfActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCpf.isSelected()){
txtFormatCpf.setEnabled(true);
txtFormatCnpj.setEnabled(false);
txtFormatCnpj.setText("");
}
}
private void opcCnpjActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCnpj.isSelected()){
txtFormatCnpj.setEnabled(true);
txtFormatCpf.setEnabled(false);
txtFormatCpf.setText("");
}
}
public JFormattedTextField getDataOrigem(){
return txtFormatDataOrigem;
}
public CadastroDePessoas getCdp(){
return cadastroDePessoas;
}
public void setCdp(CadastroDePessoas cdp){
cadastroDePessoas = cdp;
}
public static JanelaAdicionarNovo getInstancia(){
return instancia;
}
// Variables declaration - do not modify
private javax.swing.ButtonGroup GrupoBotoesJAdd;
private javax.swing.JButton btnAdicionar;
private javax.swing.JButton btnCancelar;
private javax.swing.JLabel lblAlerta1;
private javax.swing.JLabel lblApelido;
private javax.swing.JLabel lblBairro;
private javax.swing.JLabel lblCep;
private javax.swing.JLabel lblCidade;
private javax.swing.JLabel lblCnpj;
private javax.swing.JLabel lblCpf;
private javax.swing.JLabel lblDataOrigem;
private javax.swing.JLabel lblDataSemEspacos;
private javax.swing.JLabel lblEmailGeral;
private javax.swing.JLabel lblEndereco;
private javax.swing.JLabel lblFax;
private javax.swing.JLabel lblFundo;
private javax.swing.JLabel lblHomePage;
private javax.swing.JLabel lblNome;
private javax.swing.JLabel lblTelefone;
private javax.swing.JLabel lblUf;
private javax.swing.JRadioButton opcCnpj;
private javax.swing.JRadioButton opcCpf;
private javax.swing.JLayeredPane painel;
private javax.swing.JTextField txtApelido;
private javax.swing.JTextField txtBairro;
private javax.swing.JTextField txtCidade;
private javax.swing.JTextField txtEmailGeral;
private javax.swing.JTextField txtEndereco;
private javax.swing.JTextField txtFax;
private javax.swing.JFormattedTextField txtFormatCep;
private javax.swing.JFormattedTextField txtFormatCnpj;
private javax.swing.JFormattedTextField txtFormatCpf;
private javax.swing.JFormattedTextField txtFormatDataOrigem;
private javax.swing.JTextField txtHomePage;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtTelefone;
private javax.swing.JTextField txtUF;
// End of variables declaration
}