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;
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;
20 import common.HouseInterface;
22 import configuration.___IntNames;
23 import domain.Districs;
24 import domain.HouseFeatures;
26 import domain.RuralHouse;
28 public class ModifyHouseGUI extends JFrame {
33 private static final long serialVersionUID = 1L;
34 private JPanel contentPane;
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;
59 public ModifyHouseGUI(final Owner o) {
60 this.distric=Districs.longNames();
61 comboBox = new JComboBox<String>(new DefaultComboBoxModel<String>(
64 this.getContentPane().setLayout(null);
66 setBounds(100, 100, 500, 583);
67 contentPane = new JPanel();
68 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
69 setContentPane(contentPane);
71 JLabel lblCode = new JLabel("House Name:");
72 lblCode.setBounds(15, 88, 64, 14);
73 lblCode.setHorizontalAlignment(SwingConstants.RIGHT);
75 lblDistrict = new JLabel("District:");
76 lblDistrict.setBounds(39, 119, 70, 14);
77 lblDistrict.setHorizontalAlignment(SwingConstants.RIGHT);
79 lblDescription = new JLabel("Description:");
80 lblDescription.setBounds(231, 88, 90, 14);
81 lblDescription.setHorizontalAlignment(SwingConstants.RIGHT);
83 description_f = new JTextField();
84 description_f.setBounds(241, 113, 178, 129);
85 description_f.setColumns(10);
87 lblKitchen = new JLabel("Kitchens:");
88 lblKitchen.setBounds(230, 316, 70, 14);
89 lblKitchen.setHorizontalAlignment(SwingConstants.RIGHT);
91 kitchens_f = new JTextField();
92 kitchens_f.setBounds(318, 313, 86, 20);
93 kitchens_f.setColumns(10);
95 lblRooms = new JLabel("Rooms:");
96 lblRooms.setBounds(39, 316, 70, 14);
97 lblRooms.setHorizontalAlignment(SwingConstants.RIGHT);
99 rooms_f = new JTextField();
100 rooms_f.setBounds(127, 313, 86, 20);
101 rooms_f.setColumns(10);
103 lblLivings = new JLabel("Living rooms:");
104 lblLivings.setBounds(237, 354, 63, 14);
105 lblLivings.setHorizontalAlignment(SwingConstants.RIGHT);
107 lRooms_f = new JTextField();
108 lRooms_f.setBounds(318, 351, 86, 20);
109 lRooms_f.setColumns(10);
111 lblParkings = new JLabel("Parkings:");
112 lblParkings.setBounds(39, 404, 70, 14);
113 lblParkings.setHorizontalAlignment(SwingConstants.RIGHT);
115 parkings_f = new JTextField();
116 parkings_f.setBounds(127, 401, 86, 20);
117 parkings_f.setColumns(10);
119 lblBaths = new JLabel("Baths:");
120 lblBaths.setBounds(39, 354, 70, 14);
121 lblBaths.setHorizontalAlignment(SwingConstants.RIGHT);
123 baths_f = new JTextField();
124 baths_f.setBounds(127, 351, 86, 20);
125 baths_f.setColumns(10);
127 btnConfirm = new JButton("Confirm");
128 btnConfirm.setBounds(145, 462, 69, 23);
129 btnConfirm.addActionListener(new ActionListener() {
130 public void actionPerformed(ActionEvent arg0) {
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;
141 hm = (HouseInterface) Naming
142 .lookup(___IntNames.HouseManager);
143 } catch (Exception e1) {
144 System.out.println("Error accessing remote authentication: "
149 if (hm.registerNewHouse(newRh)) {
150 owner.getRuralHouses().add(newRh);
151 houseBox.removeItem(rh);
152 feedback.setText("House properly modified");
154 feedback.setText("Imposible to modify the house");
155 } catch (RemoteException e) {
156 // TODO Auto-generated catch block
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);
177 feedback.setText("Not available houses");
178 btnConfirm.setEnabled(false);
180 houseBox.addItemListener(new ItemListener() {
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()
188 rooms_f.setText(Integer.toString(rh.getFeatures().getnRooms()));
189 lRooms_f.setText(Integer.toString(rh.getFeatures()
191 parkings_f.setText(Integer.toString(rh.getFeatures()
193 baths_f.setText(Integer.toString(rh.getFeatures().getnBaths()));
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);
215 feedback = new JLabel("");
216 feedback.setBounds(189, 510, 195, 23);
217 contentPane.add(feedback);
219 comboBox.setBounds(127, 116, 86, 20);
220 contentPane.add(comboBox);