/*
* 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.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.model.base.PessoaFisica;
import br.com.moonjava.flight.model.base.Usuario;
import br.com.moonjava.flight.util.FlightImageUI;
import br.com.moonjava.flight.util.FocusTextField;
import br.com.moonjava.flight.util.FormatDateTime;
import br.com.moonjava.flight.util.JTextFieldLimit;
import br.com.moonjava.flight.util.RequestParamWrapper;
/**
* @version 1.0 Sep 3, 2012
* @contact miqueias@moonjava.com.br
*
*/
public class AtualizarUsuarioUI {
private JPanel conteudo;
protected ResourceBundle bundle;
private JButton atualizar;
private JButton deletar;
private JLabel codigo;
private JTextField nome;
private JTextField sobrenome;
private JTextField rg;
private JTextField endereco;
private JTextField telResidencial;
private JTextField telCelular;
private JTextField email;
private JTextField login;
private JPasswordField senha;
private JButton enviar;
private JComboBox perfil;
private JFormattedTextField nascimento;
private JFormattedTextField cpf;
private JLabel imagem;
private JLabel alerta;
private PessoaFisica pf;
private Usuario usuario;
private JLabel tituloCodigo;
private JLabel tituloNome;
private JLabel tituloSobrenome;
private JLabel tituloNascimento;
private JLabel tituloCpf;
private JLabel tituloRg;
private JLabel tituloEndereco;
private JLabel tituloTelRes;
private JLabel tituloTelCelular;
private JLabel tituloEmail;
private JLabel tituloPerfil;
private JLabel tituloLogin;
private JLabel tituloSenha;
private JLabel imagemTelResidencial;
private JLabel alertaTelResidencial;
private JLabel imagemTelCelular;
private JLabel alertaTelCelular;
private JLabel imagemNascimento;
private JLabel alertaNascimento;
private JLabel imagemCpf;
private JLabel alertaCpf;
protected void setAttributes(JPanel conteudo, ResourceBundle bundle,
JButton atualizar, JButton deletar) {
this.conteudo = conteudo;
this.bundle = bundle;
this.atualizar = atualizar;
this.deletar = deletar;
mainMenu();
}
protected void mainMenu() {
// Titulos
tituloCodigo = new JLabel(
bundle.getString("criar.usuario.titulo.codigo"));
tituloNome = new JLabel(
bundle.getString("criar.pessoafisica.titulo.nome"));
tituloSobrenome = new JLabel(
bundle.getString("criar.pessoafisica.titulo.sobrenome"));
tituloNascimento = new JLabel(
bundle.getString("criar.pessoafisica.titulo.nascimento"));
tituloCpf = new JLabel(
bundle.getString("criar.pessoafisica.titulo.cpf"));
tituloRg = new JLabel(bundle.getString("criar.pessoafisica.titulo.rg"));
tituloEndereco = new JLabel(
bundle.getString("criar.pessoafisica.titulo.endereco"));
tituloTelRes = new JLabel(
bundle.getString("criar.pessoafisica.titulo.telResidencial"));
tituloTelCelular = new JLabel(
bundle.getString("criar.pessoafisica.titulo.telCelular"));
tituloEmail = new JLabel(
bundle.getString("criar.pessoafisica.titulo.email"));
tituloPerfil = new JLabel(
bundle.getString("criar.usuario.titulo.perfil"));
tituloLogin = new JLabel(
bundle.getString("criar.usuario.titulo.usuario"));
tituloSenha = new JLabel(bundle.getString("criar.usuario.titulo.senha"));
// Botoes e caixas de textos
codigo = new JLabel();
nome = new JTextField();
sobrenome = new JTextField();
rg = new JTextField();
endereco = new JTextField();
telResidencial = new JTextField();
telCelular = new JTextField();
email = new JTextField();
login = new JTextField();
senha = new JPasswordField();
imagemNascimento = new JLabel();
alertaNascimento = new JLabel();
imagemTelResidencial = new JLabel();
alertaTelResidencial = new JLabel();
imagemTelCelular = new JLabel();
alertaTelCelular = new JLabel();
imagemCpf = new JLabel();
alertaCpf = 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();
}
imagem = new JLabel();
alerta = new JLabel();
enviar = new JButton(
bundle.getString("atualizar.usuario.botao.atualizar"));
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);
alertaCpf.setBounds(410, 175, 100, 30);
imagemCpf.setBounds(385, 175, 40, 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);
enviar.setBounds(600, 460, 150, 30);
alerta.setBounds(404, 175, 100, 30);
imagem.setBounds(380, 175, 40, 30);
}
protected void addAtualizarListener(ActionListener a) {
atualizar.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);
}
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 getParametersPessoaFisica() {
RequestParamWrapper request = new RequestParamWrapper();
request.set("id", pf.getId());
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());
return request;
}
protected RequestParamWrapper getParametersUsuario() {
RequestParamWrapper request = new RequestParamWrapper();
Perfil[] val = Perfil.values();
Perfil item = val[perfil.getSelectedIndex()];
request.set("id", usuario.getId());
request.set("codigo", codigo.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 setParameters(PessoaFisica pf, Usuario usuario) {
this.pf = pf;
this.usuario = usuario;
String date = FormatDateTime.parseToStringLocalDate(String.valueOf(pf
.getDataNascimento()), bundle.getString("country"));
String _cpf = String.valueOf(pf.getCpf());
codigo.setText(usuario.getCodigo());
nome.setText(pf.getNome());
sobrenome.setText(pf.getSobrenome());
nascimento.setText(date);
cpf.setText(_cpf);
rg.setText(pf.getRg());
endereco.setText(pf.getEndereco());
telResidencial.setText(String.valueOf(pf.getTelResidencial()));
telCelular.setText(String.valueOf(pf.getTelCelular()));
email.setText(pf.getEmail());
perfil.setSelectedItem(usuario.getPerfil());
login.setText(usuario.getLogin());
senha.setText(usuario.getSenha());
}
protected void showAll() {
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(enviar);
conteudo.repaint();
conteudo.validate();
}
protected void messageFailed() {
JOptionPane.showMessageDialog(null,
bundle.getString("detalhes.usuario.joption.tempo"),
bundle.getString("detalhes.usuario.joption.titulo"),
JOptionPane.ERROR_MESSAGE);
}
protected void messageTelResidencialOk() {
conteudo.remove(imagemTelResidencial);
conteudo.remove(alertaTelResidencial);
repaint();
}
protected void messageTelCelularOk() {
conteudo.remove(imagemTelCelular);
conteudo.remove(alertaTelCelular);
repaint();
}
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 messageOK() {
JOptionPane.showMessageDialog(null,
bundle.getString("atualizar.usuario.sucesso"), "OK",
JOptionPane.INFORMATION_MESSAGE);
}
protected void messageTelParseExecption() {
JOptionPane.showMessageDialog(null,
bundle.getString("criar.usuario.erro.tel"));
}
protected void messageCpfInvalidExecption() {
JOptionPane.showMessageDialog(null,
bundle.getString("criar.pessoafisica.cpf.alerta.erro"));
}
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();
}
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();
}
protected void addEnviarListener(ActionListener a) {
enviar.addActionListener(a);
}
}