[jboss-cvs] JBossAS SVN: r97487 - in projects/snowdrop/trunk/documentation/samples/sportsclub: sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Dec 6 17:50:05 EST 2009


Author: lvlcek at redhat.com
Date: 2009-12-06 17:50:04 -0500 (Sun, 06 Dec 2009)
New Revision: 97487

Added:
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AbstractRangeCriteria.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml
Removed:
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationsBean.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/listReservationForm.xhtml
Modified:
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AccountSearchCriteria.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/PersonSearchCriteria.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml
   projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/index.xhtml
Log:
Reservation search rework

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/ReservationRepository.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -1,42 +1,13 @@
 package org.jboss.snowdrop.samples.sportsclub.domain.repository;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
 
 import java.util.List;
-import java.util.Date;
 
-/**
- *
- */
-public interface ReservationRepository extends Repository<Reservation, Integer> {
+public interface ReservationRepository extends Repository<Reservation, Integer>
+{
+   List<Reservation> getByCriteria(ReservationSearchCriteria criteria);
 
-    /**
-     * Return all reservations in given date range.
-     *
-     * @see #getReservationsAfter(java.util.Date)
-     * @see #getReservationsBefore(java.util.Date)
-     * 
-     * @param fromDate
-     * @param toDate
-     * @return
-     */
-    List<Reservation> getReservations(Date fromDate, Date toDate);
-
-    /**
-     * Return all reservations before given date.
-     * This means all reservations whose toDate.before(date) is true.
-     * It checks the right boundary of the date range interval, i.e. (infinity, date&gt;
-     * @param date
-     * @return
-     */
-    List<Reservation> getReservationsBefore(Date date);
-
-    /**
-     * Return all reservations after given date.
-     * This means all reservations whose fromDate.after(date) is true.
-     * It checks the left boundary of the date range interval, i.e. &lt;date, infinity)
-     * @param date
-     * @return
-     */
-    List<Reservation> getReservationsAfter(Date date);
+   Integer countByCriteria(ReservationSearchCriteria criteria);
 }

Added: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AbstractRangeCriteria.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AbstractRangeCriteria.java	                        (rev 0)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AbstractRangeCriteria.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -0,0 +1,18 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria;
+
+/**
+ */
+public abstract class AbstractRangeCriteria
+{
+   private Range range;
+
+   public Range getRange()
+   {
+      return range;
+   }
+
+   public void setRange(Range range)
+   {
+      this.range = range;
+   }
+}

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AccountSearchCriteria.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AccountSearchCriteria.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/AccountSearchCriteria.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -3,13 +3,10 @@
 /**
  * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
  */
-public class AccountSearchCriteria
+public class AccountSearchCriteria extends AbstractRangeCriteria
 {
    private PersonSearchCriteria personSearchCriteria;
 
-   private Range range;
-
-
    public PersonSearchCriteria getPersonSearchCriteria()
    {
       return personSearchCriteria;
@@ -20,15 +17,4 @@
       this.personSearchCriteria = personSearchCriteria;
    }
 
-   public Range getRange()
-   {
-      return range;
-   }
-
-   public void setRange(Range range)
-   {
-      this.range = range;
-   }
-
-
 }

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/PersonSearchCriteria.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/PersonSearchCriteria.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/PersonSearchCriteria.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -3,24 +3,12 @@
 /**
  * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
  */
-public class PersonSearchCriteria
+public class PersonSearchCriteria extends AbstractRangeCriteria
 {
    private String name;
 
    private String city;
 
-   private Range range;
-
-   public Range getRange()
-   {
-      return range;
-   }
-
-   public void setRange(Range range)
-   {
-      this.range = range;
-   }
-
    public String getCity()
    {
       return city;

Added: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java	                        (rev 0)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -0,0 +1,32 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria;
+
+import java.util.Date;
+
+/**
+ */
+public class ReservationSearchCriteria extends AbstractRangeCriteria
+{
+   private Date fromDate;
+
+   private Date toDate;
+
+   public Date getFromDate()
+   {
+      return fromDate;
+   }
+
+   public void setFromDate(Date fromDate)
+   {
+      this.fromDate = fromDate;
+   }
+
+   public Date getToDate()
+   {
+      return toDate;
+   }
+
+   public void setToDate(Date toDate)
+   {
+      this.toDate = toDate;
+   }
+}

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -1,9 +1,11 @@
 package org.jboss.snowdrop.samples.stayfit.dao.hibernate;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.ReservationRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
 import org.hibernate.Criteria;
 import static org.hibernate.criterion.Restrictions.*;
+import org.hibernate.criterion.Projections;
 
 import java.util.List;
 import java.util.Date;
@@ -18,22 +20,40 @@
       super(Reservation.class);
    }
 
-   public List<Reservation> getReservations(Date fromDate, Date toDate)
+   private Criteria convert(ReservationSearchCriteria reservationSearchCriteria)
    {
+      Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Reservation.class);
 
-      Criteria cri = getCurrentSession().createCriteria(Reservation.class);
-      cri.add(and(ge("from", fromDate), le("to", toDate)));
+      Date from = reservationSearchCriteria.getFromDate();
+      Date to = reservationSearchCriteria.getToDate();
 
-      return cri.list();
+      if (from != null && to != null) criteria.add(and(ge("from", from), le("to", to)));
+      else
+      {
+         if (from != null) criteria.add(ge("from", from));
+         if (to != null) criteria.add(le("to", to));
+      }
+
+      if (reservationSearchCriteria.getRange() != null)
+      {
+         criteria.setFirstResult(reservationSearchCriteria.getRange().getMinIndex());
+         criteria.setMaxResults(reservationSearchCriteria.getRange().length());
+      }
+
+      return criteria;
    }
 
-   public List<Reservation> getReservationsBefore(Date date)
+   public List<Reservation> getByCriteria(ReservationSearchCriteria criteria)
    {
-      return getCurrentSession().createCriteria(Reservation.class).add(le("to", date)).list();
+      Criteria cri = convert(criteria);
+      return cri.list();
    }
 
-   public List<Reservation> getReservationsAfter(Date date)
+   public Integer countByCriteria(ReservationSearchCriteria criteria)
    {
-      return getCurrentSession().createCriteria(Reservation.class).add(ge("from", date)).list();
+      Criteria cri = convert(criteria);
+      cri.setProjection(Projections.count("id"));
+      return (Integer) cri.uniqueResult();
    }
+
 }

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -1,6 +1,7 @@
 package org.jboss.snowdrop.samples.stayfit.dao.hibernate;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.ReservationRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
