Author: dan.j.allen
Date: 2010-06-10 18:47:30 -0400 (Thu, 10 Jun 2010)
New Revision: 13122
Added:
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/beans.xml
examples/trunk/booking-simplified/src/main/webapp/search.xhtml
Removed:
examples/trunk/booking-simplified/src/main/resources/META-INF/beans.xml
examples/trunk/booking-simplified/src/main/webapp/META-INF/
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/lib/
examples/trunk/booking-simplified/src/main/webapp/main.xhtml
Modified:
examples/trunk/booking-simplified/
examples/trunk/booking-simplified/pom.xml
examples/trunk/booking-simplified/src/main/resources/META-INF/persistence.xml
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/faces-config.xml
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/layout/template.xhtml
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/web.xml
examples/trunk/booking-simplified/src/main/webapp/password.xhtml
Log:
fix seam-xml-config dependency
fix final name
rename main.xhtml to search.xhtml
move beans.xml to proper location
Property changes on: examples/trunk/booking-simplified
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
faces-config.NavData
Modified: examples/trunk/booking-simplified/pom.xml
===================================================================
--- examples/trunk/booking-simplified/pom.xml 2010-06-10 21:06:42 UTC (rev 13121)
+++ examples/trunk/booking-simplified/pom.xml 2010-06-10 22:47:30 UTC (rev 13122)
@@ -48,13 +48,18 @@
<groupId>org.jboss.seam.faces</groupId>
<artifactId>seam-faces</artifactId>
<version>3.0.0.Alpha3</version>
- <scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.xml</groupId>
<artifactId>seam-xml-config</artifactId>
<version>3.0.0.Alpha2</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.enterprise</groupId>
+ <artifactId>cdi-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -79,10 +84,7 @@
<build>
<defaultGoal>package</defaultGoal>
- <finalName>weld-permalink</finalName>
- <!--
<finalName>${project.artifactId}</finalName>
- -->
<plugins>
<plugin>
Deleted: examples/trunk/booking-simplified/src/main/resources/META-INF/beans.xml
===================================================================
Modified: examples/trunk/booking-simplified/src/main/resources/META-INF/persistence.xml
===================================================================
---
examples/trunk/booking-simplified/src/main/resources/META-INF/persistence.xml 2010-06-10
21:06:42 UTC (rev 13121)
+++
examples/trunk/booking-simplified/src/main/resources/META-INF/persistence.xml 2010-06-10
22:47:30 UTC (rev 13122)
@@ -5,7 +5,7 @@
version="1.0">
<persistence-unit name="booking">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
- <jta-data-source>bookingDatasource</jta-data-source>
+ <jta-data-source>jdbc/__default</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
<property name="hibernate.show_sql" value="true"/>
Copied: examples/trunk/booking-simplified/src/main/webapp/WEB-INF/beans.xml (from rev
13121, examples/trunk/booking-simplified/src/main/resources/META-INF/beans.xml)
===================================================================
Modified: examples/trunk/booking-simplified/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- examples/trunk/booking-simplified/src/main/webapp/WEB-INF/faces-config.xml 2010-06-10
21:06:42 UTC (rev 13121)
+++ examples/trunk/booking-simplified/src/main/webapp/WEB-INF/faces-config.xml 2010-06-10
22:47:30 UTC (rev 13122)
@@ -17,7 +17,7 @@
<navigation-case>
<from-action>#{bookingAgent.cancel}</from-action>
<if>#{true}</if>
- <to-view-id>/main.xhtml</to-view-id>
+ <to-view-id>/search.xhtml</to-view-id>
<redirect/>
</navigation-case>
@@ -29,27 +29,27 @@
<navigation-case>
<from-action>#{identity.login}</from-action>
<if>#{identity.loggedIn}</if>
- <to-view-id>/main.xhtml</to-view-id>
+ <to-view-id>/search.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
- <from-view-id>/main.xhtml</from-view-id>
+ <from-view-id>/search.xhtml</from-view-id>
<!-- navigation rules are required to reset request-scoped producer variables
-->
<!--
<navigation-case>
<from-action>#{hotelSearch.find}</from-action>
<if>#{true}</if>
- <to-view-id>/main.xhtml</to-view-id>
+ <to-view-id>/search.xhtml</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-action>#{hotelSearch.nextPage}</from-action>
<if>#{true}</if>
- <to-view-id>/main.xhtml</to-view-id>
+ <to-view-id>/search.xhtml</to-view-id>
<redirect/>
</navigation-case>
-->
@@ -93,7 +93,7 @@
<navigation-case>
<from-action>#{bookingAgent.confirm}</from-action>
<if>#{true}</if>
- <to-view-id>/main.xhtml</to-view-id>
+ <to-view-id>/search.xhtml</to-view-id>
<redirect/>
</navigation-case>
Modified: examples/trunk/booking-simplified/src/main/webapp/WEB-INF/layout/template.xhtml
===================================================================
---
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/layout/template.xhtml 2010-06-10
21:06:42 UTC (rev 13121)
+++
examples/trunk/booking-simplified/src/main/webapp/WEB-INF/layout/template.xhtml 2010-06-10
22:47:30 UTC (rev 13122)
@@ -22,7 +22,7 @@
#{' '}
<h:link id="about" outcome="/home.xhtml"
value="About"/>
#{' | '}
- <h:link id="search" outcome="/main.xhtml"
value="Search"/>
+ <h:link id="search" outcome="/search.xhtml"
value="Search"/>
<h:panelGroup rendered="#{identity.loggedIn}">
#{' | '}
<h:link id="settings"
outcome="/password.xhtml" value="Settings"/>
Modified: examples/trunk/booking-simplified/src/main/webapp/WEB-INF/web.xml
===================================================================
--- examples/trunk/booking-simplified/src/main/webapp/WEB-INF/web.xml 2010-06-10 21:06:42
UTC (rev 13121)
+++ examples/trunk/booking-simplified/src/main/webapp/WEB-INF/web.xml 2010-06-10 22:47:30
UTC (rev 13122)
@@ -7,16 +7,9 @@
<display-name>Seam Booking Example (Java EE Environment)</display-name>
<context-param>
- <param-name>facelets.DEVELOPMENT</param-name>
- <param-value>true</param-value>
- </context-param>
-
- <!--
- <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
- -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
Deleted: examples/trunk/booking-simplified/src/main/webapp/main.xhtml
===================================================================
--- examples/trunk/booking-simplified/src/main/webapp/main.xhtml 2010-06-10 21:06:42 UTC
(rev 13121)
+++ examples/trunk/booking-simplified/src/main/webapp/main.xhtml 2010-06-10 22:47:30 UTC
(rev 13122)
@@ -1,178 +0,0 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
-
xmlns:ui="http://java.sun.com/jsf/facelets"
-
xmlns:f="http://java.sun.com/jsf/core"
-
xmlns:h="http://java.sun.com/jsf/html"
-
xmlns:s="http://jboss.com/products/seam/taglib"
- template="/WEB-INF/layout/template.xhtml">
-
- <ui:define name="head">
- <script type="text/javascript">
-function controlSpinner(behavior)
-{
- if (behavior.name == 'begin')
- {
- document.getElementById('activity').style.display = 'inline';
- }
- else if (behavior.name == 'complete')
- {
- document.getElementById('activity').style.display = 'none';
- }
-}
- </script>
- </ui:define>
-
- <ui:define name="content">
-
- <div class="section">
-
- <span class="errors">
- <h:messages id="messages" globalOnly="true"/>
- </span>
-
- <h1>Search Hotels</h1>
-
- <h:form id="searchForm" prependId="false">
- <fieldset>
- <h:inputText id="query"
value="#{searchCriteria.query}" style="width: 165px;">
- <f:ajax event="keyup"
listener="#{hotelSearch.find}" render="searchResults"
onevent="controlSpinner"/>
- </h:inputText>
- #{' '}
- <h:commandButton id="findHotels" value="Find
Hotels" action="#{hotelSearch.find}">
- <f:ajax execute="query" render="searchResults"
onevent="controlSpinner"/>
- </h:commandButton>
- #{' '}
- <span id="activity" style="display:
none;"><h:graphicImage id="spinner"
value="/img/spinner.gif"/></span>
- <br/>
- <h:outputLabel id="lblPageSize" for="pageSize"
value="Maximum results:"/>
- #{' '}
- <h:selectOneMenu id="pageSize"
value="#{searchCriteria.pageSize}">
- <f:ajax listener="#{hotelSearch.find}"
render="searchResults" onevent="controlSpinner"/>
- <f:selectItem itemLabel="5" itemValue="5"/>
- <f:selectItem itemLabel="10"
itemValue="10"/>
- <f:selectItem itemLabel="20"
itemValue="20"/>
- </h:selectOneMenu>
- </fieldset>
- </h:form>
- </div>
-
- <h:panelGroup id="searchResults">
- <div class="section">
- <h:outputText id="noHotelsMsg" value="No Hotels Found"
rendered="#{empty hotels}"/>
- <h:form id="hotelSelectionForm">
- <h:dataTable id="hotels" value="#{hotels}"
var="_hotel" rendered="#{not empty hotels}"
- columnClasses=",,,,action">
- <h:column id="nameCol">
- <f:facet id="nameFct" name="header">Hotel
name</f:facet>
- #{_hotel.name}
- </h:column>
- <h:column id="addrCol">
- <f:facet id="addrFct"
name="header">Address</f:facet>
- #{_hotel.address}
- </h:column>
- <h:column id="locCol">
- <f:facet id="locFct"
name="header">Location</f:facet>
- #{_hotel.location}
- </h:column>
- <h:column id="zipCol">
- <f:facet id="zipFct"
name="header">Zip</f:facet>
- #{_hotel.zip}
- </h:column>
- <h:column id="actCol">
- <f:facet id="actFct"
name="header">Action</f:facet>
- <h:commandLink id="view" value="View"
action="#{bookingAgent.selectHotel(_hotel)}" style="white-space:
nowrap;"/>
- <ui:remove><!--
- <h:commandButton id="view" value="View"
action="#{bookingAgent.selectHotel(_hotel)}"/>
- --></ui:remove>
- </h:column>
- </h:dataTable>
- </h:form>
- <h:form id="paginationForm">
- <h:commandButton id="previousResults" value="Previous
page" action="#{hotelSearch.previousPage}"
rendered="#{hotelSearch.previousPageAvailable}">
- <f:ajax render="searchResults"
onevent="controlSpinner"/>
- </h:commandButton>
- #{' '}
- <h:commandButton id="moreResults" value="More
results" action="#{hotelSearch.nextPage}"
rendered="#{hotelSearch.nextPageAvailable}">
- <f:ajax render="searchResults"
onevent="controlSpinner"/>
- </h:commandButton>
- <ui:remove><!--
- <h:commandLink id="previousResults" value="Previous
page" action="#{hotelSearch.previousPage}"
rendered="#{hotelSearch.previousPageAvailable}">
- <f:ajax render="searchResults"
onevent="controlSpinner"/>
- </h:commandLink>
- #{' '}
- <h:commandLink id="moreResults" value="More
results" action="#{hotelSearch.nextPage}"
rendered="#{hotelSearch.nextPageAvailable}">
- <f:ajax render="searchResults"
onevent="controlSpinner"/>
- </h:commandLink>
- --></ui:remove>
- </h:form>
- </div>
- </h:panelGroup>
-
- <div class="section">
- <h1>Current Hotel Bookings</h1>
- </div>
- <div class="section">
- <h:panelGroup rendered="#{not identity.loggedIn}">
- You must be logged in to see the list of your hotel bookings.
- </h:panelGroup>
- <h:form id="bookings"
rendered="#{identity.loggedIn}">
- <h:outputText value="No bookings found."
rendered="#{bookings.size == 0}"/>
- <h:dataTable id="bookings" value="#{bookings}"
var="_booking" rendered="#{bookings.size gt 0}">
- <h:column id="nameCol">
- <f:facet id="nameFct" name="header">Hotel
name</f:facet>
- #{_booking.hotel.name}
- </h:column>
- <h:column id="locCol">
- <f:facet id="locFct"
name="header">Location</f:facet>
- #{_booking.hotel.location}
- </h:column>
- <h:column id="inCol">
- <f:facet id="inCol" name="header">Check-in
date</f:facet>
- <h:outputText value="#{_booking.checkinDate}">
- <f:convertDateTime type="date"
pattern="MM/dd/yyyy"/>
- </h:outputText>
- </h:column>
- <h:column id="outCol">
- <f:facet id="outFct" name="header">Check-out
date</f:facet>
- <h:outputText value="#{_booking.checkoutDate}">
- <f:convertDateTime type="date"
pattern="MM/dd/yyyy"/>
- </h:outputText>
- </h:column>
- <h:column id="idCol">
- <f:facet id="idFct"
name="header">Confirmation number</f:facet>
- #{_booking.id}
- </h:column>
- <h:column id="actCol">
- <f:facet id="ActFct"
name="header">Action</f:facet>
- <h:commandLink id="cancel" value="Cancel"
action="#{bookingHistory.cancelBooking(_booking)}"/>
- </h:column>
- </h:dataTable>
- </h:form>
- </div>
-
- </ui:define>
-
- <ui:define name="sidebar">
-
- <h1>State management in Seam</h1>
- <p>
- State in Seam is <em>contextual</em>. When you click "Find
Hotels", the application
- retrieves a list of hotels from the database and caches it in the session
context. When you
- navigate to one of the hotel records by clicking the "View Hotel"
link, a <em>conversation</em>
- begins. The conversation is attached to a particular tab, in a particular
browser window. You can
- navigate to multiple hotels using "open in new tab" or "open in
new window" in your web browser.
- Each window will execute in the context of a different conversation. The
application keeps state
- associated with your hotel booking in the conversation context, which ensures
that the concurrent
- conversations do not interfere with each other.
- </p>
-
- <p>
- <a href="#"
onclick="window.open('exp/mainExp.html','exp','width=752,height=500,scrollbars=yes');">
- How does the search page work?
- </a>
- </p>
-
- </ui:define>
-
-</ui:composition>
Modified: examples/trunk/booking-simplified/src/main/webapp/password.xhtml
===================================================================
--- examples/trunk/booking-simplified/src/main/webapp/password.xhtml 2010-06-10 21:06:42
UTC (rev 13121)
+++ examples/trunk/booking-simplified/src/main/webapp/password.xhtml 2010-06-10 22:47:30
UTC (rev 13122)
@@ -35,7 +35,7 @@
<div class="buttonBox">
<h:commandButton id="change" value="Change"
action="#{passwordManager.changePassword}"/>
#{' '}
- <h:button id="cancel" value="Cancel"
outcome="/main.xhtml"/>
+ <h:button id="cancel" value="Cancel"
outcome="/search.xhtml"/>
</div>
</fieldset>
Copied: examples/trunk/booking-simplified/src/main/webapp/search.xhtml (from rev 13121,
examples/trunk/booking-simplified/src/main/webapp/main.xhtml)
===================================================================
--- examples/trunk/booking-simplified/src/main/webapp/search.xhtml
(rev 0)
+++ examples/trunk/booking-simplified/src/main/webapp/search.xhtml 2010-06-10 22:47:30 UTC
(rev 13122)
@@ -0,0 +1,178 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:s="http://jboss.com/products/seam/taglib"
+ template="/WEB-INF/layout/template.xhtml">
+
+ <ui:define name="head">
+ <script type="text/javascript">
+function controlSpinner(behavior)
+{
+ if (behavior.name == 'begin')
+ {
+ document.getElementById('activity').style.display = 'inline';
+ }
+ else if (behavior.name == 'complete')
+ {
+ document.getElementById('activity').style.display = 'none';
+ }
+}
+ </script>
+ </ui:define>
+
+ <ui:define name="content">
+
+ <div class="section">
+
+ <span class="errors">
+ <h:messages id="messages" globalOnly="true"/>
+ </span>
+
+ <h1>Search Hotels</h1>
+
+ <h:form id="searchForm" prependId="false">
+ <fieldset>
+ <h:inputText id="query"
value="#{searchCriteria.query}" style="width: 165px;">
+ <f:ajax event="keyup"
listener="#{hotelSearch.find}" render=":searchResults"
onevent="controlSpinner"/>
+ </h:inputText>
+ #{' '}
+ <h:commandButton id="findHotels" value="Find
Hotels" action="#{hotelSearch.find}">
+ <f:ajax execute="query" render=":searchResults"
onevent="controlSpinner"/>
+ </h:commandButton>
+ #{' '}
+ <span id="activity" style="display:
none;"><h:graphicImage id="spinner"
value="/img/spinner.gif"/></span>
+ <br/>
+ <h:outputLabel id="lblPageSize" for="pageSize"
value="Maximum results:"/>
+ #{' '}
+ <h:selectOneMenu id="pageSize"
value="#{searchCriteria.pageSize}">
+ <f:ajax listener="#{hotelSearch.find}"
render=":searchResults" onevent="controlSpinner"/>
+ <f:selectItem itemLabel="5" itemValue="5"/>
+ <f:selectItem itemLabel="10"
itemValue="10"/>
+ <f:selectItem itemLabel="20"
itemValue="20"/>
+ </h:selectOneMenu>
+ </fieldset>
+ </h:form>
+ </div>
+
+ <h:panelGroup id="searchResults">
+ <div class="section">
+ <h:outputText id="noHotelsMsg" value="No Hotels Found"
rendered="#{empty hotels}"/>
+ <h:form id="hotelSelectionForm">
+ <h:dataTable id="hotels" value="#{hotels}"
var="_hotel" rendered="#{not empty hotels}"
+ columnClasses=",,,,action">
+ <h:column id="nameCol">
+ <f:facet id="nameFct" name="header">Hotel
name</f:facet>
+ #{_hotel.name}
+ </h:column>
+ <h:column id="addrCol">
+ <f:facet id="addrFct"
name="header">Address</f:facet>
+ #{_hotel.address}
+ </h:column>
+ <h:column id="locCol">
+ <f:facet id="locFct"
name="header">Location</f:facet>
+ #{_hotel.location}
+ </h:column>
+ <h:column id="zipCol">
+ <f:facet id="zipFct"
name="header">Zip</f:facet>
+ #{_hotel.zip}
+ </h:column>
+ <h:column id="actCol">
+ <f:facet id="actFct"
name="header">Action</f:facet>
+ <h:commandLink id="view" value="View"
action="#{bookingAgent.selectHotel(_hotel)}" style="white-space:
nowrap;"/>
+ <ui:remove><!--
+ <h:commandButton id="view" value="View"
action="#{bookingAgent.selectHotel(_hotel)}"/>
+ --></ui:remove>
+ </h:column>
+ </h:dataTable>
+ </h:form>
+ <h:form id="paginationForm">
+ <h:commandButton id="previousResults" value="Previous
page" action="#{hotelSearch.previousPage}"
rendered="#{hotelSearch.previousPageAvailable}">
+ <f:ajax render=":searchResults"
onevent="controlSpinner"/>
+ </h:commandButton>
+ #{' '}
+ <h:commandButton id="moreResults" value="More
results" action="#{hotelSearch.nextPage}"
rendered="#{hotelSearch.nextPageAvailable}">
+ <f:ajax render=":searchResults"
onevent="controlSpinner"/>
+ </h:commandButton>
+ <ui:remove><!--
+ <h:commandLink id="previousResults" value="Previous
page" action="#{hotelSearch.previousPage}"
rendered="#{hotelSearch.previousPageAvailable}">
+ <f:ajax render=":searchResults"
onevent="controlSpinner"/>
+ </h:commandLink>
+ #{' '}
+ <h:commandLink id="moreResults" value="More
results" action="#{hotelSearch.nextPage}"
rendered="#{hotelSearch.nextPageAvailable}">
+ <f:ajax render=":searchResults"
onevent="controlSpinner"/>
+ </h:commandLink>
+ --></ui:remove>
+ </h:form>
+ </div>
+ </h:panelGroup>
+
+ <div class="section">
+ <h1>Current Hotel Bookings</h1>
+ </div>
+ <div class="section">
+ <h:panelGroup rendered="#{not identity.loggedIn}">
+ You must be logged in to see the list of your hotel bookings.
+ </h:panelGroup>
+ <h:form id="bookings"
rendered="#{identity.loggedIn}">
+ <h:outputText value="No bookings found."
rendered="#{bookings.size == 0}"/>
+ <h:dataTable id="bookings" value="#{bookings}"
var="_booking" rendered="#{bookings.size gt 0}">
+ <h:column id="nameCol">
+ <f:facet id="nameFct" name="header">Hotel
name</f:facet>
+ #{_booking.hotel.name}
+ </h:column>
+ <h:column id="locCol">
+ <f:facet id="locFct"
name="header">Location</f:facet>
+ #{_booking.hotel.location}
+ </h:column>
+ <h:column id="inCol">
+ <f:facet id="inCol" name="header">Check-in
date</f:facet>
+ <h:outputText value="#{_booking.checkinDate}">
+ <f:convertDateTime type="date"
pattern="MM/dd/yyyy"/>
+ </h:outputText>
+ </h:column>
+ <h:column id="outCol">
+ <f:facet id="outFct" name="header">Check-out
date</f:facet>
+ <h:outputText value="#{_booking.checkoutDate}">
+ <f:convertDateTime type="date"
pattern="MM/dd/yyyy"/>
+ </h:outputText>
+ </h:column>
+ <h:column id="idCol">
+ <f:facet id="idFct"
name="header">Confirmation number</f:facet>
+ #{_booking.id}
+ </h:column>
+ <h:column id="actCol">
+ <f:facet id="ActFct"
name="header">Action</f:facet>
+ <h:commandLink id="cancel" value="Cancel"
action="#{bookingHistory.cancelBooking(_booking)}"/>
+ </h:column>
+ </h:dataTable>
+ </h:form>
+ </div>
+
+ </ui:define>
+
+ <ui:define name="sidebar">
+
+ <h1>State management in Seam</h1>
+ <p>
+ State in Seam is <em>contextual</em>. When you click "Find
Hotels", the application
+ retrieves a list of hotels from the database and caches it in the session
context. When you
+ navigate to one of the hotel records by clicking the "View Hotel"
link, a <em>conversation</em>
+ begins. The conversation is attached to a particular tab, in a particular
browser window. You can
+ navigate to multiple hotels using "open in new tab" or "open in
new window" in your web browser.
+ Each window will execute in the context of a different conversation. The
application keeps state
+ associated with your hotel booking in the conversation context, which ensures
that the concurrent
+ conversations do not interfere with each other.
+ </p>
+
+ <p>
+ <a href="#"
onclick="window.open('exp/mainExp.html','exp','width=752,height=500,scrollbars=yes');">
+ How does the search page work?
+ </a>
+ </p>
+
+ </ui:define>
+
+</ui:composition>