Package br.com.moonjava.flight.view.voo

Source Code of br.com.moonjava.flight.view.voo.ConsultarVooUI

/*
* 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.voo;

import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.util.List;
import java.util.ResourceBundle;

import javax.imageio.ImageIO;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
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.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.LineBorder;
import javax.swing.text.MaskFormatter;

import br.com.moonjava.flight.model.base.Status;
import br.com.moonjava.flight.model.base.Voo;
import br.com.moonjava.flight.util.RequestParamWrapper;

/**
* @version 1.0 Aug 17, 2012
* @contact tiago.aguiar@moonjava.com.br
*
*/
public class ConsultarVooUI {

  private final JPanel conteudo;
  private final ResourceBundle bundle;
  private JButton atualizar;
  private JButton deletar;
  private JButton controlarStatus;

  private JButton filtrar;
  private JButton vender;

  private JTextField origem;
  private JTextField destino;
  private JFormattedTextField partida;
  private JFormattedTextField chegada;

  private JComboBox status;
  private JComboBox timePartida;
  private JComboBox timeChegada;

  private JTable tabela;
  private boolean passagem;

  public ConsultarVooUI(JPanel conteudo,
                        ResourceBundle bundle,
                        JButton atualizar,
                        JButton deletar,
                        JButton controlarStatus) {
    this.conteudo = conteudo;
    this.bundle = bundle;
    this.atualizar = atualizar;
    this.deletar = deletar;
    this.controlarStatus = controlarStatus;

    disableButtons();
    refresh();
    mainMenu();
  }

  public ConsultarVooUI(JPanel conteudo, ResourceBundle bundle, boolean passagem) {
    this.passagem = passagem;
    this.conteudo = conteudo;
    this.bundle = bundle;
    refresh();
    mainMenu();
  }

  private void mainMenu() {
    Image image = null;
    InputStream stream = getClass().getResourceAsStream("/img/search.png");
    try {
      image = ImageIO.read(stream);
    } catch (IOException e2) {
      e2.printStackTrace();
    }

    Icon _imagem = new ImageIcon(image);
    JLabel imagem = new JLabel(_imagem);

    origem = new JTextField();
    destino = new JTextField();
    partida = null;
    chegada = null;
    status = new JComboBox();

    try {
      partida = new JFormattedTextField(new MaskFormatter("##/##/#### ##:##"));
      chegada = new JFormattedTextField(new MaskFormatter("##/##/#### ##:##"));
    } catch (ParseException e1) {
      JOptionPane.showMessageDialog(null, e1.getMessage());
    }

    Status[] values = Status.values();
    String[] nomes = new String[values.length];
    for (int i = 0; i < values.length; i++) {
      nomes[i] = values[i].setBundle(bundle);
    }

    DefaultComboBoxModel model = new DefaultComboBoxModel(nomes);
    status.setModel(model);

    JLabel tituloOrigem = new JLabel(bundle.getString("consultar.voo.titulo.origem"));
    JLabel tituloDestino = new JLabel(bundle.getString("consultar.voo.titulo.destino"));
    JLabel tituloPartida = new JLabel(bundle.getString("consultar.voo.titulo.partida"));
    JLabel tituloChegada = new JLabel(bundle.getString("consultar.voo.titulo.chegada"));
    JLabel tituloStatus = new JLabel(bundle.getString("consultar.voo.titulo.status"));
    filtrar = new JButton(bundle.getString("consultar.voo.campo"));
    vender = new JButton(bundle.getString("consultar.voo.vender.passagem"));

    tabela = new JTable();
    tabela.setBorder(new LineBorder(Color.BLACK));
    tabela.setGridColor(Color.BLACK);
    tabela.setShowGrid(true);
    tabela.setFont(new Font("Century Gothic", Font.ITALIC, 13));

    JScrollPane scroll = new JScrollPane();
    scroll.getViewport().setBorder(null);
    scroll.getViewport().add(tabela);
    scroll.setBounds(130, 100, 750, 400);
    scroll.setSize(750, 400);

    imagem.setBounds(100, 70, 30, 30);

    tituloOrigem.setBounds(132, 45, 100, 30);
    tituloDestino.setBounds(242, 45, 100, 30);
    tituloPartida.setBounds(352, 45, 130, 30);
    tituloChegada.setBounds(492, 45, 130, 30);
    tituloStatus.setBounds(632, 45, 150, 30);

    origem.setBounds(130, 70, 100, 30);
    destino.setBounds(240, 70, 100, 30);
    partida.setBounds(350, 70, 130, 30);
    chegada.setBounds(490, 70, 130, 30);
    status.setBounds(630, 70, 150, 30);
    filtrar.setBounds(800, 70, 80, 30);
    vender.setBounds(700, 500, 180, 30);

    conteudo.add(tituloOrigem);
    conteudo.add(tituloDestino);
    conteudo.add(tituloPartida);
    conteudo.add(tituloChegada);

    conteudo.add(origem);
    conteudo.add(destino);
    conteudo.add(partida);
    conteudo.add(chegada);

    if (!passagem) {
      conteudo.add(tituloStatus);
      conteudo.add(status);
    }

    conteudo.add(imagem);
    conteudo.add(filtrar);
    conteudo.add(scroll);

    if (getCountry().equals("US")) {

      String[] ampm = {
          "AM",
          "PM" };
      timePartida = new JComboBox(ampm);
      timeChegada = new JComboBox(ampm);

      tituloPartida.setBounds(350, 25, 130, 30);
      tituloChegada.setBounds(490, 25, 130, 30);

      timePartida.setBounds(350, 50, 60, 20);
      timeChegada.setBounds(490, 50, 60, 20);

      conteudo.add(timePartida);
      conteudo.add(timeChegada);
    }
    conteudo.repaint();
    conteudo.validate();
  }

