import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
+import java.rmi.Naming;
import java.util.Date;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
-import businessLogic.BookingManager;
+import common.BookingInterface;
+
+import configuration.___IntNames;
import domain.Booking;
+import domain.Client;
import domain.Offer;
import domain.RuralHouse;
private JTable table;
private DefaultTableModel tableModel;
private RuralHouse rh;
+ private Vector<Offer> offers= new Vector<Offer>();
private JTextField telIn;
private int row;
+ private JLabel labelPhone;
+ private JLabel lblName;
+ private JTextField nameField;
+ private JLabel lblEmail;
+ private JTextField mailField;
/**
* Create the frame.
*/
- public HouseFeaturesGUI(RuralHouse RH, final Date FirstDay, final Date LastDay) {
+ public HouseFeaturesGUI(RuralHouse RH, final Date FirstDay,
+ final Date LastDay) {
this.rh = RH;
this.getContentPane().setLayout(null);
- setBounds(100, 100, 500, 583);
+ setBounds(100, 100, 500, 700);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
scrollPane.setViewportView(table);
JButton btnBookSelected = new JButton("Book SelectedOffer");
- btnBookSelected.setBounds(238, 505, 178, 23);
+ btnBookSelected.setBounds(238, 614, 178, 23);
contentPane.add(btnBookSelected);
btnBookSelected.addActionListener(new ActionListener() {
JLabel lblNewLabel = new JLabel(
"Green: Suit your dates. Red: Do not suit your dates");
lblNewLabel.setEnabled(false);
- lblNewLabel.setBounds(152, 277, 261, 23);
+ lblNewLabel.setBounds(170, 282, 261, 23);
contentPane.add(lblNewLabel);
-
+
JLabel lblNewLabel_1 = new JLabel("Telephone num:");
- lblNewLabel_1.setBounds(10, 509, 83, 14);
+ lblNewLabel_1.setBounds(10, 618, 83, 14);
contentPane.add(lblNewLabel_1);
-
+
telIn = new JTextField();
- telIn.setBounds(99, 505, 129, 20);
+ telIn.setBounds(103, 615, 129, 20);
contentPane.add(telIn);
telIn.setColumns(10);
- table.addMouseListener( new MouseAdapter(){
+
+ labelPhone = new JLabel("");
+ labelPhone.setBounds(238, 252, 178, 14);
+ contentPane.add(labelPhone);
+
+ lblName = new JLabel("Name:");
+ lblName.setBounds(10, 516, 46, 14);
+ contentPane.add(lblName);
+
+ nameField = new JTextField();
+ nameField.setBounds(103, 513, 178, 20);
+ contentPane.add(nameField);
+ nameField.setColumns(10);
+
+ lblEmail = new JLabel("E-mail:");
+ lblEmail.setBounds(10, 565, 46, 14);
+ contentPane.add(lblEmail);
+
+ mailField = new JTextField();
+ mailField.setBounds(103, 562, 178, 20);
+ contentPane.add(mailField);
+ mailField.setColumns(10);
+
+ table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
row = table.getSelectedRow();
}
});
+
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);
-
+ if (of.getBookings() == null
+ || !of.isBooked()) {
+ offers.add(of);
+ 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() {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
Date firstDay = (Date) table.getModel().getValueAt(row, 1);
Date lastDay = (Date) table.getModel().getValueAt(row, 2);
if (FirstDay != null && LastDay != null) {
- if (LastDay.before(lastDay) || FirstDay.after(firstDay)) {
+ if (LastDay.before(lastDay) || FirstDay.after(firstDay)) {
setBackground(Color.RED);
setForeground(Color.BLACK);
} else {
}
private void jButton_ActionPerformed(ActionEvent arg0) {
- BookingManager bookingM = new BookingManager();
- //RegExp to see if telephone number is correct??TODO
- Booking book = null;
+
+ BookingInterface bookingM = null;
try {
- if (table.getRowCount()!=0)
- book = bookingM.createBooking(rh, rh.offers.get(row).getFirstDay(), rh.offers.get(row).getLastDay(), telIn.getText());
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (book != null) {
- BookRuralHouseConfirmationWindow confirmWindow = new BookRuralHouseConfirmationWindow(
- book);
- confirmWindow.setVisible(true);
+ bookingM = (BookingInterface) Naming
+ .lookup(___IntNames.BookingManager);
+ } catch (Exception e1) {
+ System.out.println("Error accessing remote authentication: "
+ + e1.toString());
+ }
+
+ if (telIn.getText().matches("[976]\\d{2}[.\\- ]?\\d{3}[.\\- ]?\\d{3}")
+ && mailField
+ .getText()
+ .matches(
+ "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$")
+ && !nameField.getText().isEmpty()) {
+ labelPhone.setText("");
+ Vector<Booking> book = null;
+ try {
+ if (table.getRowCount() != 0) {
+ Client cl = new Client(nameField.getText(),
+ mailField.getText(), telIn.getText());
+ book = bookingM.createBooking(rh, offers.get(row)
+ .getFirstDay(), offers.get(row).getLastDay(),cl);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if (book != null) {
+ BookRuralHouseConfirmationWindow confirmWindow = new BookRuralHouseConfirmationWindow(
+ book.lastElement());
+ confirmWindow.setVisible(true);
+ }
+ } else {
+ labelPhone.setText("Bad formatted data.");
+
}
}
}