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