X-Git-Url: https://xp-dev.com/git/RRRRHHHH_Code/blobdiff_plain/e3043c3b5cbff18b2388a9c95c411cc60367000d..b09f345318baa9ca734e11c87f52f8522d7cc1fb:/ruralHouses/src/gui/listOfOffers.java diff --git a/ruralHouses/src/gui/listOfOffers.java b/ruralHouses/src/gui/listOfOffers.java new file mode 100644 index 0000000..7d61def --- /dev/null +++ b/ruralHouses/src/gui/listOfOffers.java @@ -0,0 +1,138 @@ +package gui; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Font; +import java.awt.Rectangle; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.Enumeration; +import java.util.Vector; + +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 domain.Offer; +import domain.Owner; +import domain.RuralHouse; + +public class listOfOffers extends JFrame { + + /** + * + */ + private static final long serialVersionUID = 1L; + private JPanel contentPane; + private JTable table; + private Owner owner; + + private DefaultTableModel tableModel; + private Vector offers = new Vector(); + + /** + * Create the frame. + */ + public listOfOffers(Owner own) { + setTitle("Adding requests"); + this.owner = own; + try { + + init(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void init() throws Exception { + setBounds(100, 100, 600, 450); + contentPane = new JPanel(); + contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); + setContentPane(contentPane); + contentPane.setLayout(null); + this.offers = new Vector(); + for (RuralHouse rh: this.owner.getRuralHouses()){ + this.offers.addAll(rh.getAllOffers()); + } + JLabel lblNewLabel = new JLabel(); + lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27)); + lblNewLabel.setBounds(23, 41, 536, 33); + contentPane.add(lblNewLabel); + if (this.offers.isEmpty()) + lblNewLabel + .setText("There are not bookings to be confirmed or denied"); + else + lblNewLabel.setText("List of offers:"); + 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[] { "Offer #", + "FirstDay", "LastDay", "Price" ,"RuralHouse"}); + + // Maybe there is a better way to avoid interaction. + // table.setEnabled(false); + table.setModel(tableModel); + table.addMouseListener( new MouseAdapter(){ + @Override + public void mouseClicked(MouseEvent arg0) { + int row = table.getSelectedRow(); + listOfBookingRequestsGUI feat = new listOfBookingRequestsGUI(offers.get(row)); + feat.setVisible(true); + } + }); + Enumeration rhs = this.offers.elements(); + while (rhs.hasMoreElements()) { + Offer of = rhs.nextElement(); + Vector row = new Vector(); + row.add(of.getOfferNumber()); + row.add(of.getFirstDay()); + row.add(of.getLastDay()); + row.add(of.getPrice()); + row.add(of.getRuralHouse().getHouseName()); + 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 (!offers.get(row).isBooked()) { + setBackground(Color.ORANGE); + setForeground(Color.BLACK); + } else { + setBackground(Color.GREEN); + setForeground(Color.BLACK); + } + + return this; + } + }); + + } +}