  protected String getCountry() {
    return bundle.getString("country");
  }

  protected void addConsultarListener(ActionListener a) {
    filtrar.addActionListener(a);
  }

  protected void addVenderPassagemListener(ActionListener a) {
    vender.addActionListener(a);
  }

  protected void addItemTableSelectedListener(MouseListener a) {
    tabela.addMouseListener(a);
  }

  // Parameters
  protected RequestParamWrapper getParameters() {
    RequestParamWrapper request = new RequestParamWrapper();
    request.set("origem", origem.getText());
    request.set("destino", destino.getText());
    request.set("partida", partida.getText());
    request.set("chegada", chegada.getText());
    request.set("status", status.getSelectedIndex());
    if (getCountry().equals("US")) {
      request.set("timePartida", timePartida.getSelectedItem());
      request.set("timeChegada", timeChegada.getSelectedItem());
    }
    return request;
  }

  protected JTable getTable() {
    return tabela;
  }

  // Frames/Layouts
  protected boolean showList(List<Voo> lista) {
    VooTableModel voos = new VooTableModel(lista, bundle);
    tabela.setModel(voos);
    partida.setText("");
    chegada.setText("");
    return tabela.getRowCount() == 0 ? true : false;
  }

  protected void messageFailed() {
    JOptionPane.showMessageDialog(null,
        bundle.getString("consultar.voo.joption.err"),
        bundle.getString("consultar.voo.joption.titulo"),
        JOptionPane.ERROR_MESSAGE);
  }

  protected void messageSelectFailed() {
    JOptionPane.showMessageDialog(null,
        bundle.getString("consultar.voo.joption.err.selecao"),
        bundle.getString("consultar.voo.joption.titulo"),
        JOptionPane.ERROR_MESSAGE);
  }

  protected int messagePassagemIdaVolta() {
    UIManager.put("OptionPane.okButtonText", bundle.getString("sim"));
    UIManager.put("OptionPane.cancelButtonText", bundle.getString("nao"));
    return JOptionPane.showConfirmDialog(null,
        bundle.getString("consultar.voo.ida.volta"),
        bundle.getString("consultar.voo.joption.titulo"),
        JOptionPane.OK_CANCEL_OPTION,
        JOptionPane.INFORMATION_MESSAGE);
  }

  protected void enableButtons() {
    atualizar.setEnabled(true);
    deletar.setEnabled(true);
    controlarStatus.setEnabled(true);
    conteudo.add(vender);

    repaint();
  }

  protected void disableButtons() {
    atualizar.setEnabled(false);
    deletar.setEnabled(false);
    controlarStatus.setEnabled(false);
  }

  protected void repaint() {
    conteudo.repaint();
    conteudo.validate();
  }

  protected void refresh() {
    conteudo.removeAll();
    conteudo.validate();
    conteudo.repaint();
  }

}
TOP

Related Classes of br.com.moonjava.flight.view.voo.ConsultarVooUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.