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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 9 21:37:39 EST 2009


Author: lvlcek at redhat.com
Date: 2009-12-09 21:37:38 -0500 (Wed, 09 Dec 2009)
New Revision: 97657

Added:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentService.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentServiceImpl.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/EquipmentTypeConverter.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReferenceData.java
Modified:
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/EquipmentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateEquipmentRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/initializer/DatabaseInitializer.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/resources/reservations-service.xml
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/faces-config.xml
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml
   projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml
Log:
added EquipmentType filter for Reservations

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/EquipmentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/EquipmentRepository.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/EquipmentRepository.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,6 +1,7 @@
 package org.jboss.snowdrop.samples.sportsclub.domain.repository;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Equipment;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 
 import java.util.List;
 import java.util.Date;
@@ -10,5 +11,11 @@
  */
 public interface EquipmentRepository extends Repository<Equipment, Integer>
 {
-    public List<Equipment> getAvailableEquipments(Date fromDate, Date toDate);
+   public List<Equipment> getAvailableEquipments(Date fromDate, Date toDate);
+
+   /**
+    * @return All available {@link EquipmentType}
+    */
+   public EquipmentType[] getEquipmentTypes();
+
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/criteria/ReservationSearchCriteria.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,6 +1,9 @@
 package org.jboss.snowdrop.samples.sportsclub.domain.repository.criteria;
 
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+
 import java.util.Date;
+import java.util.List;
 
 /**
  */
@@ -10,6 +13,8 @@
 
    private Date toDate;
 
+   private List<EquipmentType> equipmentType;
+
    public Date getFromDate()
    {
       return fromDate;
@@ -29,4 +34,14 @@
    {
       this.toDate = toDate;
    }
+
+   public List<EquipmentType> getEquipmentType()
+   {
+      return equipmentType;
+   }
+
+   public void setEquipmentType(List<EquipmentType> equipmentType)
+   {
+      this.equipmentType = equipmentType;
+   }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateEquipmentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateEquipmentRepository.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateEquipmentRepository.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,20 +1,28 @@
 package org.jboss.snowdrop.samples.stayfit.dao.hibernate;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Equipment;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 import org.jboss.snowdrop.samples.sportsclub.domain.repository.EquipmentRepository;
 
 import java.util.List;
 import java.util.Date;
 
-public class HibernateEquipmentRepository extends HibernateRepository<Equipment, Integer> implements EquipmentRepository {
-    
-    public HibernateEquipmentRepository()
-    {
-        super(Equipment.class);
-    }
+public class HibernateEquipmentRepository extends HibernateRepository<Equipment, Integer> implements EquipmentRepository
+{
 
-    public List<Equipment> getAvailableEquipments(Date fromDate, Date toDate) {
-        // TODO implement fancy query
-        return null;
-    }
+   public HibernateEquipmentRepository()
+   {
+      super(Equipment.class);
+   }
+
+   public List<Equipment> getAvailableEquipments(Date fromDate, Date toDate)
+   {
+      // TODO implement fancy query
+      return null;
+   }
+
+   public EquipmentType[] getEquipmentTypes()
+   {
+      return EquipmentType.values();
+   }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/HibernateReservationRepository.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -3,9 +3,12 @@
 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.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 import org.hibernate.Criteria;
 import static org.hibernate.criterion.Restrictions.*;
 import org.hibernate.criterion.Projections;
+import org.hibernate.criterion.Restrictions;
+import org.hibernate.criterion.Disjunction;
 
 import java.util.List;
 import java.util.Date;
@@ -40,6 +43,20 @@
          criteria.setMaxResults(reservationSearchCriteria.getRange().length());
       }
 
+      if (reservationSearchCriteria.getEquipmentType() != null)
+      {
+         List<EquipmentType> types = reservationSearchCriteria.getEquipmentType();
+         if (types.size() > 0)
+         {
+            Disjunction dis = Restrictions.disjunction();
+            for (EquipmentType type : types)
+            {
+               dis.add(eq("equipmentType",type));
+            }
+            criteria.createCriteria("equipment").add(dis);
+         }
+
+      }
       return criteria;
    }
 

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/initializer/DatabaseInitializer.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/initializer/DatabaseInitializer.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/initializer/DatabaseInitializer.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -13,9 +13,7 @@
 import javax.annotation.PostConstruct;
 import java.lang.reflect.Member;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.Calendar;
-import java.util.Locale;
+import java.util.*;
 
 import static org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType.*;
 
@@ -55,95 +53,86 @@
             }
 
             Membership silverMembership = createMembership("SILVER", "600.0");
-            save(session, silverMembership);
             Membership goldMembership = createMembership("GOLD", "900.0");
-            save(session, goldMembership);
             Membership platinumMembership = createMembership("PLATINUM", "1200.0");
+
+            save(session, silverMembership);
+            save(session, goldMembership);
             save(session, platinumMembership);
 
 
-            // Accounts are populated later (see below)
-            Account account1;
-            Account account2;
-            Account account3;
+            Map<String, Person> persons = new HashMap<String, Person>();
 
+            persons.put("person1", createPerson("Samuel", "Vimes", "1 Yonge", "Toronto", "Ontario", "Canada"));
+            persons.put("person2", createPerson("Sibyl", "Vimes", "1 Yonge", "Toronto", "Ontario", "Canada"));
+            persons.put("person3", createPerson("Havelock", "Vetinari", "1 Bloor", "Toronto", "Ontario", "Canada"));
+            persons.put("person4", createPerson("Nobby", "Nobbs", "1 Dufferin", "Toronto", "Ontario", "Canada"));
+            persons.put("person5", createPerson("Carrot", "Ironfoundersson", "1 King", "Toronto", "Ontario", "Canada"));
+            persons.put("person6", createPerson("Magrat", "Garlick", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person7", createPerson("Gytha", "Ogg", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person8", createPerson("Esmerelda", "Weatherwax", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person9", createPerson("Mustrum", "Ridcully", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person10", createPerson("Bill", "Door", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person11", createPerson("Angua", "von Uberwald", "1 King", "Lancre", "Ramtops", "Canada"));
+            persons.put("person12", createPerson("Claude", "Dibbler", "1 King", "Lancre", "Ramtops", "Canada"));
 
-            Person person = createPerson("Samuel", "Vimes", "1 Yonge", "Toronto", "Ontario", "Canada");
-            save(session, person);
-            save(session, createAccount(silverMembership, BillingType.MONTHLY, person));
+            saveMap(session, persons);
 
-            person = createPerson("Sibyl", "Vimes", "1 Yonge", "Toronto", "Ontario", "Canada");
-            save(session, person);
-            save(session, createAccount(goldMembership, BillingType.WEEKLY, person));
 
-            person = createPerson("Havelock", "Vetinari", "1 Bloor", "Toronto", "Ontario", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.BIWEEKLY, person));
+            Map<String, Account> accounts = new HashMap<String, Account>();
 
-            person = createPerson("Nobby", "Nobbs", "1 Dufferin", "Toronto", "Ontario", "Canada");
-            save(session, person);
-            save(session, createAccount(goldMembership, BillingType.BIWEEKLY, person));
+            accounts.put("account1", createAccount(silverMembership, BillingType.MONTHLY, persons.get("person1")));
+            accounts.put("account2", createAccount(goldMembership, BillingType.WEEKLY, persons.get("person2")));
+            accounts.put("account3", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person3")));
+            accounts.put("account4", createAccount(goldMembership, BillingType.BIWEEKLY, persons.get("person4")));
+            accounts.put("account5", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person5")));
+            accounts.put("account6", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person6")));
+            accounts.put("account7", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person7")));
+            accounts.put("account8", createAccount(platinumMembership, BillingType.MONTHLY, persons.get("person8")));
+            accounts.put("account9", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person9")));
+            accounts.put("account10", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person10")));
+            accounts.put("account11", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person11")));
+            accounts.put("account12", createAccount(platinumMembership, BillingType.BIWEEKLY, persons.get("person12")));
 
-            person = createPerson("Carrot", "Ironfoundersson", "1 King", "Toronto", "Ontario", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.BIWEEKLY, person));
-             
-            person = createPerson("Magrat", "Garlick", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.BIWEEKLY, person));
+            saveMap(session, accounts);
 
-            person = createPerson("Gytha", "Ogg", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.BIWEEKLY, person));
 
-            person = createPerson("Esmerelda", "Weatherwax", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.MONTHLY, person));
+            Map<String, Equipment> equipments = new HashMap<String, Equipment>();
 
-            person = createPerson("Mustrum", "Ridcully", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            save(session, createAccount(platinumMembership, BillingType.BIWEEKLY, person));
+            equipments.put("equipment1", createEquipment("Engage", "95T Engage by LifeFitness", TREADMILL));
+            equipments.put("equipment2", createEquipment("Inclusive", "95T Inclusive by LifeFitness", TREADMILL));
+            equipments.put("equipment3", createEquipment("Omnidirectional", "by Cyberwalk", TREADMILL));
+            equipments.put("equipment4", createEquipment("Squash", "by Court Company", COURT));
+            equipments.put("equipment5", createEquipment("FreeMotion", "FreeMotion s5.6 by NordicTrack", STEPPER));
+            equipments.put("equipment6", createEquipment("MTN", "MTN 740 by NordicTrack", STEPPER));
 
-            person = createPerson("Bill", "Door", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            account1 = createAccount(platinumMembership, BillingType.BIWEEKLY, person);
-            save(session, account1);
+            saveMap(session, equipments);
 
-            person = createPerson("Angua", "von Uberwald", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            account2 = createAccount(platinumMembership, BillingType.BIWEEKLY, person);
-            save(session, account2);
 
-            person = createPerson("Claude", "Dibbler", "1 King", "Lancre", "Ramtops", "Canada");
-            save(session, person);
-            account3 = createAccount(platinumMembership, BillingType.BIWEEKLY, person);
-            save(session, account3);
+            Map<String, Reservation> reservations = new HashMap<String, Reservation>();
 
+            reservations.put("reservation1", createReservation(createDate(2009, 02, 01), createDate(2009, 10, 31), equipments.get("equipment1"), accounts.get("account1")));
+            reservations.put("reservation2", createReservation(createDate(2009, 01, 01), createDate(2009, 12, 31), equipments.get("equipment2"), accounts.get("account2")));
+            reservations.put("reservation3", createReservation(createDate(2009, 05, 01), createDate(2009, 10, 31), equipments.get("equipment3"), accounts.get("account3")));
+            reservations.put("reservation4", createReservation(createDate(2009, 07, 01), createDate(2009, 07, 02), equipments.get("equipment4"), accounts.get("account4")));
+            reservations.put("reservation5", createReservation(createDate(2009, 07, 01), createDate(2009, 07, 02), equipments.get("equipment5"), accounts.get("account5")));
+            reservations.put("reservation6", createReservation(createDate(2009, 07, 01), createDate(2009, 07, 02), equipments.get("equipment6"), accounts.get("account6")));
 
-            Equipment equipment1 = createEquipment("Engage", "95T Engage by LifeFitness", TREADMILL);
-            save(session, equipment1);
+            saveMap(session, reservations);
 
-            Equipment equipment2 = createEquipment("Inclusive", "95T Inclusive by LifeFitness", TREADMILL);
-            save(session, equipment2);
-
-            Equipment equipment3 = createEquipment("Omnidirectional", "Cyberwalk", TREADMILL);
-            save(session, equipment3);
-
-
-            Reservation reservation = createReservation(createDate(2009,02,01), createDate(2009,10,31), equipment1, account1);
-            save(session, reservation);
-
-            reservation = createReservation(createDate(2009,01,01), createDate(2009,12,31), equipment2, account2);
-            save(session, reservation);
-
-            reservation = createReservation(createDate(2009,05,01), createDate(2009,10,31), equipment3, account3);
-            save(session, reservation);
-
             return null;
          }
       });
    }
 
+   private static void saveMap(Session session, Map data)
+   {
+      for (String key : (Set<String>)data.keySet())
+      {
+         save(session, data.get(key));
+      }
+   }
+
    private static void save(Session session, Object entity)
    {
       session.save(entity);
@@ -204,12 +193,14 @@
       return reservation;
    }
 
-   /** Months are human readable and start at 1! */
+   /**
+    * Months are human readable and start at 1!
+    */
    private static Date createDate(int year, int month, int day)
    {
       Calendar cal = Calendar.getInstance(Locale.US);
       cal.clear();
-      cal.set(year, month-1, day);
+      cal.set(year, month - 1, day);
       return cal.getTime();
    }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/test/java/org/jboss/snowdrop/samples/stayfit/dao/hibernate/TestHibernateReservationRepository.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -3,6 +3,7 @@
 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.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -11,10 +12,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  */
@@ -38,20 +36,31 @@
       criteria.setToDate(to);
 
       List<Reservation> reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(3, reservations.size());
+      Assert.assertEquals(6, reservations.size());
 
       criteria = new ReservationSearchCriteria();
       criteria.setFromDate(getDate(2009,02,01));
 
       reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(2, reservations.size());
+      Assert.assertEquals(5, reservations.size());
 
       criteria = new ReservationSearchCriteria();
       criteria.setToDate(getDate(2009,11,30));
 
       reservations = reservationRepository.getByCriteria(criteria);
-      Assert.assertEquals(2, reservations.size());
+      Assert.assertEquals(5, reservations.size());
+
       
+      List<EquipmentType> types = new ArrayList<EquipmentType>();
+      types.add(EquipmentType.COURT);
+      criteria = new ReservationSearchCriteria();
+      criteria.setFromDate(from);
+      criteria.setToDate(to);
+      criteria.setEquipmentType(types);
+
+      reservations = reservationRepository.getByCriteria(criteria);
+      Assert.assertEquals(1, reservations.size());
+      
    }
 
    private Date getDate(int year, int month, int day)

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentService.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentService.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -0,0 +1,11 @@
+package org.jboss.snowdrop.samples.stayfit.service;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+public interface EquipmentService
+{
+   public EquipmentType[] getEquipmentTypes();
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentServiceImpl.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/EquipmentServiceImpl.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -0,0 +1,27 @@
+package org.jboss.snowdrop.samples.stayfit.service;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.EquipmentRepository;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+public class EquipmentServiceImpl  implements EquipmentService
+{
+   private EquipmentRepository equipmentRepository;
+
+   public EquipmentType[] getEquipmentTypes()
+   {
+      return equipmentRepository.getEquipmentTypes();
+   }
+
+   public EquipmentRepository getEquipmentRepository()
+   {
+      return equipmentRepository;
+   }
+
+   public void setEquipmentRepository(EquipmentRepository equipmentRepository)
+   {
+      this.equipmentRepository = equipmentRepository;
+   }
+}

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationService.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,6 +1,7 @@
 package org.jboss.snowdrop.samples.stayfit.service;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 
 import java.util.List;
 import java.util.Date;
@@ -10,7 +11,7 @@
  */
 public interface ReservationService
 {
-   List<Reservation> getReservations(Date fromDate, Date toDate, Integer nim, Integer max);
+   List<Reservation> getReservations(Date fromDate, Date toDate, Integer nim, Integer max, List<EquipmentType> types);
 
-   Integer countReservationsForRange(Date fromDate, Date toDate);
+   Integer countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types);
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/java/org/jboss/snowdrop/samples/stayfit/service/ReservationServiceImpl.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,6 +1,7 @@
 package org.jboss.snowdrop.samples.stayfit.service;
 
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 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;
@@ -19,7 +20,7 @@
    private ReservationRepository reservationRepository;
 
    @Transactional(readOnly = true)
-   public List<Reservation> getReservations(Date fromDate, Date toDate, Integer min, Integer max)
+   public List<Reservation> getReservations(Date fromDate, Date toDate, Integer min, Integer max, List<EquipmentType> types)
    {
       ReservationSearchCriteria criteria = new ReservationSearchCriteria();
       criteria.setFromDate(fromDate);
@@ -29,14 +30,22 @@
          Range range = new Range(min, max);
          criteria.setRange(range);
       }
+      if (types != null && types.size() > 0)
+      {
+         criteria.setEquipmentType(types);
+      }
       return reservationRepository.getByCriteria(criteria);
    }
 
-   public Integer countReservationsForRange(Date fromDate, Date toDate)
+   public Integer countReservationsForRange(Date fromDate, Date toDate, List<EquipmentType> types)
    {
       ReservationSearchCriteria criteria = new ReservationSearchCriteria();
       criteria.setFromDate(fromDate);
       criteria.setToDate(toDate);
+      if (types != null && types.size() > 0)
+      {
+         criteria.setEquipmentType(types);
+      }
       return reservationRepository.countByCriteria(criteria);
    }
 

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/resources/reservations-service.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/resources/reservations-service.xml	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-spring/src/main/resources/reservations-service.xml	2009-12-10 02:37:38 UTC (rev 97657)
@@ -14,4 +14,8 @@
         <property name="reservationRepository" ref="reservationRepository"/>
     </bean>
 
+    <bean id="equipmentService" class="org.jboss.snowdrop.samples.stayfit.service.EquipmentServiceImpl">
+        <property name="equipmentRepository" ref="equipmentRepository"/>
+    </bean>
+
 </beans>
\ No newline at end of file

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/EquipmentTypeConverter.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/EquipmentTypeConverter.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/EquipmentTypeConverter.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -0,0 +1,16 @@
+package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+
+import javax.faces.convert.EnumConverter;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+public class EquipmentTypeConverter extends EnumConverter
+{
+   public EquipmentTypeConverter()
+   {
+      super(EquipmentType.class);
+   }
+}

Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReferenceData.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReferenceData.java	                        (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReferenceData.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -0,0 +1,37 @@
+package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
+import org.jboss.snowdrop.samples.stayfit.service.EquipmentService;
+
+import javax.faces.model.SelectItem;
+
+/**
+ * @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
+ */
+public class ReferenceData
+{
+   private EquipmentService equipmentService;
+
+   public SelectItem[] getEquipmentTypes()
+   {
+      EquipmentType[] types = getEquipmentService().getEquipmentTypes();
+      SelectItem[] items = new SelectItem[types.length];
+      int i = 0;
+      for (EquipmentType type : types)
+      {
+         items[i++] = new SelectItem(type);
+      }
+      return items;
+   }
+
+
+   public EquipmentService getEquipmentService()
+   {
+      return equipmentService;
+   }
+
+   public void setEquipmentService(EquipmentService equipmentService)
+   {
+      this.equipmentService = equipmentService;
+   }
+}

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationSearch.java	2009-12-10 02:37:38 UTC (rev 97657)
@@ -1,17 +1,17 @@
 package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
 
 import org.jboss.snowdrop.samples.stayfit.service.ReservationService;
+import org.jboss.snowdrop.samples.stayfit.service.EquipmentService;
 import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.EquipmentType;
 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 javax.faces.model.SelectItem;
+import java.util.*;
 import java.io.IOException;
 
 /**
@@ -20,9 +20,12 @@
 {
 
    private ReservationService reservationService;
+   private EquipmentService equipmentService;
    private Date fromDate;
    private Date toDate;
 
+   private List<EquipmentType> selectedEquipmentTypes;
+
    private int currentPage;
    private int currentRow;
    private Long currentId;
@@ -30,10 +33,14 @@
    private Map<Long, Reservation> reservationsMap = new HashMap<Long, Reservation>();
    private Integer rowCount;
 
+   public void init() {
+      selectedEquipmentTypes = Arrays.asList(equipmentService.getEquipmentTypes());
+   }
+
    public String searchReservations()
    {
-      rowCount = reservationService.countReservationsForRange(fromDate, toDate);
-      currentPage = 1;
+      rowCount = reservationService.countReservationsForRange(fromDate, toDate, selectedEquipmentTypes);
+      currentPage = 0;
       return "success";
    }
 
@@ -106,7 +113,7 @@
    {
       if (rowCount == null)
       {
-         rowCount = reservationService.countReservationsForRange(fromDate, toDate);
+         rowCount = reservationService.countReservationsForRange(fromDate, toDate, selectedEquipmentTypes);
       }
       return rowCount;
    }
@@ -122,7 +129,7 @@
    {
       int firstResult = ((SequenceRange) range).getFirstRow();
       int maxResults = ((SequenceRange) range).getRows();
-      List<Reservation> list = reservationService.getReservations(fromDate, toDate, firstResult, maxResults);
+      List<Reservation> list = reservationService.getReservations(fromDate, toDate, firstResult, maxResults, selectedEquipmentTypes);
       reservationsMap = new HashMap<Long, Reservation>();
       for (Reservation row : list)
       {
@@ -155,4 +162,34 @@
    {
       throw new UnsupportedOperationException("Not supported");
    }
+
+   public List<EquipmentType> getSelectedEquipmentTypes()
+   {
+      return selectedEquipmentTypes;
+   }
+
+   public void setSelectedEquipmentTypes(List<EquipmentType> selectedEquipmentTypes)
+   {
+      System.out.println("setSelectedEquipmentTypes");
+      for (EquipmentType e : selectedEquipmentTypes)
+      {
+         System.out.println("************************************ > " + e);
+      }
+      this.selectedEquipmentTypes = selectedEquipmentTypes;
+   }
+
+   public String equipmentTypeCheckboxChanged() {
+      System.out.println("equipmentTypeCheckboxChanged");
+      return null;
+   }
+
+   public EquipmentService getEquipmentService()
+   {
+      return equipmentService;
+   }
+
+   public void setEquipmentService(EquipmentService equipmentService)
+   {
+      this.equipmentService = equipmentService;
+   }
 }

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/faces-config.xml	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/faces-config.xml	2009-12-10 02:37:38 UTC (rev 97657)
@@ -3,8 +3,15 @@
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
               version="1.2">
-  <application>
-      <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
-      <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
-  </application>
+
+    <application>
+        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+        <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
+    </application>
+    
+    <converter>
+        <converter-id>equipmentTypeConverter</converter-id>
+        <converter-class>org.jboss.snowdrop.samples.sportsclub.jsf.beans.EquipmentTypeConverter</converter-class>
+    </converter>
+
 </faces-config>
\ No newline at end of file

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/spring-beans.xml	2009-12-10 02:37:38 UTC (rev 97657)
@@ -11,9 +11,17 @@
 
     <import resource="classpath*:infrastructure.xml"/>
 
-    <bean id="reservationSearch" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.ReservationSearch" scope="request">
+    <bean id="reservationSearch" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.ReservationSearch" scope="request" init-method="init">
         <property name="reservationService" ref="reservationService"/>
+        <property name="equipmentService" ref="equipmentService"/>
     </bean>
+
+    <!-- Application scoped service -->
+    <bean id="referenceData" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.ReferenceData">
+        <property name="equipmentService" ref="equipmentService"/>
+    </bean>
+
+    <!--bean id="equipmentTypeConverter" class="org.jboss.snowdrop.samples.sportsclub.jsf.beans.EquipmentTypeConverter"/-->
     
     <context:annotation-config/>
     

Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml	2009-12-10 01:45:50 UTC (rev 97656)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/reservationSearch.xhtml	2009-12-10 02:37:38 UTC (rev 97657)
@@ -16,18 +16,26 @@
                 to:
                 <rich:calendar value="#{reservationSearch.toDate}"/>
                 <h:commandButton id="submit" value="Display Reservations"
-                                 action="#{reservationSearch.searchReservations}" reRender="searchResults"/>
+                                 action="#{reservationSearch.searchReservations}" /> <!-- reRender="searchResults"-->
+                <br/>
+                Equipment Type:
+                <h:selectManyCheckbox id="equipmentTypes" value="#{reservationSearch.selectedEquipmentTypes}" layout="lineDirection"><!--converter="equipmentTypeConverter"-->
+                    <f:selectItems value="#{referenceData.equipmentTypes}"/>
+                    <f:converter  converterId="equipmentTypeConverter" />
+                    <a4j:support event="onchange" action="#{reservationSearch.equipmentTypeCheckboxChanged}" reRender="searchResults"/>                    
+                </h:selectManyCheckbox>
+
             </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>
+                        <rich:column>
                             <f:facet name="header">
                                 <h:outputText value="Reservation #"/>
                             </f:facet>
@@ -36,35 +44,39 @@
 
                         <rich:column>
                             <f:facet name="header">
-                                <h:outputText value="Equipment"/>
+                                <h:outputText value="Equipment Type"/>
                             </f:facet>
-                            <h:outputText value="#{reservation.equipment.name}"/>
+                            <h:outputText value="#{reservation.equipment.equipmentType}"/>
                         </rich:column>
 
                         <rich:column>
                             <f:facet name="header">
-                                <h:outputText value="Eqp.Description"/>
+                                <h:outputText value="Eqpment Description"/>
                             </f:facet>
-                            <h:outputText value="#{reservation.equipment.description}"/>
+                            <h:outputText value="#{reservation.equipment.name}: #{reservation.equipment.description}"/>
                         </rich:column>
 
                         <rich:column>
                             <f:facet name="header">
                                 <h:outputText value="From"/>
                             </f:facet>
-                            <h:outputText value="#{reservation.from}"/>
+                            <h:outputText value="#{reservation.from}">
+                                <f:convertDateTime dateStyle="long" type="both"/>
+                            </h:outputText>
                         </rich:column>
 
                         <rich:column>
                             <f:facet name="header">
                                 <h:outputText value="To"/>
                             </f:facet>
-                            <h:outputText value="#{reservation.to}"/>
+                            <h:outputText value="#{reservation.to}">
+                                <f:convertDateTime dateStyle="long" type="both"/>
+                            </h:outputText>
                         </rich:column>
 
                         <f:facet name="footer">
                             <rich:datascroller id="scroller" for="searchResultsTable" maxPages="5"
-                                               page="#{reservationSearch.currentPage}"/>
+                                               page="#{reservationSearch.currentPage}" />
                         </f:facet>
 
                     </rich:dataTable>




More information about the jboss-cvs-commits mailing list