import java.awt.BorderLayout;
import java.awt.EventQueue;
+import domain.*;
+
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
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);
+ }
+
+ }
}