3377c696880481bbc8b940c845c892c34fcac31f
[RRRRHHHH_Code] / ruralHouses client / src / gui / ModifyHouseGUI.java
1 package gui;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5 import java.awt.event.ItemEvent;
6 import java.awt.event.ItemListener;
7 import java.rmi.Naming;
8 import java.rmi.RemoteException;
9
10 import javax.swing.DefaultComboBoxModel;
11 import javax.swing.JButton;
12 import javax.swing.JComboBox;
13 import javax.swing.JFrame;
14 import javax.swing.JLabel;
15 import javax.swing.JPanel;
16 import javax.swing.JTextField;
17 import javax.swing.SwingConstants;
18 import javax.swing.border.EmptyBorder;
19
20 import common.HouseInterface;
21
22 import configuration.___IntNames;
23 import domain.Districs;
24 import domain.HouseFeatures;
25 import domain.Owner;
26 import domain.RuralHouse;
27
28 public class ModifyHouseGUI extends JFrame {
29
30         /**
31          * 
32          */
33         private static final long serialVersionUID = 1L;
34         private JPanel contentPane;
35         private Owner owner;
36         private JLabel lblDistrict;
37         private JLabel feedback;
38         private JLabel lblDescription;
39         private JTextField description_f;
40         private JLabel lblKitchen;
41         private JTextField kitchens_f;
42         private JLabel lblRooms;
43         private JTextField rooms_f;
44         private JLabel lblLivings;
45         private JTextField lRooms_f;
46         private JLabel lblParkings;
47         private JTextField parkings_f;
48         private JLabel lblBaths;
49         private String[] distric;
50         private JTextField baths_f;
51         private JButton btnConfirm;
52         private JComboBox<RuralHouse> houseBox;
53         private  JComboBox<String> comboBox;
54         private RuralHouse rh;
55
56         /**
57          * Create the frame.
58          */
59         public ModifyHouseGUI(final Owner o) {
60                 this.distric=Districs.longNames();
61                  comboBox = new JComboBox<String>(new DefaultComboBoxModel<String>(
62
63                                 this.distric));
64                 this.getContentPane().setLayout(null);
65                 owner = o;
66                 setBounds(100, 100, 500, 583);
67                 contentPane = new JPanel();
68                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
69                 setContentPane(contentPane);
70
71                 JLabel lblCode = new JLabel("House Name:");
72                 lblCode.setBounds(15, 88, 64, 14);
73                 lblCode.setHorizontalAlignment(SwingConstants.RIGHT);
74
75                 lblDistrict = new JLabel("District:");
76                 lblDistrict.setBounds(39, 119, 70, 14);
77                 lblDistrict.setHorizontalAlignment(SwingConstants.RIGHT);
78
79                 lblDescription = new JLabel("Description:");
80                 lblDescription.setBounds(231, 88, 90, 14);
81                 lblDescription.setHorizontalAlignment(SwingConstants.RIGHT);
82
83                 description_f = new JTextField();
84                 description_f.setBounds(241, 113, 178, 129);
85                 description_f.setColumns(10);
86
87                 lblKitchen = new JLabel("Kitchens:");
88                 lblKitchen.setBounds(230, 316, 70, 14);
89                 lblKitchen.setHorizontalAlignment(SwingConstants.RIGHT);
90
91                 kitchens_f = new JTextField();
92                 kitchens_f.setBounds(318, 313, 86, 20);
93                 kitchens_f.setColumns(10);
94
95                 lblRooms = new JLabel("Rooms:");
96                 lblRooms.setBounds(39, 316, 70, 14);
97                 lblRooms.setHorizontalAlignment(SwingConstants.RIGHT);
98
99                 rooms_f = new JTextField();
100                 rooms_f.setBounds(127, 313, 86, 20);
101                 rooms_f.setColumns(10);
102
103                 lblLivings = new JLabel("Living rooms:");
104                 lblLivings.setBounds(237, 354, 63, 14);
105                 lblLivings.setHorizontalAlignment(SwingConstants.RIGHT);
106
107                 lRooms_f = new JTextField();
108                 lRooms_f.setBounds(318, 351, 86, 20);
109                 lRooms_f.setColumns(10);
110
111                 lblParkings = new JLabel("Parkings:");
112                 lblParkings.setBounds(39, 404, 70, 14);
113                 lblParkings.setHorizontalAlignment(SwingConstants.RIGHT);
114
115                 parkings_f = new JTextField();
116                 parkings_f.setBounds(127, 401, 86, 20);
117                 parkings_f.setColumns(10);
118
119                 lblBaths = new JLabel("Baths:");
120                 lblBaths.setBounds(39, 354, 70, 14);
121                 lblBaths.setHorizontalAlignment(SwingConstants.RIGHT);
122
123                 baths_f = new JTextField();
124                 baths_f.setBounds(127, 351, 86, 20);
125                 baths_f.setColumns(10);
126
127                 btnConfirm = new JButton("Confirm");
128                 btnConfirm.setBounds(145, 462, 69, 23);
129                 btnConfirm.addActionListener(new ActionListener() {
130                         public void actionPerformed(ActionEvent arg0) {
131
132                                 RuralHouse newRh = new RuralHouse(rh.getHouseName(), owner,
133                                                 description_f.getText(), (String)comboBox.getSelectedItem(),
134                                                 new HouseFeatures(new Integer(rooms_f.getText()),
135                                                                 new Integer(kitchens_f.getText()), new Integer(
136                                                                                 baths_f.getText()), new Integer(
137                                                                                 lRooms_f.getText()), new Integer(
138                                                                                 parkings_f.getText())));
139                                 HouseInterface hm= null;
140                                 try {
141                                         hm = (HouseInterface) Naming
142                                                         .lookup(___IntNames.HouseManager);
143                                 } catch (Exception e1) {
144                                         System.out.println("Error accessing remote authentication: "
145                                                         + e1.toString());
146                                 }
147                 
148                                 try {
149                                         if (hm.registerNewHouse(newRh)) {
150                                                 owner.getRuralHouses().add(newRh);
151                                                 houseBox.removeItem(rh);
152                                                 feedback.setText("House properly modified");
153                                         } else
154                                                 feedback.setText("Imposible to modify the house");
155                                 } catch (RemoteException e) {
156                                         // TODO Auto-generated catch block
157                                         e.printStackTrace();
158                                 }
159
160                         }
161                 });
162
163                 houseBox = new JComboBox<RuralHouse>(o.getRuralHouses());
164                 if (!o.getRuralHouses().isEmpty()) {
165                         rh = (RuralHouse) houseBox.getSelectedItem();                   
166                         comboBox.setSelectedItem(rh.getDistrict());             
167                         description_f.setText(rh.getDescription());
168                         kitchens_f.setText(Integer
169                                         .toString(rh.getFeatures().getnKitchens()));
170                         rooms_f.setText(Integer.toString(rh.getFeatures().getnRooms()));
171                         lRooms_f.setText(Integer.toString(rh.getFeatures().getnLivings()));
172                         parkings_f.setText(Integer
173                                         .toString(rh.getFeatures().getnParkings()));
174                         baths_f.setText(Integer.toString(rh.getFeatures().getnBaths()));
175                         houseBox.setBounds(89, 85, 124, 20);
176                 }else{
177                         feedback.setText("Not available houses");
178                         btnConfirm.setEnabled(false);
179                 }
180                 houseBox.addItemListener(new ItemListener() {
181                         @Override
182                         public void itemStateChanged(ItemEvent e) {
183                                 rh = (RuralHouse) houseBox.getSelectedItem();
184                                 comboBox.setSelectedItem(rh.getDistrict());
185                                 description_f.setText(rh.getDescription());
186                                 kitchens_f.setText(Integer.toString(rh.getFeatures()
187                                                 .getnKitchens()));
188                                 rooms_f.setText(Integer.toString(rh.getFeatures().getnRooms()));
189                                 lRooms_f.setText(Integer.toString(rh.getFeatures()
190                                                 .getnLivings()));
191                                 parkings_f.setText(Integer.toString(rh.getFeatures()
192                                                 .getnParkings()));
193                                 baths_f.setText(Integer.toString(rh.getFeatures().getnBaths()));
194
195                         }
196                 });
197                 contentPane.setLayout(null);
198                 contentPane.add(lblParkings);
199                 contentPane.add(parkings_f);
200                 contentPane.add(lblRooms);
201                 contentPane.add(rooms_f);
202                 contentPane.add(lblCode);
203                 contentPane.add(houseBox);
204                 contentPane.add(lblBaths);
205                 contentPane.add(baths_f);
206                 contentPane.add(lblDistrict);
207                 contentPane.add(lblLivings);
208                 contentPane.add(lRooms_f);
209                 contentPane.add(lblKitchen);
210                 contentPane.add(kitchens_f);
211                 contentPane.add(description_f);
212                 contentPane.add(lblDescription);
213                 contentPane.add(btnConfirm);
214
215                 feedback = new JLabel("");
216                 feedback.setBounds(189, 510, 195, 23);
217                 contentPane.add(feedback);
218                 
219                 comboBox.setBounds(127, 116, 86, 20);
220                 contentPane.add(comboBox);
221         }
222 }