error correction. minor error
[RRRRHHHH_Code] / ruralHouses / src / gui / BookRuralHouseGUI.java
index fead030..7a262fc 100644 (file)
 package gui;
 
-import businessLogic.ApplicationFacadeInterface;
+import businessLogic.BookingManager;
+import businessLogic.HouseManager;
 
 import com.toedter.calendar.*;
 
 import domain.Booking;
 import domain.RuralHouse;
-
 import exceptions.OfferCanNotBeBooked;
 
 import java.beans.*;
-
 import java.sql.Date;
 import java.text.*;
 import java.util.*;
 
 import javax.swing.*;
+
 import java.awt.*;
 import java.awt.event.*;
 
+
+
 public class BookRuralHouseGUI extends JFrame {
-       private static final long serialVersionUID = 1L;
-
-       private JLabel jLabel1 = new JLabel();
-       private JComboBox jComboBox1;
-       private JLabel jLabel2 = new JLabel();
-       private JLabel jLabel3 = new JLabel();
-       private JLabel jLabel4 = new JLabel();
-       private JTextField jTextField2 = new JTextField();
-       private JTextField jTextField3 = new JTextField();
-       private JTextField jTextField4 = new JTextField();
-       private JButton jButton2 = new JButton();
-       private JButton jButton3 = new JButton();
-
-       // Code for JCalendar
-       private JCalendar jCalendar1 = new JCalendar();
-       private Calendar myCalendar = null;
-       private JLabel jLabel5 = new JLabel();
-
-       public BookRuralHouseGUI() {
-               try {
-                       jbInit();
-               }
-               catch(Exception e) {
-                       e.printStackTrace();
-               }
-       }
-
-       public BookRuralHouseGUI(int houseNumber, Date firstDay, Date lastDay) {
-               try {
-                       jbInit();
-
-                       /*jTextField1.setText(Integer.toString(houseNumber));
-                       long nights=(lastDay.getTime()-firstDay.getTime())/(1000*60*60*24);
-                       jTextField3.setText(Long.toString(nights));
-                       DateFormat dateformat1 = DateFormat.getDateInstance(1);
-
-                       Date first= new Date((long)(firstDay.getTime()));
-                       jTextField2.setText(dateformat1.format(first));
-                       GregorianCalendar cal=new GregorianCalendar();
-                       cal.setTime(first);
-                       int year=cal.get(Calendar.YEAR);
-                       int month=cal.get(Calendar.MONTH);
-                       int day=cal.get(Calendar.DAY_OF_MONTH);
-
-                       JYearChooser yc=jCalendar1.getYearChooser();
-               JMonthChooser mc=   jCalendar1.getMonthChooser();
-               JDayChooser dc= jCalendar1.getDayChooser();
-
-                       yc.setYear(year);
-               mc.setMonth(month);
-               dc.setDay(day); */
-
-               }
-               catch(Exception e) {
-                       e.printStackTrace();
-               }
-       }
-
-       private void jbInit() throws Exception {
-               this.getContentPane().setLayout(null);
-               this.setSize(new Dimension(430, 440));
-               this.setTitle("Book Rural House");
-               jLabel1.setText("Rural house:");
-               ApplicationFacadeInterface facade=StartWindow.getBusinessLogic();
-               Vector<RuralHouse> ruralHouses=facade.getAllRuralHouses();
-
-               jComboBox1 = new JComboBox(ruralHouses);
-
-               jLabel1.setBounds(new Rectangle(15, 10, 115, 20));
-               jComboBox1.setBounds(new Rectangle(120, 10, 175, 20));
-
-               jTextField3.addFocusListener(new FocusListener() {
-                       public void focusGained(FocusEvent e) {}
-                       public void focusLost(FocusEvent e) {
-                               jTextField3_focusLost();
-                       }
-               });
-               jTextField4.addFocusListener(new FocusListener() {
-                       public void focusGained(FocusEvent e) { }
-                       public void focusLost(FocusEvent e) {
-                               jTextField4_focusLost();
-                       }
-               });
-               jLabel2.setText("Arrival day:");
-               jLabel2.setBounds(new Rectangle(15, 40, 115, 20));
-               jLabel3.setText("Number of nights:");
-               jLabel3.setBounds(new Rectangle(15, 240, 115, 20));
-               jLabel4.setText("Telephone contact number:");
-               jLabel4.setBounds(new Rectangle(15, 270, 140, 20));
-               jTextField2.setBounds(new Rectangle(155, 205, 140, 20));
-               jTextField2.setEditable(false);
-               jTextField3.setBounds(new Rectangle(155, 240, 140, 20));
-               jTextField3.setText("0");
-               jTextField4.setBounds(new Rectangle(155, 270, 140, 20));
-               jTextField4.setText("0");
-               jButton2.setText("Accept");
-               jButton2.setBounds(new Rectangle(50, 345, 130, 30));
-               jButton2.setSize(new Dimension(130, 30));
-               jButton2.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               // House code
-                               RuralHouse house=(RuralHouse)jComboBox1.getSelectedItem();
-                               // Arrival date
-                               Date firstDay= new Date(jCalendar1.getCalendar().getTime().getTime());
-                               firstDay=Date.valueOf(firstDay.toString());
-                               // Last day
-                               // Number of days expressed in milliseconds
-                               long nights=1000*60*60*24* Integer.parseInt(jTextField3.getText());
-                               Date lastDay= new Date((long)(firstDay.getTime()+nights));
-                               // Contact telephone
-                               String telephone=jTextField4.getText();
-                               try {
-                                       //Obtain the business logic from a StartWindow class (local or remote)
-                                       ApplicationFacadeInterface facade=StartWindow.getBusinessLogic();
-
-                                       Booking book=facade.createBooking(house, firstDay, lastDay, telephone);
-                                       System.out.println(book.getPrice());
-                                       if (book!=null) {
-                                               BookRuralHouseConfirmationWindow confirmWindow=new BookRuralHouseConfirmationWindow(book);
-                                               confirmWindow.setVisible(true);
-                                       }
-                               }
-                               catch (OfferCanNotBeBooked e1) {
-                                       jLabel5.setText("Error: Booking is not possible");
-                                       JFrame a = new SearchOffersGUI();
-                                       a.setVisible(true);
-                               }
-                               catch (Exception e1) {
-                                       e1.printStackTrace();
-                               }
-                       }
-               });
-               jButton3.setText("Cancel");
-               jButton3.setBounds(new Rectangle(220, 345, 130, 30));
-               jButton3.setSize(new Dimension(130, 30));
-               jButton3.addActionListener(new ActionListener() {
-                       public void actionPerformed(ActionEvent e) {
-                               jButton3_actionPerformed(e);
-                       }
-               });
-               jLabel5.setBounds(new Rectangle(50, 310, 300, 20));
-               jLabel5.setForeground(Color.red);
-               jCalendar1.setBounds(new Rectangle(155, 50, 235, 145));
-               this.getContentPane().add(jCalendar1, null);
-               this.getContentPane().add(jLabel5, null);
-               this.getContentPane().add(jButton3, null);
-               this.getContentPane().add(jButton2, null);
-               this.getContentPane().add(jTextField4, null);
-               this.getContentPane().add(jTextField3, null);
-               this.getContentPane().add(jTextField2, null);
-               this.getContentPane().add(jLabel4, null);
-               this.getContentPane().add(jLabel3, null);
-               this.getContentPane().add(jLabel2, null);
-               this.getContentPane().add(jComboBox1, null);
-               this.getContentPane().add(jLabel1, null);
-
-               // Code for JCalendar
-               this.jCalendar1.addPropertyChangeListener(new PropertyChangeListener() {
-                       public void propertyChange(PropertyChangeEvent propertychangeevent) {
-                               if (propertychangeevent.getPropertyName().equals("locale")) {
-                                       jCalendar1.setLocale((Locale) propertychangeevent.getNewValue());
-                                       DateFormat dateformat = DateFormat.getDateInstance(1, jCalendar1.getLocale());
-                                       jTextField2.setText(dateformat.format(myCalendar.getTime()));
-                               }
-                               else if (propertychangeevent.getPropertyName().equals("calendar")) {
-                                       myCalendar = (Calendar) propertychangeevent.getNewValue();
-                                       DateFormat dateformat1 = DateFormat.getDateInstance(1, jCalendar1.getLocale());
-                                       jTextField2.setText(dateformat1.format(myCalendar.getTime()));
-                                       jCalendar1.setCalendar(myCalendar);
+private static final long serialVersionUID = 1L;
+public static final long MILLSECS_PER_DAY= 24 * 60 * 60 * 1000;
+
+  private JLabel jLabel1 = new JLabel();
+  private JComboBox jComboBox1;
+  Vector<RuralHouse> ruralHouses;
+  private JLabel jLabel2 = new JLabel();
+  private JLabel jLabel3 = new JLabel();
+  private JLabel jLabel4 = new JLabel();
+  private JTextField jTextField2 = new JTextField();
+  private JTextField jTextField3 = new JTextField();
+  private JTextField jTextField4 = new JTextField();
+  private JButton jButton2 = new JButton();
+  private JButton jButton3 = new JButton();
+  
+  // Code for JCalendar
+  private JCalendar jCalendar1 = new JCalendar();
+  private Calendar calendarMio = null;
+  private JLabel jLabel5 = new JLabel();
+  
+  
+
+public BookRuralHouseGUI()
+ {
+    try
+    {
+      jbInit();
+      
+     
+    }
+    catch(Exception e)
+    {
+      e.printStackTrace();
+    }
+  }
+  public BookRuralHouseGUI(String houseName,Date firstDay,Date lastDay)
+  {
+    try
+    {
+      jbInit();
+      
+      
+      // Put the "houseNumber", "firstDay" and "lastDay" in the graphical components of the user interface
+      for (int i=0; i<ruralHouses.size();i++){
+         if (((RuralHouse)ruralHouses.get(i)).getHouseName()==houseName) {
+                 jComboBox1.setSelectedIndex(i);
+                 break;
+         }
+      }
+      
+      Calendar c=new GregorianCalendar();
+      c.setTime(firstDay);
+      //jCalendar1.setCalendar(new GregorianCalendar(firstDay.getYear()+1900,firstDay.getMonth(),firstDay.getDate()));
+      jCalendar1.setCalendar(c);
+      
+      long numberOfDays = (long) (lastDay.getTime()-firstDay.getTime()) / MILLSECS_PER_DAY;
+      jTextField3.setText(Long.toString(numberOfDays));
+      
+
+      
+    }
+    catch(Exception e)
+    {
+      e.printStackTrace();
+    }
+  }
+
+  private void jbInit() throws Exception
+  {
+    this.getContentPane().setLayout(null);
+    this.setSize(new Dimension(410, 413));
+    this.setTitle("Book Rural House");
+    jLabel1.setText("Rural house:");
+    HouseManager houseM = new HouseManager();
+       ruralHouses=houseM.getAllRuralHouses();
+
+       jComboBox1 = new JComboBox(ruralHouses);
+
+    jLabel1.setBounds(new Rectangle(15, 10, 115, 20));
+    jComboBox1.setBounds(new Rectangle(120, 10, 175, 20));
+
+    
+    jTextField3.addFocusListener(new FocusListener()
+      {
+          public void focusGained(FocusEvent e)
+          {
+          }
+  
+          public void focusLost(FocusEvent e)
+          {
+            jTextField3_focusLost();
+          }
+      });
+    jTextField4.addFocusListener(new FocusListener()
+      {
+          public void focusGained(FocusEvent e)
+          {
+          }
+  
+          public void focusLost(FocusEvent e)
+          {
+            jTextField4_focusLost();
+          }
+      });
+    jLabel2.setText("Arrival day:");
+    jLabel2.setBounds(new Rectangle(15, 40, 115, 20));
+    jLabel3.setText("Number of nights:");
+    jLabel3.setBounds(new Rectangle(15, 240, 115, 20));
+    jLabel4.setText("Telephone contact number:");
+    jLabel4.setBounds(new Rectangle(15, 270, 140, 20));
+    jTextField2.setBounds(new Rectangle(155, 205, 140, 20));
+    jTextField2.setEditable(false);
+    jTextField3.setBounds(new Rectangle(155, 240, 140, 20));
+    jTextField3.setText("0");
+    jTextField4.setBounds(new Rectangle(155, 270, 140, 20));
+    jTextField4.setText("0");
+    jButton2.setText("Accept");
+    jButton2.setBounds(new Rectangle(50, 345, 130, 30));
+    jButton2.setSize(new Dimension(130, 30));
+    jButton2.addActionListener(new ActionListener()
+      {
+        public void actionPerformed(ActionEvent e)
+        {
+               // House code
+               RuralHouse house=(RuralHouse)jComboBox1.getSelectedItem();
+               // Arrival date
+               Date firstDay= new Date(jCalendar1.getCalendar().getTime().getTime());
+
+               firstDay=Date.valueOf(firstDay.toString());
+               // Last day
+               // Number of days expressed in milliseconds
+               long nights=1000*60*60*24* Integer.parseInt(jTextField3.getText());
+               Date lastDay= new Date((long)(firstDay.getTime()+nights));
+               // Telephone contact
+               String telephone=jTextField4.getText();
+               try {
+                               
+                       //Obtain the business logic from a StartWindow class (local or remote)
+                       BookingManager bookingM = new BookingManager();
+                                               
+                       Booking book=bookingM.createBooking(house, firstDay, lastDay, telephone);
+                               if (book!=null) {
+                               BookRuralHouseConfirmationWindow confirmWindow=new BookRuralHouseConfirmationWindow(book);
+                               confirmWindow.setVisible(true);
+                               jLabel5.setText("Booking made");
+
                                }
-                       } 
-               });
-       }
-
-       private void jButton3_actionPerformed(ActionEvent e) {
-               this.setVisible(false);
-       }
-
-       private void jTextField3_focusLost() {
-               try {
-                       new Integer (jTextField3.getText());
-                       jLabel5.setText("");
-               }
-               catch (NumberFormatException ex) {
-                       jLabel5.setText("Error: Please introduce a number");
-               }
-       }
-
-       private void jTextField4_focusLost() {
-               try {
-                       new Integer (jTextField4.getText());
-                       jLabel5.setText("");
-               }
-               catch (NumberFormatException ex) {
-                       jLabel5.setText("Error: Please introduce a number");
-               }
-       }
+                               else jLabel5.setText("There is not available offer for these dates");
+                       } catch (OfferCanNotBeBooked e1) {
+                               jLabel5.setText("Error: It is not possible to book");
+                               JFrame a = new QueryAvailabilityGUI();
+                           a.setVisible(true);
+                       
+        } catch (Exception e1) {
+                       
+                       e1.printStackTrace();
+        }}
+      });
+    jButton3.setText("Cancel");
+    jButton3.setBounds(new Rectangle(220, 345, 130, 30));
+    jButton3.setSize(new Dimension(130, 30));
+    jButton3.addActionListener(new ActionListener()
+      {
+        public void actionPerformed(ActionEvent e)
+        {
+          jButton3_actionPerformed(e);
+        }
+      });
+    jLabel5.setBounds(new Rectangle(50, 310, 300, 20));
+    jLabel5.setForeground(Color.red);
+    jCalendar1.setBounds(new Rectangle(155, 50, 235, 145));
+    this.getContentPane().add(jCalendar1, null);
+    this.getContentPane().add(jLabel5, null);
+    this.getContentPane().add(jButton3, null);
+    this.getContentPane().add(jButton2, null);
+    this.getContentPane().add(jTextField4, null);
+    this.getContentPane().add(jTextField3, null);
+    this.getContentPane().add(jTextField2, null);
+    this.getContentPane().add(jLabel4, null);
+    this.getContentPane().add(jLabel3, null);
+    this.getContentPane().add(jLabel2, null);
+    this.getContentPane().add(jComboBox1, null);
+    this.getContentPane().add(jLabel1, null);
+    
+    // Code for JCalendar
+    this.jCalendar1.addPropertyChangeListener(new PropertyChangeListener()
+    {
+      public void propertyChange(PropertyChangeEvent propertychangeevent)
+      {
+        if (propertychangeevent.getPropertyName().equals("locale"))
+        {
+          jCalendar1.setLocale((Locale) propertychangeevent.getNewValue());
+          DateFormat dateformat = DateFormat.getDateInstance(1, jCalendar1.getLocale());
+          jTextField2.setText(dateformat.format(calendarMio.getTime()));
+          
+        }
+        else if (propertychangeevent.getPropertyName().equals("calendar"))
+        {
+          calendarMio = (Calendar) propertychangeevent.getNewValue();
+          DateFormat dateformat1 = DateFormat.getDateInstance(1, jCalendar1.getLocale());
+          jTextField2.setText(dateformat1.format(calendarMio.getTime()));
+          jCalendar1.setCalendar(calendarMio);
+        }
+      } 
+    });
+  }
+
+  private void jButton3_actionPerformed(ActionEvent e)
+  {
+    this.setVisible(false);
+  }
 
+  public void setConfirmBooking(boolean b){
+         if (b) jLabel5.setText("Booking made");
+  }
+ private void jTextField3_focusLost()
+ {
+   try
+  {
+    new Integer (jTextField3.getText());
+    jLabel5.setText("");
+  }
+  catch (NumberFormatException ex)
+  {
+    jLabel5.setText("Error: Introduce a number");
+  }
+ }
+ private void jTextField4_focusLost()
+ {
+   try
+  {
+    new Integer (jTextField4.getText());
+    jLabel5.setText("");
+  }
+  catch (NumberFormatException ex)
+  {
+    jLabel5.setText("Error: Introduce a number");
+  }
+ }
 }
\ No newline at end of file