/* * 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.passagem; import java.awt.Color; import java.awt.Font; import java.awt.Image; import java.awt.event.ActionListener; import java.awt.event.FocusListener; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.util.ResourceBundle; import javax.imageio.ImageIO; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.text.MaskFormatter; import br.com.moonjava.flight.util.AbstractFlightUI; import br.com.moonjava.flight.util.ErrorSystem; import br.com.moonjava.flight.util.FlightImageUI; import br.com.moonjava.flight.util.FocusTextField; import br.com.moonjava.flight.util.RequestParamWrapper; /** * @version 1.0 Sep 2, 2012 * @contact tiago.aguiar@moonjava.com.br * */ public class CancelarPassagemUI extends AbstractFlightUI { private final JPanel conteudo; private final ResourceBundle bundle; private JLabel tituloNomeTitular; private JLabel tituloCpf; private JLabel tituloAgencia; private JLabel tituloConta; private JLabel tituloBanco; private JLabel tituloValor; private JTextField _bilhete; private JTextField _cpf; private JLabel imagemCpf; private JLabel imagemBanco; private JLabel imagemAgencia; private JLabel imagemConta; private JLabel alertaCpf; private JLabel alertaBanco; private JLabel alertaAgencia; private JLabel alertaConta; private JTextField nomeTitular; private JFormattedTextField cpf; private JTextField banco; private JTextField agencia; private JTextField conta; private JButton solicitarCancelamento; private JButton cancelar; private JLabel moeda; private JLabel valor; private int passagem; public CancelarPassagemUI(JPanel conteudo, ResourceBundle bundle) { this.conteudo = conteudo; this.bundle = bundle; refresh(); mainMenu(); } @Override protected JPanel getConteudo() { return conteudo; } @Override public void mainMenu() { Image image = null; InputStream stream = getClass().getResourceAsStream("/img/search.png"); try { image = ImageIO.read(stream); } catch (IllegalArgumentException e) { ErrorSystem.addException(e, bundle); } catch (IOException e) { ErrorSystem.addException(e, bundle); } Icon _imagem = new ImageIcon(image); JLabel imagem = new JLabel(_imagem); JLabel filtroBilhete = new JLabel(bundle.getString("cancelar.passagem.titulo.filtroBilhete")); JLabel filtroCpf = new JLabel(bundle.getString("cancelar.passagem.titulo.filtroCpf")); tituloNomeTitular = new JLabel(bundle.getString("cancelar.passagem.titulo.nometitular")); tituloBanco = new JLabel(bundle.getString("cancelar.passagem.titulo.banco")); tituloAgencia = new JLabel(bundle.getString("cancelar.passagem.titulo.agencia")); tituloConta = new JLabel(bundle.getString("cancelar.passagem.titulo.conta")); tituloCpf = new JLabel(bundle.getString("cancelar.passagem.titulo.cpf")); tituloValor = new JLabel(bundle.getString("cancelar.passagem.titulo.valor")); _bilhete = new JTextField(); _cpf = new JTextField(); nomeTitular = new JTextField(bundle.getString("cancelar.passagem.nomeTitular")); banco = new JTextField(bundle.getString("cancelar.passagem.banco")); agencia = new JTextField(bundle.getString("cancelar.passagem.agencia")); conta = new JTextField(bundle.getString("cancelar.passagem.conta")); moeda = new JLabel(bundle.getString("cancelar.passagem.label.moeda")); valor = new JLabel("valor"); try { cpf = new JFormattedTextField(new MaskFormatter("###.###.###-##")); } catch (ParseException e) { ErrorSystem.addException(e, bundle); } solicitarCancelamento = new JButton(bundle.getString("cancelar.passagem.solicitarCancelamento")); cancelar = new JButton(bundle.getString("cancelar.passagem.cancelar")); imagemCpf = new JLabel(); imagemBanco = new JLabel(); imagemAgencia = new JLabel(); imagemConta = new JLabel(); alertaCpf = new JLabel(); alertaBanco = new JLabel(); alertaAgencia = new JLabel(); alertaConta = new JLabel(); Font fvalor = new Font("Arial", Font.BOLD, 13); Font font = new Font("Century Gothic", Font.ITALIC, 13); nomeTitular.setFont(font); banco.setFont(font); agencia.setFont(font); conta.setFont(font); valor.setFont(fvalor); nomeTitular.setForeground(Color.GRAY); banco.setForeground(Color.GRAY); agencia.setForeground(Color.GRAY); conta.setForeground(Color.GRAY); imagem.setBounds(100, 70, 30, 30); filtroBilhete.setBounds(130, 45, 200, 30); // filtroCpf.setBounds(220, 45, 200, 30); _bilhete.setBounds(130, 70, 80, 30); // _cpf.setBounds(220, 70, 80, 30); solicitarCancelamento.setBounds(320, 70, 200, 30); imagemCpf.setBounds(510, 230, 100, 30); imagemBanco.setBounds(510, 270, 100, 30); imagemAgencia.setBounds(510, 310, 100, 30); imagemConta.setBounds(510, 350, 100, 30); alertaCpf.setBounds(535, 230, 100, 30); alertaBanco.setBounds(535, 270, 400, 30); alertaAgencia.setBounds(535, 310, 400, 30); alertaConta.setBounds(535, 350, 400, 30); tituloNomeTitular.setBounds(60, 190, 200, 30); tituloCpf.setBounds(60, 230, 200, 30); tituloBanco.setBounds(60, 270, 200, 30); tituloAgencia.setBounds(60, 310, 200, 30); tituloConta.setBounds(60, 350, 200, 30); tituloValor.setBounds(60, 390, 200, 30); nomeTitular.setBounds(200, 190, 300, 30); cpf.setBounds(200, 230, 300, 30); banco.setBounds(200, 270, 300, 30); agencia.setBounds(200, 310, 300, 30); conta.setBounds(200, 350, 300, 30); moeda.setBounds(202, 390, 50, 30); valor.setBounds(230, 390, 150, 30); cancelar.setBounds(400, 430, 200, 30); conteudo.add(imagem); conteudo.add(filtroBilhete); conteudo.add(filtroCpf); conteudo.add(_bilhete); conteudo.add(_cpf); conteudo.add(solicitarCancelamento); repaint(); } // Get parameters protected RequestParamWrapper getParametersReebolso() { RequestParamWrapper request = new RequestParamWrapper(); request.set("titular", nomeTitular.getText()); request.set("cpf", cpf.getText()); request.set("banco", banco.getText()); request.set("agencia", agencia.getText()); request.set("conta", conta.getText()); request.set("valor", valor.getText()); return request; } protected RequestParamWrapper getParametersPassagem() { RequestParamWrapper request = new RequestParamWrapper(); request.set("codBilhete", _bilhete.getText()); request.set("cpf", _cpf.getText()); return request; } protected RequestParamWrapper getDefaultTexts() { RequestParamWrapper request = new RequestParamWrapper(); request.set("banco", bundle.getString("cancelar.passagem.banco")); request.set("agencia", bundle.getString("cancelar.passagem.agencia")); request.set("conta", bundle.getString("cancelar.passagem.conta")); return request; } protected void setValor(double valor, int passagemId) { this.valor.setText(String.format("%.2f", valor)); this.passagem = passagemId; } protected void addSolicitarCancelamentoListener(ActionListener a) { solicitarCancelamento.addActionListener(a); } protected void addEfetuarCancelamentoListener(ActionListener a) { cancelar.addActionListener(a); } protected void addFocusBancoListener(FocusListener a) { banco.addFocusListener(a); } protected void addFocusAgenciaListener(FocusListener a) { agencia.addFocusListener(a); } protected void addFocusContaListener(FocusListener a) { conta.addFocusListener(a); } protected void addFocusCpfListener(FocusListener a) { cpf.addFocusListener(a); } protected void addFocusListener(FocusListener a) { nomeTitular.addFocusListener(a); banco.addFocusListener(a); agencia.addFocusListener(a); conta.addFocusListener(a); ((FocusTextField) a).setField(nomeTitular, banco, agencia, conta); ((FocusTextField) a).setText(bundle.getString("cancelar.passagem.nomeTitular"), bundle.getString("cancelar.passagem.banco"), bundle.getString("cancelar.passagem.agencia"), bundle.getString("cancelar.passagem.conta")); } protected void addCalcularPassagemButton() { conteudo.add(tituloNomeTitular); conteudo.add(tituloBanco); conteudo.add(tituloAgencia); conteudo.add(tituloConta); conteudo.add(tituloValor); conteudo.add(tituloCpf); conteudo.add(nomeTitular); conteudo.add(banco); conteudo.add(agencia); conteudo.add(conta); conteudo.add(moeda); conteudo.add(valor); conteudo.add(cpf); conteudo.add(cancelar); repaint(); } protected void messageReembolso() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.ok.solicitacao"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.INFORMATION_MESSAGE); } protected void messagePassagemOff() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.erro.solicitacao"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.ERROR_MESSAGE); } protected void messageReebolsoZero() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.reembolso.zero"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.INFORMATION_MESSAGE); } protected void messageVooRealizado() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.voo.realizado"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.INFORMATION_MESSAGE); } protected void messageOK() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.cancelado"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.INFORMATION_MESSAGE); refresh(); } protected void messageDbOff() { JOptionPane.showMessageDialog(null, bundle.getString("erro.bd.off"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.ERROR_MESSAGE); } protected void messagemPasJaCancelada() { JOptionPane.showMessageDialog(null, bundle.getString("cancelar.passagem.ja.cancelada"), bundle.getString("cancelar.passagem.titulo"), JOptionPane.INFORMATION_MESSAGE); refresh(); } // add Layout protected void addImageCpfValido() { try { InputStream stream = getClass().getResourceAsStream("/img/icon_disponivel.png"); Image image; image = ImageIO.read(stream); ImageIcon icon = new ImageIcon(image); imagemCpf.setIcon(icon); alertaCpf.setText(""); conteudo.add(imagemCpf); conteudo.add(alertaCpf); conteudo.repaint(); conteudo.validate(); } catch (IOException e) { e.printStackTrace(); } } protected void addImageCpfInvalido() { try { InputStream stream = getClass().getResourceAsStream("/img/icon_indisponivel.png"); Image image = ImageIO.read(stream); ImageIcon icon = new ImageIcon(image); imagemCpf.setIcon(icon); alertaCpf.setFont(new Font("Arial", Font.BOLD, 13)); alertaCpf.setForeground(Color.RED); alertaCpf.setText(bundle.getString("criar.pessoafisica.cpf.alerta.erro")); conteudo.add(imagemCpf); conteudo.add(alertaCpf); conteudo.repaint(); conteudo.validate(); } catch (IOException e1) { e1.printStackTrace(); } } protected void addImageBancoParseException() { FlightImageUI.addError(imagemBanco, alertaBanco, bundle.getString("alerta.numero"), bundle, conteudo); repaint(); } protected void addImageAgenciaParseException() { FlightImageUI.addError(imagemAgencia, alertaAgencia, bundle.getString("alerta.numero"), bundle, conteudo); repaint(); } protected void addImageContaParseException() { FlightImageUI.addError(imagemConta, alertaConta, bundle.getString("alerta.numero"), bundle, conteudo); repaint(); } protected void removeImageBancoParseException() { conteudo.remove(alertaBanco); conteudo.remove(imagemBanco); repaint(); } protected void removeImageAgenciaParseException() { conteudo.remove(alertaAgencia); conteudo.remove(imagemAgencia); repaint(); } protected void removeImageContaParseException() { conteudo.remove(alertaConta); conteudo.remove(imagemConta); repaint(); } }