package gui; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.rmi.Naming; import java.rmi.RemoteException; import java.util.Enumeration; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import common.BookingInterface; import configuration.___IntNames; import domain.Booking; import domain.Offer; public class listOfBookingRequestsGUI extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private JTable table; private Offer off; private BookingInterface bookM = null; private DefaultTableModel tableModel; private Vector bookings = new Vector(); /** * Create the frame. */ public listOfBookingRequestsGUI(Offer of) { setTitle("Adding requests"); this.off = of; try { init(); } catch (Exception e) { e.printStackTrace(); } } private void init() throws Exception { setBounds(100, 100, 600, 500); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); try { bookM = (BookingInterface) Naming .lookup(___IntNames.BookingManager); } catch (Exception e1) { System.out.println("Error accessing remote authentication: " + e1.toString()); } try { this.bookings = bookM.getOffersbookings(this.off); } catch (RemoteException e1) { e1.printStackTrace(); } JLabel lblNewLabel = new JLabel(); lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27)); lblNewLabel.setBounds(23, 41, 536, 33); contentPane.add(lblNewLabel); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(new Rectangle(45, 305, 320, 116)); scrollPane.setBounds(23, 113, 536, 271); contentPane.add(scrollPane); table = new JTable() { private static final long serialVersionUID = 1L; public boolean isCellEditable(int row, int column) { return false; }; }; scrollPane.setViewportView(table); tableModel = new DefaultTableModel(null, new String[] { "Booking Number", "Booking Date", "Name", "E-mail", "Telephone" }); table.setModel(tableModel); JButton btnDenyAddition = new JButton("Deny Booking"); JButton btnNewButton = new JButton("Confirm Booking"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { Booking book = bookings.get(table.getSelectedRow()); try { bookM.acceptBooking(book); } catch (RemoteException e1) { e1.printStackTrace(); } int rows = table.getModel().getRowCount(); for (int i = rows - 1; i >= 0; i--) { ((DefaultTableModel) table.getModel()).removeRow(i); } } } } }); btnNewButton.setBounds(33, 396, 169, 25); contentPane.add(btnNewButton); btnDenyAddition.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if (table.getRowCount() != 0 && table.getSelectedRow() != -1) { Booking book = bookings.get(table.getSelectedRow()); try { bookM.denyBooking(book); } catch (RemoteException e) { e.printStackTrace(); } ((DefaultTableModel) table.getModel()).removeRow(table .getSelectedRow()); bookings.remove(book); } } }); if (bookings.isEmpty()) lblNewLabel .setText("There are not bookings to be confirmed or denied"); else { lblNewLabel.setText("List of bookings:"); if (this.bookings.get(0).getOffer().isBooked()) { btnDenyAddition.setEnabled(false); btnNewButton.setEnabled(false); } } btnDenyAddition.setBounds(390, 395, 169, 25); contentPane.add(btnDenyAddition); Enumeration en = this.bookings.elements(); Booking book; while (en.hasMoreElements()) { book = en.nextElement(); Vector row = new Vector(); row.add(book.getBookNumber()); row.add(book.getBookDate()); row.add(book.getClient().getName()); row.add(book.getClient().getMailAccount()); row.add(book.getClient().getTelephone()); tableModel.addRow(row); } table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { /** * */ private static final long serialVersionUID = 1L; @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); if (!bookings.get(row).getOffer().isBooked()) { setBackground(Color.RED); setForeground(Color.BLACK); } else { setBackground(Color.GREEN); setForeground(Color.BLACK); } return this; } }); } }