From: Eneko Pinzolas Murua Date: Fri, 10 Apr 2015 10:37:22 +0000 (+0200) Subject: Minor error correction and some bugs, alongside with modify offers quality of life... X-Git-Url: https://xp-dev.com/git/RRRRHHHH_Code/commitdiff_plain/04582007ad2797602f03edf7442e11464828d00b Minor error correction and some bugs, alongside with modify offers quality of life improvements. --- 04582007ad2797602f03edf7442e11464828d00b diff --cc ruralHouses/src/dataAccess/DB4oManager.java index 8ec88c7,7275ba2..8078e78 --- a/ruralHouses/src/dataAccess/DB4oManager.java +++ b/ruralHouses/src/dataAccess/DB4oManager.java @@@ -153,8 -155,8 +155,9 @@@ public class DB4oManager db.close(); } } + + + - @SuppressWarnings("finally") public Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay, float price) throws RemoteException, Exception { Offer o = null; diff --cc ruralHouses/src/gui/HouseFeaturesGUI.java index 0000000,414ff07..ecc44ab mode 000000,100644..100644 --- a/ruralHouses/src/gui/HouseFeaturesGUI.java +++ b/ruralHouses/src/gui/HouseFeaturesGUI.java @@@ -1,0 -1,260 +1,258 @@@ + package gui; + + import java.awt.Color; + import java.awt.Component; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; + import java.awt.event.MouseAdapter; + import java.awt.event.MouseEvent; + 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 businessLogic.BookingManager; + import domain.Booking; + import domain.Offer; + import domain.RuralHouse; + import exceptions.OfferCanNotBeBooked; + + 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(); + private RuralHouse rh; + private JTextField telIn; + private int row; + + /** + * Create the frame. + */ + - public HouseFeaturesGUI(RuralHouse RH, Date FirstDay, Date LastDay) { ++ public HouseFeaturesGUI(RuralHouse RH, final Date FirstDay, final Date LastDay) { + this.rh = RH; + 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); + - JTable table = new JTable() { ++ table = new JTable() { + private static final long serialVersionUID = 1L; + + public boolean isCellEditable(int row, int column) { + return false; + }; + }; + tableModel = new DefaultTableModel(null, new String[] { "Offer #", + "FirstDay", "LastDay", "Price" }); + table.setModel(tableModel); + scrollPane.setViewportView(table); + + JButton btnBookSelected = new JButton("Book SelectedOffer"); + btnBookSelected.setBounds(238, 505, 178, 23); + contentPane.add(btnBookSelected); + + btnBookSelected.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + + jButton_ActionPerformed(arg0); + } + + }); + + 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); + + JLabel lblNewLabel_1 = new JLabel("Telephone num:"); + lblNewLabel_1.setBounds(10, 509, 83, 14); + contentPane.add(lblNewLabel_1); + + telIn = new JTextField(); + telIn.setBounds(99, 505, 129, 20); + contentPane.add(telIn); + telIn.setColumns(10); + table.addMouseListener( new MouseAdapter(){ + @Override + public void mouseClicked(MouseEvent arg0) { + row = table.getSelectedRow(); + } + }); + Enumeration rhs = rh.getAllOffers().elements(); + while (rhs.hasMoreElements()) { + Offer of = rhs.nextElement(); + Vector row = new Vector(); + 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 != null && LastDay != null) { - if (FirstDay.before(firstDay) || FirstDay.equals(firstDay) - && LastDay.after(lastDay) - || LastDay.equals(lastDay)) { - setBackground(Color.GREEN); ++ if (LastDay.before(lastDay) || FirstDay.after(firstDay)) { ++ setBackground(Color.RED); + setForeground(Color.BLACK); + } else { - setBackground(Color.RED); ++ setBackground(Color.GREEN); + setForeground(Color.BLACK); + } + } + return this; + } + }); + } + + private void jButton_ActionPerformed(ActionEvent arg0) { + BookingManager bookingM = new BookingManager(); + //RegExp to see if telephone number is correct??TODO + Booking book = null; + try { + book = bookingM.createBooking(rh, rh.offers.get(row).getFirstDay(), rh.offers.get(row).getLastDay(), telIn.getText()); + } catch (OfferCanNotBeBooked e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (book != null) { + BookRuralHouseConfirmationWindow confirmWindow = new BookRuralHouseConfirmationWindow( + book); + confirmWindow.setVisible(true); + } + } + } diff --cc ruralHouses/src/gui/ModifyOfferGUI.java index 651d85c,651d85c..853ce07 --- a/ruralHouses/src/gui/ModifyOfferGUI.java +++ b/ruralHouses/src/gui/ModifyOfferGUI.java @@@ -56,7 -56,7 +56,10 @@@ public class ModifyOfferGUI extends JFr jComboBox1 = new JComboBox(v); -- comboBox_o = new JComboBox(); ++ comboBox_o = new JComboBox(((RuralHouse)jComboBox1.getSelectedItem()).getAllOffers()); ++ DateFormat dateformat1 = DateFormat.getDateInstance(1, jCalendar1.getLocale()); ++ jTextField1.setText(dateformat1.format(((Offer) comboBox_o.getSelectedItem()).getFirstDay())); ++ jTextField2.setText(dateformat1.format(((Offer) comboBox_o.getSelectedItem()).getLastDay())); jComboBox1.setBounds(new Rectangle(115, 12, 115, 20)); jLabel1.setText("List of houses:"); diff --cc ruralHouses/src/gui/listOfHousesGUI.java index 0478466,e75b125..b8db0df --- a/ruralHouses/src/gui/listOfHousesGUI.java +++ b/ruralHouses/src/gui/listOfHousesGUI.java @@@ -74,7 -68,13 +68,13 @@@ public class listOfHousesGUI extends JF scrollPane.setBounds(23, 113, 536, 271); contentPane.add(scrollPane); - table = new JTable(); - JTable table = new JTable() { ++ 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[] { "House Name", "Bedrooms", "Kitchens", "Baths", "Parkings",