[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