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.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.util.Enumeration;
-import java.util.LinkedList;
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 businessLogic.BookingManager;
-import domain.Booking;
import domain.Offer;
import domain.Owner;
import domain.RuralHouse;
private JPanel contentPane;
private JTable table;
private Owner owner;
- private BookingManager bookM = new BookingManager();
+
private DefaultTableModel tableModel;
private Vector<Offer> offers = new Vector<Offer>();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
-
- this.offers = this.owner.getAllOffers();
+ this.offers = new Vector<Offer>();
+ 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);
lblNewLabel
.setText("There are not bookings to be confirmed or denied");
else
- lblNewLabel.setText("List of bookings:");
+ 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;
return false;
};
};
+
scrollPane.setViewportView(table);
tableModel = new DefaultTableModel(null, new String[] { "Offer #",
- "FirstDay", "LastDay", "Price" });
+ "FirstDay", "LastDay", "Price" ,"RuralHouse"});
// Maybe there is a better way to avoid interaction.
// table.setEnabled(false);
table.setModel(tableModel);
-
- JButton btnNewButton = new JButton("Confirm Booking");
- btnNewButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (table.getRowCount() != 0 && table.getSelectedRow() != -1) {
-
- }
+ table.addMouseListener( new MouseAdapter(){
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ int row = table.getSelectedRow();
+ listOfBookingRequestsGUI feat = new listOfBookingRequestsGUI(offers.get(row));
+ feat.setVisible(true);
}
});
- btnNewButton.setBounds(88, 396, 169, 25);
- contentPane.add(btnNewButton);
-
- JButton btnDenyAddition = new JButton("Deny Booking");
- btnDenyAddition.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent arg0) {
- if (table.getRowCount() != 0 && table.getSelectedRow() != -1) {
-
- }
- }
- });
- btnDenyAddition.setBounds(300, 396, 169, 25);
- contentPane.add(btnDenyAddition);
Enumeration<Offer> rhs = this.offers.elements();
while (rhs.hasMoreElements()) {
Offer of = rhs.nextElement();
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;
+ }
+ });
}
}