X-Git-Url: https://xp-dev.com/git/RRRRHHHH_Code/blobdiff_plain/e3043c3b5cbff18b2388a9c95c411cc60367000d..b09f345318baa9ca734e11c87f52f8522d7cc1fb:/ruralHouses/src/gui/LoginGUI.java diff --git a/ruralHouses/src/gui/LoginGUI.java b/ruralHouses/src/gui/LoginGUI.java new file mode 100644 index 0000000..cf075b2 --- /dev/null +++ b/ruralHouses/src/gui/LoginGUI.java @@ -0,0 +1,168 @@ +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" +