[jboss-cvs] jboss-seam/examples/spring/src/org/jboss/seam/example/spring ...

Norman Richards norman.richards at jboss.com
Mon Feb 19 14:30:26 EST 2007


  User: nrichards
  Date: 07/02/19 14:30:26

  Added:       examples/spring/src/org/jboss/seam/example/spring  
                        HotelBookingAction.java HotelSearchingAction.java
  Log:
  booking
  
  Revision  Changes    Path
  1.1      date: 2007/02/19 19:30:26;  author: nrichards;  state: Exp;jboss-seam/examples/spring/src/org/jboss/seam/example/spring/HotelBookingAction.java
  
  Index: HotelBookingAction.java
  ===================================================================
  package org.jboss.seam.example.spring;
  
  import java.util.Calendar;
  
  import javax.persistence.EntityManager;
  import javax.persistence.EntityManagerFactory;
  import javax.persistence.PersistenceException;
  
  //import org.jboss.seam.core.Events;
  import org.jboss.seam.core.FacesMessages;
  //import org.jboss.seam.log.Log;
  import org.springframework.orm.jpa.JpaCallback;
  import org.springframework.orm.jpa.JpaTemplate;
  
  public class HotelBookingAction
  {   
      private JpaTemplate jpaTemplate;
  
      private User user;
      private Hotel hotel;
      private Booking booking;
      private FacesMessages facesMessages;
  //    private Events events;
  //    private Log log;
  
      private boolean bookingValid;
  
      //@Begin
      public void selectHotel(final Hotel selectedHotel)
      {
          hotel = (Hotel) jpaTemplate.execute(new JpaCallback() {        
              public Object doInJpa(EntityManager em) 
                  throws PersistenceException 
              {
                  return em.merge(selectedHotel);
              }
          });
      }
  
      public void bookHotel()
      {      
          booking = new Booking(hotel, user);
          Calendar calendar = Calendar.getInstance();
          booking.setCheckinDate(calendar.getTime());
          calendar.add(Calendar.DAY_OF_MONTH, 1);
          booking.setCheckoutDate(calendar.getTime());
      }
  
      public void setBookingDetails()
      {
          Calendar calendar = Calendar.getInstance();
          calendar.add(Calendar.DAY_OF_MONTH, -1);
          if (booking.getCheckinDate().before(calendar.getTime())) {
              facesMessages.add("Check in date must be a future date");
              bookingValid=false;
          } else if (!booking.getCheckinDate().before(booking.getCheckoutDate())) {
              facesMessages.add("Check out date must be later than check in date");
              bookingValid=false;
          } else {
              bookingValid=true;
          }
      }
      public boolean isBookingValid()
      {
          return bookingValid;
      }
  
      //@End
      public void confirm()
      {
          jpaTemplate.execute(new JpaCallback() {        
              public Object doInJpa(EntityManager em) 
                  throws PersistenceException 
              {
                  System.out.println("PERSIST: " + booking);
                  em.persist(booking);
                  return null;
              }
          });
         
          //facesMessages.add("Thank you, #{user.name}, your confimation number for #{hotel.name} is #{booking.id}");
          //log.info("New booking: #{booking.id} for #{user.username}");
          //events.raiseTransactionSuccessEvent("bookingConfirmed");
      }
  
      //@End
      public void cancel() {}
      
      public void setEntityManagerFactory(EntityManagerFactory emf) {
          jpaTemplate = new JpaTemplate(emf);
      }
  }
  
  
  1.1      date: 2007/02/19 19:30:26;  author: nrichards;  state: Exp;jboss-seam/examples/spring/src/org/jboss/seam/example/spring/HotelSearchingAction.java
  
  Index: HotelSearchingAction.java
  ===================================================================
  package org.jboss.seam.example.spring;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.faces.model.DataModel;
  import javax.persistence.EntityManager;
  import javax.persistence.EntityManagerFactory;
  import javax.persistence.PersistenceException;
  
  import org.jboss.seam.jsf.ListDataModel;
  import org.springframework.orm.jpa.JpaCallback;
  import org.springframework.orm.jpa.JpaTemplate;
  
  public class HotelSearchingAction
  {
     private JpaTemplate jpaTemplate;
     
     private String searchString;
     private int pageSize = 10;
     private int page;
     
     private List<Hotel> hotels;
     
     public void setEntityManagerFactory(EntityManagerFactory emf) {
         jpaTemplate = new JpaTemplate(emf);
     }
     
     public List<Hotel> getHotels() {
         return hotels;
     }
     
     public DataModel getHotelsModel() {
         List data = getHotels();
         
         if (data == null) {
             data = new ArrayList(0);
         }
         
         return new ListDataModel(data);       
     }
     
     public void find()
     {
        page = 0;
        queryHotels();
     }
     public void nextPage()
     {
        page++;
        queryHotels();
     }
        
     @SuppressWarnings("unchecked")
     private void queryHotels()
     {       
         hotels = (List<Hotel>) jpaTemplate.execute(new JpaCallback() {        
             public Object doInJpa(EntityManager em) 
                 throws PersistenceException 
             {
                 String searchPattern = searchString==null ? "%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
                 return em.createQuery("select h from Hotel h where lower(h.name) like :search or lower(h.city) like :search or lower(h.zip) like :search or lower(h.address) like :search")
                       .setParameter("search", searchPattern)
                       .setMaxResults(pageSize)
                       .setFirstResult( page * pageSize )
                       .getResultList();              
             }
         });
         System.out.println("HOTELS:" + hotels);
     }
     
     public boolean isNextPageAvailable()
     {
        return hotels!=null && hotels.size()==pageSize;
     }
     
     public int getPageSize() {
        return pageSize;
     }
     public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
     }
     public String getSearchString()
     {
        return searchString;
     }
     public void setSearchString(String searchString)
     {
        this.searchString = searchString;
     }
  }
  
  



More information about the jboss-cvs-commits mailing list