+package gui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.util.Date;
+import java.util.Enumeration;
+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.JTextField;
+import javax.swing.SwingConstants;
+import javax.swing.border.EmptyBorder;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+
+import domain.Offer;
+import domain.RuralHouse;
+
+
+
+public class HouseFeaturesGUI extends JFrame {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private JPanel contentPane;
+ private JLabel lblDistrict;
+ private JTextField District_f;
+ private JLabel lblDescription;
+ private JTextField description_f;
+ private JLabel lblKitchen;
+ private JTextField kitchens_f;
+ private JLabel lblRooms;
+ private JTextField rooms_f;
+ private JLabel lblLivings;
+ private JTextField lRooms_f;
+ private JLabel lblParkings;
+ private JTextField parkings_f;
+ private JLabel lblBaths;
+ private JTextField baths_f;
+ private JTable table;
+ private DefaultTableModel tableModel;
+ private DefaultTableCellRenderer tableRenderer = new DefaultTableCellRenderer();
+
+
+ /**
+ * Create the frame.
+ */
+
+ public HouseFeaturesGUI(RuralHouse rh, Date FirstDay, Date LastDay) {
+
+ this.getContentPane().setLayout(null);
+ setBounds(100, 100, 500, 583);
+ contentPane = new JPanel();
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+ setContentPane(contentPane);
+
+ lblDistrict = new JLabel("District:");
+ lblDistrict.setBounds(23, 67, 70, 14);
+ lblDistrict.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ District_f = new JTextField();
+ District_f.setEditable(false);
+ District_f.setBounds(103, 64, 86, 20);
+ District_f.setColumns(10);
+
+ lblDescription = new JLabel("Description:");
+ lblDescription.setBounds(215, 67, 90, 14);
+ lblDescription.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ description_f = new JTextField();
+ description_f.setEditable(false);
+ description_f.setBounds(238, 99, 178, 129);
+ description_f.setColumns(10);
+
+ lblKitchen = new JLabel("Kitchens:");
+ lblKitchen.setBounds(23, 211, 70, 14);
+ lblKitchen.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ kitchens_f = new JTextField();
+ kitchens_f.setEditable(false);
+ kitchens_f.setBounds(103, 202, 86, 20);
+ kitchens_f.setColumns(10);
+
+ lblRooms = new JLabel("Rooms:");
+ lblRooms.setBounds(23, 102, 70, 14);
+ lblRooms.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ rooms_f = new JTextField();
+ rooms_f.setEditable(false);
+ rooms_f.setBounds(103, 99, 86, 20);
+ rooms_f.setColumns(10);
+
+ lblLivings = new JLabel("Living rooms:");
+ lblLivings.setBounds(30, 236, 63, 14);
+ lblLivings.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ lRooms_f = new JTextField();
+ lRooms_f.setEditable(false);
+ lRooms_f.setBounds(103, 233, 86, 20);
+ lRooms_f.setColumns(10);
+
+ lblParkings = new JLabel("Parkings:");
+ lblParkings.setBounds(23, 174, 70, 14);
+ lblParkings.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ parkings_f = new JTextField();
+ parkings_f.setEditable(false);
+ parkings_f.setBounds(103, 171, 86, 20);
+ parkings_f.setColumns(10);
+
+ lblBaths = new JLabel("Baths:");
+ lblBaths.setBounds(23, 143, 70, 14);
+ lblBaths.setHorizontalAlignment(SwingConstants.RIGHT);
+
+ baths_f = new JTextField();
+ baths_f.setEditable(false);
+ baths_f.setBounds(103, 140, 86, 20);
+ baths_f.setColumns(10);
+ contentPane.setLayout(null);
+ contentPane.add(lblParkings);
+ contentPane.add(parkings_f);
+ contentPane.add(lblRooms);
+ contentPane.add(rooms_f);
+ contentPane.add(lblBaths);
+ contentPane.add(baths_f);
+ contentPane.add(lblDistrict);
+ contentPane.add(District_f);
+ contentPane.add(lblLivings);
+ contentPane.add(lRooms_f);
+ contentPane.add(lblKitchen);
+ contentPane.add(kitchens_f);
+ contentPane.add(description_f);
+ contentPane.add(lblDescription);
+ parkings_f.setText(Integer.toString(rh.getFeatures().getnParkings()));
+ rooms_f.setText(Integer.toString(rh.getFeatures().getnRooms()));
+ baths_f.setText(Integer.toString(rh.getFeatures().getnBaths()));
+ District_f.setText(rh.getDistrict());
+ kitchens_f.setText(Integer.toString(rh.getFeatures().getnKitchens()));
+ description_f.setText(rh.getDescription());
+ lRooms_f.setText(Integer.toString(rh.getFeatures().getnLivings()));
+ JLabel lblAvailbleOffers = new JLabel("Availble Offers:");
+ lblAvailbleOffers.setBounds(30, 286, 86, 14);
+ contentPane.add(lblAvailbleOffers);
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setBounds(40, 311, 376, 183);
+ contentPane.add(scrollPane);
+
+ table = new JTable();
+ tableModel = new DefaultTableModel(null,new String[] {"Offer #", "FirstDay", "LastDay", "Price"});
+ table.setModel(tableModel);
+ scrollPane.setViewportView(table);
+
+ JButton btnBookSelected = new JButton("Book SelectedOffer");
+ btnBookSelected.setBounds(127, 511, 178, 23);
+ contentPane.add(btnBookSelected);
+
+ JLabel lblNewLabel = new JLabel("Green: Suit your dates. Red: Do not suit your dates");
+ lblNewLabel.setEnabled(false);
+ lblNewLabel.setBounds(152, 277, 261, 23);
+ contentPane.add(lblNewLabel);
+ Enumeration<Offer> rhs = rh.getAllOffers().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());
+ tableModel.addRow(row);
+
+
+ }
+ table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value, boolean isSelected, boolean hasFocus, int row, int col) {
+
+ super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
+
+ Date firstDay = (Date) table.getModel().getValueAt(row, 1);
+ Date lastDay = (Date) table.getModel().getValueAt(row, 2);
+ if (FirstDay.before(firstDay)&&LastDay.after(lastDay)) {
+ setBackground(Color.GREEN);
+ setForeground(Color.BLACK);
+ } else {
+ setBackground(Color.RED);
+ setForeground(Color.BLACK);
+ }
+ return this;
+ }
+ });
+ }
+}