Package br.com.moonjava.flight.view.painel

Source Code of br.com.moonjava.flight.view.painel.PainelDeDecolagemUI$Clock

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

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.ResourceBundle;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.Timer;
import javax.swing.border.LineBorder;

import br.com.moonjava.flight.model.base.Voo;
import br.com.moonjava.flight.model.base.VooModel;

/**
* @version 1.0 Sep 8, 2012
* @contact miqueias@moonjava.com.br
*
*/
public class PainelDeDecolagemUI {

  private final ResourceBundle bundle;
  private JTable tabela;
  private JFrame conteudo;
  private JPanel painel;

  public PainelDeDecolagemUI(ResourceBundle bundle) {
    this.bundle = bundle;
    window();
  }

  private void window() {
    conteudo = new JFrame("Flight - " + bundle.getString("painel.titulo"));
    conteudo.getContentPane().setBackground(Color.DARK_GRAY);

    painel = new JPanel(null);
    painel.setBounds(30, 30, 1130, 600);

    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));

    // Atualiza automaticamente o painel de decolagem a cada 1 minuto
    Timer timer = new Timer(1000 * 60, new Clock());
    timer.start();

    JScrollPane scroll = new JScrollPane();
    scroll.getViewport().setBorder(null);
    scroll.getViewport().add(tabela);
    scroll.setBounds(30, 45, 1050, 400);
    scroll.setSize(1050, 400);

    painel.add(scroll);
    conteudo.add(painel);
  }

  // Adiciona o dados da tabela (DB) através do método setModel(voos);
  protected boolean showList(List<Voo> lista) {
    PainelDeDecolagemTableModel voos = new PainelDeDecolagemTableModel(lista, bundle);
    tabela.setModel(voos);
    return tabela.getRowCount() == 0 ? true : false;
  }

  protected void showAll() {
    Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
    int width = dimension.width;
    int height = dimension.height;
    int frameWidth = 1126;
    int frameHeight = 512;

    // Centraliza a frame
    conteudo.setLocation((width / 2) - (frameWidth / 2), (height / 2) - (frameHeight / 2));
    conteudo.setSize(frameWidth, frameHeight);
    conteudo.setResizable(false);
    conteudo.setVisible(true);
    conteudo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

  /*
   * Esta classe inicia o evento de acordo com o tempo definido anteriormente
   */
  private class Clock implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
      List<Voo> lista = new VooModel().consultaPainel();
      showList(lista);

      conteudo.repaint();
      conteudo.validate();
    }
  }

}
TOP

Related Classes of br.com.moonjava.flight.view.painel.PainelDeDecolagemUI$Clock

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.