/* * Copyright 2012 MoonJava LTDA. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package br.com.moonjava.flight.view.usuario; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.FocusListener; import java.text.ParseException; import java.util.ResourceBundle; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.text.MaskFormatter; import br.com.moonjava.flight.model.base.Perfil; import br.com.moonjava.flight.util.FlightImageUI; import br.com.moonjava.flight.util.FocusTextField; import br.com.moonjava.flight.util.GerarCodigo; import br.com.moonjava.flight.util.JTextFieldLimit; import br.com.moonjava.flight.util.RequestParamWrapper; /** * @version 1.0 Aug 21, 2012 * @contact miqueias@moonjava.com.br * */ public class CriarUsuarioUI { private final JPanel conteudo; protected final ResourceBundle bundle; private final JButton atualizar; private final JButton deletar; private JTextField nome; private JTextField sobrenome; private JTextField nascimento; private JTextField cpf; private JTextField rg; private JTextField endereco; private JTextField telResidencial; private JTextField telCelular; private JTextField email; private JComboBox perfil; private JTextField login; private JPasswordField senha; private JLabel imagemCpf; private JLabel codigo; private JLabel alertaCpf; private JButton cadastrar; private JLabel imagemNascimento; private JLabel alertaNascimento; private JLabel imagemTelResidencial; private JLabel alertaTelResidencial; private JLabel imagemTelCelular; private JLabel alertaTelCelular; public CriarUsuarioUI(JPanel conteudo, ResourceBundle bundle, JButton atualizar, JButton deletar) { this.conteudo = conteudo; this.bundle = bundle; this.atualizar = atualizar; this.deletar = deletar; disableButtons(); refresh(); mainMenu(); } protected void mainMenu() { // Titulos JLabel tituloCodigo = new JLabel(bundle.getString("criar.usuario.titulo.codigo")); JLabel tituloNome = new JLabel(bundle.getString("criar.pessoafisica.titulo.nome")); JLabel tituloSobrenome = new JLabel(bundle.getString("criar.pessoafisica.titulo.sobrenome")); JLabel tituloNascimento = new JLabel(bundle.getString("criar.pessoafisica.titulo.nascimento")); JLabel tituloCpf = new JLabel(bundle.getString("criar.pessoafisica.titulo.cpf")); JLabel tituloRg = new JLabel(bundle.getString("criar.pessoafisica.titulo.rg")); JLabel tituloEndereco = new JLabel(bundle.getString("criar.pessoafisica.titulo.endereco")); JLabel tituloTelRes = new JLabel(bundle.getString("criar.pessoafisica.titulo.telResidencial")); JLabel tituloTelCelular = new JLabel(bundle.getString("criar.pessoafisica.titulo.telCelular")); JLabel tituloEmail = new JLabel(bundle.getString("criar.pessoafisica.titulo.email")); JLabel tituloPerfil = new JLabel(bundle.getString("criar.usuario.titulo.perfil")); JLabel tituloLogin = new JLabel(bundle.getString("criar.usuario.titulo.usuario")); JLabel tituloSenha = new JLabel(bundle.getString("criar.usuario.titulo.senha")); // Botoes e caixas de textos GerarCodigo gerarCodigo = new GerarCodigo("USUARIO"); codigo = new JLabel(gerarCodigo.getCodigo()); nome = new JTextField(bundle.getString("criar.pessoafisica.antes.nome")); sobrenome = new JTextField(bundle.getString("criar.pessoafisica.antes.sobrenome")); rg = new JTextField(bundle.getString("criar.pessoafisica.antes.rg")); endereco = new JTextField(bundle.getString("criar.pessoafisica.antes.endereco")); telResidencial = new JTextField(bundle.getString("criar.pessoafisica.antes.telResidencial")); telCelular = new JTextField(bundle.getString("criar.pessoafisica.antes.telCelular")); email = new JTextField(bundle.getString("criar.pessoafisica.antes.email")); login = new JTextField(bundle.getString("criar.usuario.antes.login")); senha = new JPasswordField(); cadastrar = new JButton(bundle.getString("criar.usuario.botao.cadastrar")); imagemNascimento = new JLabel(); alertaNascimento = new JLabel(); imagemTelResidencial = new JLabel(); alertaTelResidencial = new JLabel(); imagemTelCelular = new JLabel(); alertaTelCelular = new JLabel(); Perfil[] val = Perfil.values(); String[] perfis = new String[val.length]; for (int i = 0; i < perfis.length; i++) { perfis[i] = val[i].setBundle(bundle); } DefaultComboBoxModel model = new DefaultComboBoxModel(perfis); perfil = new JComboBox(model); try { nascimento = new JFormattedTextField(new MaskFormatter("##/##/####")); cpf = new JFormattedTextField(new MaskFormatter("###.###.###-##")); } catch (ParseException e) { e.printStackTrace(); } imagemCpf = new JLabel(); alertaCpf = new JLabel(); Font font = new Font("Century Gothic", Font.ITALIC, 13); nome.setFont(font); sobrenome.setFont(font); rg.setFont(font); endereco.setFont(font); telResidencial.setFont(font); telCelular.setFont(font); email.setFont(font); login.setFont(font); nome.setForeground(Color.GRAY); sobrenome.setForeground(Color.GRAY); rg.setForeground(Color.GRAY); endereco.setForeground(Color.GRAY); telResidencial.setForeground(Color.GRAY); telCelular.setForeground(Color.GRAY); email.setForeground(Color.GRAY); login.setForeground(Color.GRAY); senha.setDocument(new JTextFieldLimit(50)); tituloCodigo.setBounds(60, 35, 100, 30); tituloNome.setBounds(60, 70, 200, 30); tituloSobrenome.setBounds(60, 105, 200, 30); tituloNascimento.setBounds(60, 140, 160, 30); tituloCpf.setBounds(60, 175, 40, 30); tituloRg.setBounds(60, 210, 40, 30); tituloEndereco.setBounds(60, 245, 100, 30); tituloTelRes.setBounds(60, 280, 140, 30); tituloTelCelular.setBounds(60, 315, 140, 30); tituloEmail.setBounds(60, 355, 160, 30); tituloPerfil.setBounds(60, 390, 80, 30); tituloLogin.setBounds(60, 425, 100, 30); tituloSenha.setBounds(60, 460, 100, 30); codigo.setBounds(200, 35, 100, 30); nome.setBounds(200, 70, 300, 30); sobrenome.setBounds(200, 105, 300, 30); nascimento.setBounds(200, 140, 180, 30); imagemNascimento.setBounds(390, 140, 180, 30); alertaNascimento.setBounds(415, 140, 180, 30); cpf.setBounds(200, 175, 180, 30); rg.setBounds(200, 210, 180, 30); endereco.setBounds(200, 245, 300, 30); telResidencial.setBounds(200, 280, 180, 30); imagemTelResidencial.setBounds(390, 280, 180, 30); alertaTelResidencial.setBounds(415, 280, 300, 30); telCelular.setBounds(200, 315, 180, 30); imagemTelCelular.setBounds(390, 315, 180, 30); alertaTelCelular.setBounds(415, 315, 300, 30); email.setBounds(200, 355, 300, 30); perfil.setBounds(200, 390, 250, 30); login.setBounds(200, 425, 230, 30); senha.setBounds(200, 460, 230, 30); cadastrar.setBounds(600, 460, 150, 30); alertaCpf.setBounds(410, 175, 100, 30); imagemCpf.setBounds(385, 175, 40, 30); conteudo.add(tituloCodigo); conteudo.add(tituloNome); conteudo.add(tituloSobrenome); conteudo.add(tituloNascimento); conteudo.add(tituloCpf); conteudo.add(tituloRg); conteudo.add(tituloEndereco); conteudo.add(tituloTelRes); conteudo.add(tituloTelCelular); conteudo.add(tituloEmail); conteudo.add(tituloPerfil); conteudo.add(tituloLogin); conteudo.add(tituloSenha); conteudo.add(codigo); conteudo.add(nome); conteudo.add(sobrenome); conteudo.add(nascimento); conteudo.add(imagemNascimento); conteudo.add(alertaNascimento); conteudo.add(cpf); conteudo.add(rg); conteudo.add(endereco); conteudo.add(telResidencial); conteudo.add(telCelular); conteudo.add(email); conteudo.add(perfil); conteudo.add(login); conteudo.add(senha); conteudo.add(cadastrar); conteudo.repaint(); conteudo.validate(); } // Listeners protected void addCadastrarListener(ActionListener a) { cadastrar.addActionListener(a); } protected void addFocusListener(FocusListener a) { nome.addFocusListener(a); sobrenome.addFocusListener(a); rg.addFocusListener(a); endereco.addFocusListener(a); telResidencial.addFocusListener(a); telCelular.addFocusListener(a); email.addFocusListener(a); login.addFocusListener(a); ((FocusTextField) a).setField( nome, sobrenome, rg, endereco, telResidencial, telCelular, email, login); ((FocusTextField) a).setText( bundle.getString("criar.pessoafisica.antes.nome"), bundle.getString("criar.pessoafisica.antes.sobrenome"), bundle.getString("criar.pessoafisica.antes.rg"), bundle.getString("criar.pessoafisica.antes.endereco"), bundle.getString("criar.pessoafisica.antes.telResidencial"), bundle.getString("criar.pessoafisica.antes.telCelular"), bundle.getString("criar.pessoafisica.antes.email"), bundle.getString("criar.usuario.antes.login")); } protected void addFocusDataListener(FocusListener a) { nascimento.addFocusListener(a); } protected void addFocusCpfListener(FocusListener a) { cpf.addFocusListener(a); } protected void addFocusTelResListener(FocusListener a) { telResidencial.addFocusListener(a); } protected void addFocusTelCelListener(FocusListener a) { telCelular.addFocusListener(a); } // Getters protected String getCountry() { return bundle.getString("country"); } protected JTextField getCpf() { return cpf; } protected JTextField getTelResidencial() { return telResidencial; } protected JTextField getTelCelular() { return telCelular; } protected String getTextTelResidencial() { return bundle.getString("criar.pessoafisica.antes.telResidencial"); } protected String getTextTelCelular() { return bundle.getString("criar.pessoafisica.antes.telCelular"); } protected RequestParamWrapper getParameters() { Perfil[] val = Perfil.values(); Perfil item = val[perfil.getSelectedIndex()]; RequestParamWrapper request = new RequestParamWrapper(); request.set("codigo", codigo.getText()); request.set("nome", nome.getText()); request.set("sobrenome", sobrenome.getText()); request.set("nascimento", nascimento.getText()); request.set("cpf", cpf.getText()); request.set("rg", rg.getText()); request.set("endereco", endereco.getText()); request.set("telResidencial", telResidencial.getText()); request.set("telCelular", telCelular.getText()); request.set("email", email.getText()); request.set("perfil", item); request.set("login", login.getText()); request.set("senha", String.valueOf(senha.getPassword())); return request; } protected RequestParamWrapper getTexts() { RequestParamWrapper request = new RequestParamWrapper(); request.set("nome", bundle.getString("criar.pessoafisica.antes.nome")); request.set("sobrenome", bundle.getString("criar.pessoafisica.antes.sobrenome")); request.set("rg", bundle.getString("criar.pessoafisica.antes.rg")); request.set("endereco", bundle.getString("criar.pessoafisica.antes.endereco")); request.set("telResidencial", bundle.getString("criar.pessoafisica.antes.telResidencial")); request.set("telCelular", bundle.getString("criar.pessoafisica.antes.telCelular")); request.set("login", bundle.getString("criar.usuario.antes.login")); return request; } protected void addImageNascimentoValid() { FlightImageUI.add(imagemNascimento, alertaNascimento, bundle.getString("validade.valido"), bundle, conteudo); repaint(); } protected void addImageNascimentoInvalid() { FlightImageUI.addError(imagemNascimento, alertaNascimento, bundle.getString("validade.invalido"), bundle, conteudo); repaint(); } protected void addImageCpfValido() { FlightImageUI.add(imagemCpf, alertaCpf, bundle.getString("criar.pessoafisica.cpf.alerta.ok"), bundle, conteudo); repaint(); } protected void addImageCpfInvalido() { FlightImageUI.addError(imagemCpf, alertaCpf, bundle.getString("criar.pessoafisica.cpf.alerta.erro"), bundle, conteudo); repaint(); } protected void messageFailed() { JOptionPane.showMessageDialog(null, bundle.getString("criar.voo.joption.tempo"), bundle.getString("criar.voo.joption.titulo"), JOptionPane.ERROR_MESSAGE); } // Adicionar titulo protected void messageOK() { JOptionPane.showMessageDialog(null, bundle.getString("criar.usuario.sucesso"), "OK", JOptionPane.INFORMATION_MESSAGE); } protected void messageTelResidencialOk() { conteudo.remove(imagemTelResidencial); conteudo.remove(alertaTelResidencial); repaint(); } protected void messageTelCelularOk() { conteudo.remove(imagemTelCelular); conteudo.remove(alertaTelCelular); repaint(); } protected void messageTelResidencialParseExecption() { FlightImageUI.addError(imagemTelResidencial, alertaTelResidencial, bundle.getString("criar.usuario.erro.tel"), bundle, conteudo); repaint(); } protected void messageTelCelularParseExecption() { FlightImageUI.addError(imagemTelCelular, alertaTelCelular, bundle.getString("criar.usuario.erro.tel"), bundle, conteudo); repaint(); } // Adicionar titulo protected void messageCpfInvalidExecption() { JOptionPane.showMessageDialog(null, bundle.getString("criar.pessoafisica.cpf.alerta.erro")); } // Adicionar titulo protected void messageUsuarioExistente() { JOptionPane.showMessageDialog(null, bundle.getString("criar.usuario.erro"), "", JOptionPane.ERROR_MESSAGE); } protected void addMessageFailed() { JOptionPane.showMessageDialog(null, bundle.getString("dadoincorreto"), "flight", JOptionPane.ERROR_MESSAGE); } protected void disableButtons() { atualizar.setEnabled(false); deletar.setEnabled(false); } protected void refresh() { conteudo.removeAll(); repaint(); } protected void repaint() { conteudo.validate(); conteudo.repaint(); } }