/*
* 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;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.io.InputStream;
import java.util.ResourceBundle;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import br.com.moonjava.flight.util.ErrorSystem;
import br.com.moonjava.flight.util.RequestParamWrapper;
/**
* @version 1.0 Sep 6, 2012
* @contact miqueias@moonjava.com.br
*
*/
public class LoginUI {
private JFrame conteudo;
protected final ResourceBundle bundle;
private JLabel tituloLogin;
private JLabel tituloSenha;
private JLabel alerta;
private JTextField login;
private JPasswordField senha;
private JButton entrar;
public LoginUI(ResourceBundle bundle) {
this.bundle = bundle;
window();
showAll();
}
private void window() {
conteudo = new JFrame("Flight :: Flight");
conteudo.setLayout(new BorderLayout());
conteudo.getContentPane().setBackground(Color.WHITE);
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(6, 1, 5, 5));
panel1.setBackground(Color.WHITE);
panel1.setBorder(BorderFactory.createTitledBorder(bundle.getString("login.titulo")));
JPanel panel2 = new JPanel();
panel2.setLayout(new FlowLayout(40, 40, 40));
panel2.setBackground(Color.WHITE);
JPanel panel3 = new JPanel();
panel3.setLayout(new FlowLayout(40, 40, 40));
panel3.setBackground(Color.WHITE);
JPanel panel4 = new JPanel();
panel4.setLayout(new FlowLayout(40, 40, 40));
panel4.setBackground(Color.WHITE);
JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayout(1, 2, 5, 5));
panel5.setBackground(Color.WHITE);
tituloLogin = new JLabel(bundle.getString("login.titulo.usuario"));
tituloSenha = new JLabel(bundle.getString("login.titulo.senha"));
login = new JTextField(20);
senha = new JPasswordField(20);
entrar = new JButton(bundle.getString("login.botao.entrar"));
JLabel spaceBlank = new JLabel();
alerta = new JLabel();
alerta.setForeground(Color.RED);
InputStream stream = getClass().getResourceAsStream("/img/aviao_login.svg.png");
Image image = null;
try {
image = ImageIO.read(stream);
} catch (IOException e) {
ErrorSystem.addException(e, bundle);
}
ImageIcon icon = new ImageIcon(image);
JLabel imagem = new JLabel(icon);
JLabel rodape = new JLabel(bundle.getString("rodape"));
panel5.add(spaceBlank);
panel5.add(entrar);
panel1.add(tituloLogin);
panel1.add(login);
panel1.add(tituloSenha);
panel1.add(senha);
panel1.add(panel5);
panel2.add(panel1);
panel1.add(alerta);
panel3.add(imagem);
panel4.add(rodape);
conteudo.add(panel2, BorderLayout.EAST);
conteudo.add(panel3, BorderLayout.WEST);
conteudo.add(panel4, BorderLayout.SOUTH);
}
private void showAll() {
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
int width = dimension.width;
int height = dimension.height;
int frameWidth = 765;
int frameHeight = 497;
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);
}
protected void addLogarListener(ActionListener a) {
if (login.getText() != null && (String.valueOf(senha.getPassword()) != null)) {
entrar.addActionListener(a);
}
}
protected void addLogarKeyListener(KeyListener a) {
if (login.getText() != null && (String.valueOf(senha.getPassword()) != null)) {
senha.addKeyListener(a);
}
}
protected void incorrectLoginMessage() {
alerta.setText(bundle.getString("login.incorreto.messagem"));
}
protected RequestParamWrapper getLogin() {
RequestParamWrapper request = new RequestParamWrapper();
request.set("login", login.getText());
request.set("senha", String.valueOf(senha.getPassword()));
return request;
}
protected void dispose() {
conteudo.dispose();
}
}