[jboss-cvs] JBossAS SVN: r101327 - in projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main: webapp and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Feb 23 08:17:40 EST 2010
Author: lvlcek at redhat.com
Date: 2010-02-23 08:17:39 -0500 (Tue, 23 Feb 2010)
New Revision: 101327
Modified:
projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationCreate.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/createReservation.xhtml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/searchReservation.xhtml
Log:
Adding custom validation into Reservation create logic
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationCreate.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationCreate.java 2010-02-23 13:10:50 UTC (rev 101326)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/java/org/jboss/snowdrop/samples/sportsclub/jsf/beans/ReservationCreate.java 2010-02-23 13:17:39 UTC (rev 101327)
@@ -1,16 +1,14 @@
package org.jboss.snowdrop.samples.sportsclub.jsf.beans;
-import org.jboss.snowdrop.samples.sportsclub.service.ReservationService;
-import org.jboss.snowdrop.samples.sportsclub.service.AccountService;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Equipment;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation;
+import org.jboss.snowdrop.samples.sportsclub.service.AccountService;
+import org.jboss.snowdrop.samples.sportsclub.service.ReservationService;
-import javax.faces.model.SelectItem;
-import java.util.Date;
-import java.util.Calendar;
-import java.util.Locale;
-import java.util.Collection;
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import java.util.*;
/**
* @author <a href="mailto:lvlcek at redhat.com">Lukas Vlcek</a>
@@ -55,12 +53,78 @@
public String create()
{
+ Map<String, FacesMessage> errorMessages = validate(reservation);
+
+ if (!errorMessages.isEmpty())
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+ for (String key : errorMessages.keySet())
+ {
+ context.addMessage(key, errorMessages.get(key));
+ }
+ return "error";
+ }
+
reservationService.create(reservation);
createdReservationId = reservation.getId();
init();
+ accountFilter.setSelection(null);
+ equipmentFilter.setSelection(null);
+
return "success";
}
+ private Map<String, FacesMessage> validate(Reservation reservation)
+ {
+
+ Map<String, FacesMessage> errors = new HashMap<String, FacesMessage>();
+
+ if (reservation.getAccount() == null ||
+ reservation.getEquipment() == null ||
+ reservation.getFrom() == null ||
+ reservation.getTo() == null)
+ {
+
+ if (reservation.getAccount() == null)
+ {
+ FacesMessage message = new FacesMessage();
+ message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ message.setSummary("Account not selected.");
+ message.setDetail("Please select account!");
+ errors.put("AccountSelectForm", message);
+ }
+
+ if (reservation.getEquipment() == null)
+ {
+ FacesMessage message = new FacesMessage();
+ message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ message.setSummary("Equipment not selected.");
+ message.setDetail("Please select equipment!");
+ errors.put("EquipmentSelectForm", message);
+ }
+
+ if (reservation.getFrom() == null)
+ {
+ FacesMessage message = new FacesMessage();
+ message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ message.setSummary("Date not selected.");
+ message.setDetail("Please select date!");
+ errors.put("ReservationDetailForm:from", message);
+ }
+
+ if (reservation.getTo() == null)
+ {
+ FacesMessage message = new FacesMessage();
+ message.setSeverity(FacesMessage.SEVERITY_ERROR);
+ message.setSummary("Date not selected.");
+ message.setDetail("Please select date!");
+ errors.put("ReservationDetailForm:to", message);
+ }
+ }
+
+ return errors;
+ }
+
public void updateSelectedAccount()
{
Account account = accountFilter.getSelectedAccount();
@@ -69,7 +133,7 @@
public void updateSelectedEquipment()
{
- Equipment equipment = getEquipmentFilter().getSelectedEquipment();
+ Equipment equipment = equipmentFilter.getSelectedEquipment();
reservation.setEquipment(equipment);
}
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 2010-02-23 13:10:50 UTC (rev 101326)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/WEB-INF/faces-config.xml 2010-02-23 13:17:39 UTC (rev 101327)
@@ -23,9 +23,13 @@
<navigation-rule>
<from-view-id>/createReservation.xhtml</from-view-id>
<navigation-case>
- <from-action>#{reservationCreate.create}</from-action>
+ <from-outcome>success</from-outcome>
<to-view-id>/createResult.xhtml</to-view-id>
</navigation-case>
+ <navigation-case>
+ <from-outcome>error</from-outcome>
+ <to-view-id>/createReservation.xhtml</to-view-id>
+ </navigation-case>
</navigation-rule>
</faces-config>
\ No newline at end of file
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/createReservation.xhtml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/createReservation.xhtml 2010-02-23 13:10:50 UTC (rev 101326)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/createReservation.xhtml 2010-02-23 13:17:39 UTC (rev 101327)
@@ -26,7 +26,7 @@
</rich:panel>
<rich:panel>
<f:facet name="header">Select Account</f:facet>
- <h:form>
+ <h:form id="AccountSelectForm">
<rich:extendedDataTable id="accountsTable" value="#{accountFilter}" var="account"
selectionMode="single"
selection="#{accountFilter.selection}"
@@ -84,7 +84,7 @@
<td style="width:400px;vertical-align:bottom;">
<rich:panel>
<f:facet name="header">Select Equipment</f:facet>
- <h:form>
+ <h:form id="EquipmentSelectForm">
<rich:extendedDataTable id="equipmentsTable" value="#{equipmentFilter}" var="equipment"
selectionMode="single"
selection="#{equipmentFilter.selection}"
@@ -130,18 +130,25 @@
<rich:panel id="reservationDetails">
<f:facet name="header">Reservation Details</f:facet>
- <h:form>
+ <h:form id="ReservationDetailForm">
<h:panelGrid columns="2">
<h:outputLabel value="Equipment"/>
- <h:outputText rendered="#{reservationCreate.reservation.equipment != null}"
- value="#{reservationCreate.reservation.equipment.name} (#{reservationCreate.reservation.equipment.description})"/>
- <h:outputText rendered="#{reservationCreate.reservation.equipment == null}" value="Not selected"/>
+ <h:panelGroup>
+ <h:outputText rendered="#{reservationCreate.reservation.equipment != null}"
+ value="#{reservationCreate.reservation.equipment.name} (#{reservationCreate.reservation.equipment.description})"/>
+ <h:outputText rendered="#{reservationCreate.reservation.equipment == null}"
+ value="Not selected"/>
+ <h:message for="EquipmentSelectForm" style="color:RED" showDetail="true" showSummary="true"/>
+ </h:panelGroup>
<h:outputLabel value="Account"/>
- <h:outputText rendered="#{reservationCreate.reservation.account != null}"
- value="#{reservationCreate.reservation.account.subscriber.name.firstName} #{reservationCreate.reservation.account.subscriber.name.lastName} (#{reservationCreate.reservation.account.subscriber.address.city}, #{reservationCreate.reservation.account.subscriber.address.country})"/>
- <h:outputText rendered="#{reservationCreate.reservation.account == null}" value="Not selected"/>
+ <h:panelGroup>
+ <h:outputText rendered="#{reservationCreate.reservation.account != null}"
+ value="#{reservationCreate.reservation.account.subscriber.name.firstName} #{reservationCreate.reservation.account.subscriber.name.lastName} (#{reservationCreate.reservation.account.subscriber.address.city}, #{reservationCreate.reservation.account.subscriber.address.country})"/>
+ <h:outputText rendered="#{reservationCreate.reservation.account == null}" value="Not selected"/>
+ <h:message for="AccountSelectForm" style="color:RED" showDetail="true" showSummary="true"/>
+ </h:panelGroup>
<h:outputLabel value="From"/>
<h:panelGroup>
@@ -149,9 +156,8 @@
value="#{reservationCreate.reservation.from}"
datePattern="d/M/yy HH:mm"
showApplyButton="true"
- required="true"
locale="#{reservationCreate.locale}"/>
- <h:message for="from" style="color:RED"/>
+ <h:message for="from" style="color:RED" showDetail="true" showSummary="true"/>
</h:panelGroup>
<h:outputLabel value="To"/>
@@ -160,9 +166,8 @@
value="#{reservationCreate.reservation.to}"
datePattern="d/M/yy HH:mm"
showApplyButton="true"
- required="true"
locale="#{reservationCreate.locale}"/>
- <h:message for="to" style="color:RED"/>
+ <h:message for="to" style="color:RED" showDetail="true" showSummary="true"/>
</h:panelGroup>
</h:panelGrid>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/searchReservation.xhtml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/searchReservation.xhtml 2010-02-23 13:10:50 UTC (rev 101326)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-reservations-web/src/main/webapp/searchReservation.xhtml 2010-02-23 13:17:39 UTC (rev 101327)
@@ -43,8 +43,6 @@
</td>
</tr>
</table>
- <br/>
- <!--<a4j:status id="commonstatus" startText="Retrieving data..." stopText=""/>-->
</h:form>
</rich:panel>
More information about the jboss-cvs-commits
mailing list