Merge branch 'master' of https://xp-dev.com/git/RRRRHHHH_Code
[RRRRHHHH_Code] / ruralHouses / src / gui / OwnerRegistrationGUI.java
1 package gui;
2
3 import java.awt.Color;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.rmi.Naming;
7 import java.rmi.RemoteException;
8
9 import javax.swing.JButton;
10 import javax.swing.JFrame;
11 import javax.swing.JLabel;
12 import javax.swing.JPanel;
13 import javax.swing.JTextField;
14 import javax.swing.border.EmptyBorder;
15
16 import common.AdminInterface;
17
18 import configuration.___IntNames;
19 import domain.Owner;
20
21 public class OwnerRegistrationGUI extends JFrame {
22
23         /**
24          * 
25          */
26         private static final long serialVersionUID = 1L;
27         private JPanel panel;
28         private JTextField nameField;
29         private JTextField userNameField;
30         private AdminInterface am = null;
31         private JTextField passField;
32         private JTextField bank1Field;
33         private JTextField bank2Field;
34         private JTextField bank3Field;
35         private JTextField bank4Field;
36         private JTextField emailField;
37         private JLabel lblWhenAcceptedYou;
38         private JLabel feedback;
39
40         /**
41          * Create the frame.
42          */
43         public OwnerRegistrationGUI() {
44
45                 try {
46                         am = (AdminInterface) Naming.lookup(___IntNames.AdminManager);
47                 } catch (Exception e1) {
48                         System.out.println("Error accessing remote authentication: "
49                                         + e1.toString());
50                 }
51                 setTitle("Owner registration");
52                 setBounds(100, 100, 500, 400);
53                 panel = new JPanel();
54                 panel.setBorder(new EmptyBorder(5, 5, 5, 5));
55                 setContentPane(panel);
56                 panel.setLayout(null);
57
58                 JLabel nameLb = new JLabel("Name:");
59                 nameLb.setBounds(37, 45, 46, 14);
60                 panel.add(nameLb);
61
62                 nameField = new JTextField();
63                 nameField.setBounds(147, 42, 86, 20);
64                 panel.add(nameField);
65                 nameField.setColumns(10);
66
67                 JLabel lblUsername = new JLabel("Username:");
68                 lblUsername.setBounds(37, 212, 69, 14);
69                 panel.add(lblUsername);
70
71                 userNameField = new JTextField();
72                 userNameField.setBounds(147, 209, 86, 20);
73                 panel.add(userNameField);
74                 userNameField.setColumns(10);
75
76                 JLabel lblPassword = new JLabel("Password:");
77                 lblPassword.setBounds(37, 258, 69, 14);
78                 panel.add(lblPassword);
79
80                 passField = new JTextField();
81                 passField.setBounds(147, 255, 86, 20);
82                 panel.add(passField);
83                 passField.setColumns(10);
84
85                 JLabel lblBankAccount = new JLabel("Bank account:");
86                 lblBankAccount.setBounds(37, 94, 69, 14);
87                 panel.add(lblBankAccount);
88
89                 bank1Field = new JTextField();
90                 bank1Field.setBounds(147, 91, 61, 20);
91                 panel.add(bank1Field);
92
93                 bank2Field = new JTextField();
94                 bank2Field.setBounds(218, 91, 61, 20);
95                 panel.add(bank2Field);
96
97                 bank3Field = new JTextField();
98                 bank3Field.setBounds(289, 91, 32, 20);
99                 panel.add(bank3Field);
100
101                 bank4Field = new JTextField();
102                 bank4Field.setBounds(331, 91, 117, 20);
103                 panel.add(bank4Field);
104
105                 JButton btnSendRegistrationRequest = new JButton(
106                                 "Send registration request");
107                 btnSendRegistrationRequest.setBounds(127, 316, 194, 23);
108                 btnSendRegistrationRequest.addActionListener(new ActionListener() {
109                         public void actionPerformed(ActionEvent arg0) {
110
111                                 jButton_ActionPerformed(arg0);
112                         }
113                 });
114
115                 panel.add(btnSendRegistrationRequest);
116
117                 JLabel lblEmail = new JLabel("E-mail:");
118                 lblEmail.setBounds(37, 155, 46, 14);
119                 panel.add(lblEmail);
120
121                 emailField = new JTextField();
122                 emailField.setBounds(147, 152, 148, 20);
123                 panel.add(emailField);
124                 emailField.setColumns(10);
125
126                 lblWhenAcceptedYou = new JLabel(
127                                 "When accepted you will receive an e-mail");
128                 lblWhenAcceptedYou.setForeground(Color.GREEN);
129                 lblWhenAcceptedYou.setBounds(127, 291, 214, 14);
130                 panel.add(lblWhenAcceptedYou);
131
132                 feedback = new JLabel("");
133                 feedback.setForeground(Color.RED);
134                 feedback.setEnabled(false);
135                 feedback.setBounds(127, 344, 214, 20);
136                 panel.add(feedback);
137         }
138
139         private void jButton_ActionPerformed(ActionEvent e) {
140
141                 if (!emailField
142                                 .getText()
143                                 .matches(
144                                                 "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
145                                 || !this.nameField.getText().isEmpty()||this.bank1Field.getText().length()!=4 || this.bank2Field.getText().length()!=4
146                                 ||this.bank3Field.getText().length()!=2 || this.bank4Field.getText().length()!=10) {
147                         Owner own = new Owner(this.nameField.getText(),
148                                         this.bank1Field.getText() + " " + this.bank2Field.getText()
149                                                         + " " + this.bank3Field.getText() + " "
150                                                         + this.bank4Field.getText(),
151                                         this.emailField.getText());
152
153                         try {
154                                 if (this.am.addAccountRequest(this.userNameField.getText(),
155                                                 this.passField.getText(), own)) {
156                                         this.am.saveInstance();
157                                         this.feedback.setText("Request sended");
158                                 } else {
159                                         this.feedback.setText("Can't send the request");
160                                 }
161                         } catch (RemoteException e1) {
162                                 // TODO Auto-generated catch block
163                                 e1.printStackTrace();
164                         }
165                 } else {
166                         this.feedback.setText("Bad formatted data");
167                 }
168
169         }
170 }