--- /dev/null
+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"
+