@@ -32,13 +33,23 @@
       Date from = getDate(2009,1,1);
       Date to = getDate(2009,12,31);
 
-      List<Reservation> reservations = reservationRepository.getReservations(from, to);
+      ReservationSearchCriteria criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(from);
+      criteria.setToDate(to);
+
+      List<Reservation> reservations = reservationRepository.getByCriteria(criteria);
       Assert.assertEquals(3, reservations.size());
 
-      reservations = reservationRepository.getReservationsAfter(getDate(2009,02,01));
+      criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(getDate(2009,02,01));
+
+      reservations = reservationRepository.getByCriteria(criteria);
       Assert.assertEquals(2, reservations.size());
 
-      reservations = reservationRepository.getReservationsBefore(getDate(2009,11,30));
+      criteria = new ReservationSearchCriteria();
+      criteria.setToDate(getDate(2009,11,30));
+
+      reservations = reservationRepository.getByCriteria(criteria);
       Assert.assertEquals(2, reservations.size());
       
    }

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -10,10 +10,7 @@
  */
 public interface ReservationService
 {
-    
-    List<Reservation> getReservations(Date fromDate, Date toDate);
-    List<Reservation> getReservationBefore(Date date);
-    List<Reservation> getReservationAfter(Date date);
-    List<Reservation> getAllReservation();
+   List<Reservation> getReservations(Date fromDate, Date toDate, Integer nim, Integer max);
 
+   Integer countReservationsForRange(Date fromDate, Date toDate);
 }

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -2,6 +2,8 @@
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.ReservationRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.ReservationSearchCriteria;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria.Range;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
@@ -16,29 +18,27 @@
    private ReservationRepository reservationRepository;
 
    @Transactional(readOnly = true)
-   public List<Reservation> getReservations(Date fromDate, Date toDate)
+   public List<Reservation> getReservations(Date fromDate, Date toDate, Integer min, Integer max)
    {
-      return getReservationRepository().getReservations(fromDate, toDate);
+      ReservationSearchCriteria criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(fromDate);
+      criteria.setToDate(toDate);
+      if (min != null && max != null)
+      {
+         Range range = new Range(min, max);
+         criteria.setRange(range);
+      }
+      return reservationRepository.getByCriteria(criteria);
    }
 
