[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