New GUI for booking and querying availability
[RRRRHHHH_Code] / ruralHouses / src / gui / listOfHousesGUI.java
index 726f738..e75b125 100644 (file)
@@ -3,6 +3,8 @@ package gui;
 import java.awt.BorderLayout;
 import java.awt.EventQueue;
 
+import domain.*;
+
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 import javax.swing.border.EmptyBorder;
@@ -19,60 +21,89 @@ import javax.swing.JTable;
 import javax.swing.table.DefaultTableModel;
 
 import java.awt.Component;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.sql.Date;
+import java.util.Enumeration;
+import java.util.LinkedList;
+import java.util.Vector;
 
 import javax.swing.Box;
 
 public class listOfHousesGUI extends JFrame {
 
        private JPanel contentPane;
-       private JTextField textField;
        private JTable table;
-
-       /**
+       private DefaultTableModel tableModel;
+       private Vector<RuralHouse> houses;
+       /**
         * Create the frame.
         */
-       public listOfHousesGUI() {
+       public listOfHousesGUI(Vector<RuralHouse> rhs) {
                try {
+                       this.houses=rhs;
                        init();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
-       
-       private void init() throws Exception
-         {
+
+       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);
-               
-               JLabel lblNewLabel = new JLabel("List of available houses in:");
+
+               JLabel lblNewLabel = new JLabel();
                lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27));
-               lblNewLabel.setBounds(23, 41, 325, 33);
+               lblNewLabel.setBounds(23, 41, 536, 33);
                contentPane.add(lblNewLabel);
-               
-               textField = new JTextField();
-               textField.setEnabled(false);
-               textField.setEditable(false);
-               textField.setFont(new Font("Tahoma", Font.PLAIN, 27));
-               textField.setBounds(373, 41, 152, 33);
-               contentPane.add(textField);
-               textField.setColumns(10);
-               
+               if (houses.isEmpty())
+                       lblNewLabel.setText("There are not houses matching your search");
+               else
+                       lblNewLabel.setText("List of houses that match your search:");
                JScrollPane scrollPane = new JScrollPane();
                scrollPane.setBounds(new Rectangle(45, 305, 320, 116));
                scrollPane.setBounds(23, 113, 536, 271);
                contentPane.add(scrollPane);
-               
-               table = new JTable();
+
+               JTable table = new JTable() {
+               private static final long serialVersionUID = 1L;
+
+               public boolean isCellEditable(int row, int column) {                
+                       return false;               
+               };
+           };
                scrollPane.setViewportView(table);
-               table.setModel(new DefaultTableModel(
-                       new Object[][] {
-                       },
-                       new String[] {
-                               "House Name", "Bedrooms", "Kitchens", "Baths", "Parkings", "Livings"
+               tableModel = new DefaultTableModel(null, new String[] {
+                               "House Name", "Bedrooms", "Kitchens", "Baths", "Parkings",
+                               "Livings" });
+               
+               //Maybe there is a better way to avoid interaction.
+               //table.setEnabled(false);
+               table.setModel(tableModel);
+               Enumeration<RuralHouse> en = houses.elements();
+               RuralHouse rh;
+               table.addMouseListener( new MouseAdapter(){                     
+                       @Override
+                       public void mouseClicked(MouseEvent arg0) {
+                               int row = table.getSelectedRow();
+                               HouseFeaturesGUI feat = new HouseFeaturesGUI(houses.get(row),null,null);
+                               feat.setVisible(true);
                        }
-               ));
-         }
+               });
+               while (en.hasMoreElements()) {
+                       rh = en.nextElement();
+                       Vector<Object> row = new Vector<Object>();
+                       row.add(rh.getHouseName());
+                       row.add(rh.getFeatures().getnRooms());
+                       row.add(rh.getFeatures().getnKitchens());
+                       row.add(rh.getFeatures().getnBaths());
+                       row.add(rh.getFeatures().getnParkings());
+                       row.add(rh.getFeatures().getnLivings());
+                       tableModel.addRow(row);
+               }
+
+       }
 }