-   @Transactional(readOnly = true)
-   public List<Reservation> getReservationBefore(Date date)
+   public Integer countReservationsForRange(Date fromDate, Date toDate)
    {
-      return getReservationRepository().getReservationsBefore(date);
+      ReservationSearchCriteria criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(fromDate);
+      criteria.setToDate(toDate);
+      return reservationRepository.countByCriteria(criteria);
    }
 
-   @Transactional(readOnly = true)
-   public List<Reservation> getReservationAfter(Date date)
-   {
-      return getReservationRepository().getReservationsAfter(date);
-   }
-
-   @Transactional(readOnly = true)
-   public List<Reservation> getAllReservation()
-   {
-      return (List<Reservation>) reservationRepository.findAll();
-   }
-
    public ReservationRepository getReservationRepository()
    {
       return reservationRepository;
@@ -48,4 +48,5 @@
    {
       this.reservationRepository = reservationRepository;
    }
+
 }

Copied: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java (from rev 97339, projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationsBean.java)
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	                        (rev 0)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -0,0 +1,158 @@
+package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
+
+import org.jboss.snowdrop.samples.stayfit.service.ReservationService;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.model.DataVisitor;
+import org.ajax4jsf.model.Range;
+import org.ajax4jsf.model.SequenceRange;
+
+import javax.faces.context.FacesContext;
+import java.util.Date;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+import java.io.IOException;
+
+/**
+ */
+public class ReservationSearch extends ExtendedDataModel
+{
+
+   private ReservationService reservationService;
+   private Date fromDate;
+   private Date toDate;
+
+   private int currentPage;
+   private int currentRow;
+   private Long currentId;
+
+   private Map<Long, Reservation> reservationsMap = new HashMap<Long, Reservation>();
+   private Integer rowCount;
+
+   public String searchReservations()
+   {
+      rowCount = reservationService.countReservationsForRange(fromDate, toDate);
+      currentPage = 1;
+      return "success";
+   }
+
+
+   public ReservationService getReservationService()
+   {
+      return reservationService;
+   }
+
+   public void setReservationService(ReservationService reservationService)
+   {
+      this.reservationService = reservationService;
+   }
+
+   public Date getFromDate()
+   {
+      return fromDate;
+   }
+
+   public void setFromDate(Date fromDate)
+   {
+      this.fromDate = fromDate;
+   }
+
+   public Date getToDate()
+   {
+      return toDate;
+   }
+
+   public void setToDate(Date toDate)
+   {
+      this.toDate = toDate;
+   }
+
+   public int getCurrentPage()
+   {
+      return currentPage;
+   }
+
+   public void setCurrentPage(int currentPage)
+   {
+      this.currentPage = currentPage;
+   }
+
+   @Override
+   public Object getRowKey()
+   {
+      return currentId;
+   }
+
+   @Override
+   public void setRowKey(Object key)
+   {
+      if (key != null)
+         currentId = (Long) key;
+   }
+
+   @Override
+   public boolean isRowAvailable()
+   {
+      if (currentId == null)
+         return false;
+      if (reservationsMap.containsKey(currentId))
+         return true;
+      return false;
+   }
+
+   @Override
+   public int getRowCount()
+   {
+      if (rowCount == null)
+      {
+         rowCount = reservationService.countReservationsForRange(fromDate, toDate);
+      }
+      return rowCount;
+   }
+
+   @Override
+   public Object getRowData()
+   {
+      return reservationsMap.get(currentId);
+   }
+
+   @Override
+   public void walk(FacesContext facesContext, DataVisitor dataVisitor, Range range, Object argument) throws IOException
+   {
+      int firstResult = ((SequenceRange) range).getFirstRow();
+      int maxResults = ((SequenceRange) range).getRows();
+      List<Reservation> list = reservationService.getReservations(fromDate, toDate, firstResult, maxResults);
+      reservationsMap = new HashMap<Long, Reservation>();
+      for (Reservation row : list)
+      {
+         Long id = row.getId();
+         reservationsMap.put(id, row);
+         dataVisitor.process(facesContext, id, argument);
+      }
+   }
+
+   @Override
+   public int getRowIndex()
+   {
+      return currentRow;
+   }
+
+   @Override
+   public void setRowIndex(int rowIndex)
+   {
+      this.currentRow = rowIndex;
+   }
+
+   @Override
+   public Object getWrappedData()
+   {
+      throw new UnsupportedOperationException("Not supported");
+   }
+
+   @Override
+   public void setWrappedData(Object data)
+   {
+      throw new UnsupportedOperationException("Not supported");
+   }
+}

