cleaning
[RRRRHHHH_Code] / ruralHouses / src / gui / LoginGUI.java
diff --git a/ruralHouses/src/gui/LoginGUI.java b/ruralHouses/src/gui/LoginGUI.java
new file mode 100644 (file)
index 0000000..cf075b2
--- /dev/null
@@ -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"
+