package gui; import java.awt.Color; import java.awt.Frame; import java.awt.KeyEventDispatcher; import java.awt.KeyboardFocusManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.rmi.Naming; import java.rmi.RemoteException; 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 javax.swing.SwingConstants; import common.LoginInterface; import configuration.___IntNames; import domain.Account; public class LoginGUI extends JFrame { private static final long serialVersionUID= 1L; private JPanel jContentPane = null; private JTextField usernameField; private JPasswordField passwordField; private LoginInterface loginManager = null; private JLabel loginFeedback; private JButton btnRegister; protected boolean isFocused = false; public LoginGUI() { super(); initialize(); } private void initialize() { try { loginManager = (LoginInterface) Naming .lookup(___IntNames.LoginManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); } this.setSize(449, 293); this.setContentPane(getJContentPane()); this.setTitle("Login"); addWindowListener(new WindowAdapter() { @Override public void windowGainedFocus(WindowEvent e) { isFocused = true; } @Override public void windowLostFocus(WindowEvent e) { isFocused = false; } }); KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { @Override public boolean dispatchKeyEvent(KeyEvent e) { if (isFocused && e.getKeyCode() == KeyEvent.VK_ENTER ) jButton_ActionPerformed(); return false; }}); } private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(null); JLabel usernameTag = new JLabel("Username:"); usernameTag.setBounds(56, 67, 104, 20); jContentPane.add(usernameTag); JLabel passwordTag = new JLabel("Password:"); passwordTag.setBounds(56, 132, 104, 15); jContentPane.add(passwordTag); usernameField = new JTextField(); usernameField.setBounds(202, 65, 133, 25); jContentPane.add(usernameField); usernameField.setColumns(10); passwordField = new JPasswordField(); passwordField.setBounds(202, 122, 133, 25); jContentPane.add(passwordField); JButton loginButton = new JButton("Login"); loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { jButton_ActionPerformed(); } }); loginButton.setBounds(95, 179, 117, 25); jContentPane.add(loginButton); loginFeedback = new JLabel(""); loginFeedback.setForeground(Color.RED); loginFeedback.setHorizontalAlignment(SwingConstants.CENTER); loginFeedback.setBounds(83, 216, 269, 25); jContentPane.add(loginFeedback); btnRegister = new JButton("Register"); btnRegister.setBounds(222, 180, 113, 23); btnRegister.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { jButton_ActionPerformed2(arg0); } }); jContentPane.add(btnRegister); } return jContentPane; } private void jButton_ActionPerformed2(ActionEvent e){ this.setVisible(false); Frame a = new OwnerRegistrationGUI(); a.setVisible(true); } private void jButton_ActionPerformed(){ Account acc = null; try { acc = loginManager.checkCredentials(usernameField.getText(),new String(passwordField.getPassword())); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (acc == null) loginFeedback.setText("Incorrect username or password"); else if( acc.getAdmin()) { this.setVisible(false); Frame a = new AdminMenuGUI(); a.setVisible(true); } else { if(acc.getOwner()==null){ loginFeedback.setText("Incorrect username or password"); }else{ this.setVisible(false); Frame a = new OwnerMenuGUI(acc.getOwner()); a.setVisible(true); } } } } // @jve:decl-index=0:visual-constraint="222,33"