Deleted: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationsBean.java
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationsBean.java	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationsBean.java	2009-12-06 22:50:04 UTC (rev 97487)
@@ -1,76 +0,0 @@
-package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
-
-import org.jboss.snowdrop.samples.stayfit.service.ReservationService;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- */
-public class ReservationsBean
-{
-
-   private ReservationService reservationService;
-   private Date fromDate;
-   private Date toDate;
-   private List<Reservation> availableReservations;
-
-   public String populateReservations()
-   {
-      if (fromDate != null && toDate != null)
-      {
-         availableReservations = reservationService.getReservations(fromDate, toDate);
-      } else if (fromDate == null && toDate != null)
-      {
-         availableReservations = reservationService.getReservationBefore(toDate);
-      } else if (fromDate != null && toDate == null)
-      {
-         availableReservations = reservationService.getReservationAfter(fromDate);
-      } else
-      {
-         availableReservations = reservationService.getAllReservation();
-      }
-      return "success";
-   }
-
-   public ReservationService getReservationService()
-   {
-      return reservationService;
-   }
-
-   public void setReservationService(ReservationService reservationService)
-   {
-      this.reservationService = reservationService;
-   }
-
-   public Date getFromDate()
-   {
-      return fromDate;
-   }
-
-   public void setFromDate(Date fromDate)
-   {
-      this.fromDate = fromDate;
-   }
-
-   public Date getToDate()
-   {
-      return toDate;
-   }
-
-   public void setToDate(Date toDate)
-   {
-      this.toDate = toDate;
-   }
-
-   public List<Reservation> getAvailableReservations()
-   {
-      return availableReservations;
-   }
-
-   public void setAvailableReservations(List<Reservation> availableReservations)
-   {
-      this.availableReservations = availableReservations;
-   }
-}

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml	2009-12-06 22:50:04 UTC (rev 97487)
@@ -11,7 +11,7 @@
 
     <import resource="classpath*:infrastructure.xml"/>
 
-    <bean id="reservationsBean" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.ReservationsBean" scope="session">
+    <bean id="reservationSearch" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.ReservationSearch" scope="request">
         <property name="reservationService" ref="reservationService"/>
     </bean>
     

Modified: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/index.xhtml
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/index.xhtml	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/index.xhtml	2009-12-06 22:50:04 UTC (rev 97487)
@@ -6,7 +6,7 @@
 	xmlns:a4j="http://richfaces.org/a4j"
 	template="layout/template.xhtml">
 	<ui:define name="content">
-        <h:outputLink value="listReservationForm.jsf"><h:outputText value="List Reservations"/></h:outputLink>
+        <h:outputLink value="reservationSearch.jsf"><h:outputText value="Search Reservations"/></h:outputLink>
         <rich:separator/> 
         <h:outputLink value="createReservationForm.jsf"><h:outputText value="Create New Reservation"/></h:outputLink>
 	</ui:define>

