Merge branch 'master' of https://xp-dev.com/git/RRRRHHHH_Code
[RRRRHHHH_Code] / ruralHouses / src / gui / listOfOffers.java
diff --git a/ruralHouses/src/gui/listOfOffers.java b/ruralHouses/src/gui/listOfOffers.java
new file mode 100644 (file)
index 0000000..7d61def
--- /dev/null
@@ -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<Offer> offers = new Vector<Offer>();
+
+       /**
+        * 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<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);
+               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<Offer> rhs = this.offers.elements();
+               while (rhs.hasMoreElements()) {
+                       Offer of = rhs.nextElement();
+                       Vector<Object> row = new Vector<Object>();
+                       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;
+                       }
+               });
+
+       }
+}