package gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.rmi.Naming; import java.rmi.RemoteException; import java.util.Vector; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.border.EmptyBorder; import common.HouseInterface; import common.OfferInterface; import configuration.___IntNames; import domain.Offer; import domain.Owner; import domain.RuralHouse; public class DeleteOfferGUI extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private JLabel feedback; private JComboBox comboBox; private JComboBox comboBox_1; private JButton btnDelete; private Vector Hlist = null; private HouseInterface hm = null; /** * Create the frame. */ public DeleteOfferGUI(Owner o) { try { hm = (HouseInterface) Naming.lookup(___IntNames.HouseManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); } try { Hlist = hm.getHouses(o, null, null, 0, 0, 0, 0, 0); } catch (RemoteException e1) { e1.printStackTrace(); } setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); comboBox = new JComboBox(this.Hlist); comboBox.setBounds(101, 38, 314, 20); comboBox_1 = new JComboBox(); comboBox_1.setBounds(101, 76, 314, 20); Vector vo = ((RuralHouse) comboBox.getSelectedItem()) .getAllOffers(); comboBox_1.removeAllItems(); for (Offer of : vo) { comboBox_1.addItem(of); ; } JRadioButton rdbtnIAmSure = new JRadioButton("I am sure"); rdbtnIAmSure.setBounds(101, 134, 108, 23); btnDelete = new JButton("DELETE"); btnDelete.setBounds(92, 226, 117, 23); btnDelete.setEnabled(false); comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent arg0) { Vector vo = ((RuralHouse) comboBox.getSelectedItem()) .getAllOffers(); comboBox_1.removeAllItems(); for (Offer of : vo) { comboBox_1.addItem(of); ; } } }); comboBox_1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent arg0) { if (((Offer) comboBox_1.getSelectedItem()).isBooked()) { feedback.setText("This offer is already booked."); btnDelete.setEnabled(false); } } }); comboBox_1.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent arg0) { if (comboBox_1.getSelectedItem() != null) { if (!((Offer) comboBox_1.getSelectedItem()).isBooked()) { feedback.setText(""); btnDelete.setEnabled(true); } } } }); rdbtnIAmSure.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { int state = e.getStateChange(); if (state == ItemEvent.SELECTED) { if (comboBox_1.getSelectedItem() != null) btnDelete.setEnabled(true); } else if (state == ItemEvent.DESELECTED) { btnDelete.setEnabled(false); } } }); JLabel lblHouse = new JLabel("House:"); lblHouse.setBounds(25, 41, 68, 14); JLabel lblOffer = new JLabel("Offer:"); lblOffer.setBounds(25, 79, 68, 14); contentPane.setLayout(null); contentPane.add(btnDelete); contentPane.add(rdbtnIAmSure); contentPane.add(lblHouse); contentPane.add(lblOffer); contentPane.add(comboBox); contentPane.add(comboBox_1); feedback = new JLabel(""); feedback.setBounds(140, 178, 202, 23); contentPane.add(feedback); if (((Offer) comboBox_1.getSelectedItem()).isBooked()) { feedback.setText("This offer is already booked."); btnDelete.setEnabled(false); } btnDelete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { actionListenerButton(arg0); } }); } private void actionListenerButton(ActionEvent e) { Offer toDel = (Offer) comboBox_1.getSelectedItem(); OfferInterface oM = null; try { oM = (OfferInterface) Naming.lookup(___IntNames.OfferManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); } try { oM.deleteOffer((RuralHouse) comboBox.getSelectedItem(), toDel); comboBox_1.removeItem(toDel); btnDelete.setEnabled(false); feedback.setText("Offer correctly deleted"); } catch (Exception e1) { feedback.setText("Imposible to delete the offer"); e1.printStackTrace(); } } }