Deleted: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/listReservationForm.xhtml
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/listReservationForm.xhtml	2009-12-06 12:30:28 UTC (rev 97486)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/listReservationForm.xhtml	2009-12-06 22:50:04 UTC (rev 97487)
@@ -1,68 +0,0 @@
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:f="http://java.sun.com/jsf/core"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:rich="http://richfaces.org/rich"
-                xmlns:a4j="http://richfaces.org/a4j"
-                template="layout/template.xhtml">
-
-    <ui:define name="content">
-
-        Display reservations in the following date range (dates are optional):<br/>
-        <h:form>
-        from: <rich:calendar value="#{reservationsBean.fromDate}"/>
-        to: <rich:calendar value="#{reservationsBean.toDate}"/>
-        <h:commandButton id="submit" value="Display" action="#{reservationsBean.populateReservations}"></h:commandButton>
-        </h:form>
-        <rich:separator/>
-
-        <h:dataTable id="reservationTable" value="#{reservationsBean.availableReservations}" var="reservation">
-
-            <f:facet name="header">
-                <h:outputText value="Available Reseravtions"/>
-            </f:facet>
-
-            <h:column>
-                <f:facet name="header">
-                    <h:outputText value="id"/>
-                </f:facet>
-                <h:outputText value="#{reservation.id}"/>
-            </h:column>
-
-            <h:column>
-                <f:facet name="header">
-                    <h:outputText value="Equipment"/>
-                </f:facet>
-                <h:outputText value="#{reservation.equipment.name}"/>
-            </h:column>
-
-            <h:column>
-                <f:facet name="header">
-                    <h:outputText value="Eqp.Description"/>
-                </f:facet>
-                <h:outputText value="#{reservation.equipment.description}"/>
-            </h:column>
-
-            <h:column>
-                <f:facet name="header">
-                    <h:outputText value="From"/>
-                </f:facet>
-                <h:outputText value="#{reservation.from}"/>
-            </h:column>
-
-            <h:column>
-                <f:facet name="header">
-                    <h:outputText value="To"/>
-                </f:facet>
-                <h:outputText value="#{reservation.to}"/>
-            </h:column>
-
-            <f:facet name="footer">
-                <h:outputText value="The End"/>
-            </f:facet>
-
-        </h:dataTable>
-
-    </ui:define>
-
-</ui:composition>
\ No newline at end of file

Copied: projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml (from rev 97442, projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/listReservationForm.xhtml)
===================================================================
--- projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml	                        (rev 0)
+++ projects/snowdrop/trunk/documentation/samples/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml	2009-12-06 22:50:04 UTC (rev 97487)
@@ -0,0 +1,77 @@
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+                xmlns:ui="http://java.sun.com/jsf/facelets"
+                xmlns:f="http://java.sun.com/jsf/core"
+                xmlns:h="http://java.sun.com/jsf/html"
+                xmlns:rich="http://richfaces.org/rich"
+                xmlns:a4j="http://richfaces.org/a4j"
+                template="layout/template.xhtml">
+
+    <ui:define name="content">
+
+        <rich:panel>
+            <f:facet name="header">Display reservations in the following date range (dates are optional)</f:facet>
+            <h:form>
+                from:
+                <rich:calendar value="#{reservationSearch.fromDate}"/>
+                to:
+                <rich:calendar value="#{reservationSearch.toDate}"/>
+                <h:commandButton id="submit" value="Display Reservations"
+                                 action="#{reservationSearch.searchReservations}" reRender="searchResults"/>
+            </h:form>
+        </rich:panel>
+
+        <a4j:outputPanel id="searchResults">
+            <h:form>
+                <rich:panel header="Search results">
+                    
+                    <rich:dataTable id="searchResultsTable" value="#{reservationSearch}"
+                                    var="reservation" rows="5">
+
+                       <rich:column>
+                            <f:facet name="header">
+                                <h:outputText value="Reservation #"/>
+                            </f:facet>
+                            <h:outputText value="#{reservation.id}"/>
+                        </rich:column>
+
+                        <rich:column>
+                            <f:facet name="header">
+                                <h:outputText value="Equipment"/>
+                            </f:facet>
+                            <h:outputText value="#{reservation.equipment.name}"/>
+                        </rich:column>
+
+                        <rich:column>
+                            <f:facet name="header">
+                                <h:outputText value="Eqp.Description"/>
+                            </f:facet>
+                            <h:outputText value="#{reservation.equipment.description}"/>
+                        </rich:column>
+
+                        <rich:column>
+                            <f:facet name="header">
+                                <h:outputText value="From"/>
+                            </f:facet>
+                            <h:outputText value="#{reservation.from}"/>
+                        </rich:column>
+
+                        <rich:column>
+                            <f:facet name="header">
+                                <h:outputText value="To"/>
+                            </f:facet>
+                            <h:outputText value="#{reservation.to}"/>
+                        </rich:column>
+
+                        <f:facet name="footer">
+                            <rich:datascroller id="scroller" for="searchResultsTable" maxPages="5"
+                                               page="#{reservationSearch.currentPage}"/>
+                        </f:facet>
+
+                    </rich:dataTable>
+                </rich:panel>
+            </h:form>
+        </a4j:outputPanel>
+
+    </ui:define>
+
+</ui:composition>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list