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