Author: gvanmatre
Date: Thu Jun  1 14:01:43 2006
New Revision: 410950

URL: http://svn.apache.org/viewvc?rev=410950&view=rev
Log:
Added a fifth rolodex usecase example showing JSF/JSP facelets like namespace 
support.

Added:
    struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html   (with props)
Modified:
    
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
    
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/HeaderSorterRenderer.java
    
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
    
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
    struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml
    struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml
    struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml
    struts/shale/trunk/use-cases/src/web/usecases.jsp

Modified: 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
 (original)
+++ 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/JsfDefaultBuilder.java
 Thu Jun  1 14:01:43 2006
@@ -72,7 +72,7 @@
         }
         
         // resolve inheritance and attribute overrides
-        if (node.getAttributes().containsKey("extends") && 
!jsfid.equals("converter")) {
+        if (node.getAttributes().containsKey("extends") || 
!jsfid.equals("converter")) {
             realizeComponent(node, targetConverter);     
         }
         

Modified: 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/HeaderSorterRenderer.java
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/HeaderSorterRenderer.java?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/HeaderSorterRenderer.java
 (original)
+++ 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/HeaderSorterRenderer.java
 Thu Jun  1 14:01:43 2006
@@ -56,6 +56,15 @@
      */
     private static final String SORTED_COLUMN = "s";
 
+    
+    /**
+     * <p>Constant used to create the query parameter that
+     * identifies the sorted column's next sort direction.</p>
+     */
+    private static final String SORTED_SEQUENCE = "a";
+
+    
+    
     /**
      * <p>Finds the parent IUData component.</p>
      */
@@ -114,8 +123,16 @@
             wasSelected = value.equals(column.getId());
             column.getAttributes().put("defaultSort", value);
 
+            
+            String sortAcending = (String) params.get(SORTED_SEQUENCE);
+            boolean isSortedAcending =  true;
+            try {
+                isSortedAcending = 
Boolean.valueOf(sortAcending).booleanValue();
+            } catch (Exception e) {
+            }
+            
             // toggle the sort order flag
-            column.setSortAscending(!column.isSortAscending());
+            column.setSortAscending(isSortedAcending);
 
             value = null;
         } else if (column.wasSelected()) {
@@ -171,7 +188,9 @@
 
         StringBuffer url = new StringBuffer(getActionStr(context));
         url.append('?').append(getSortedTag(context, data)).append("=").append(
-            URLEncoder.encode(component.getId(), "UTF-8"));
+            URLEncoder.encode(component.getId(), "UTF-8"))
+            .append("&").append(SORTED_SEQUENCE).append("=")
+            .append(!((HeaderSorter) component).isSortAscending());
         writer.startElement("a", component);
         writer.writeAttribute("href", 
context.getExternalContext().encodeActionURL(url.toString()), "href");
         writer.writeText((String) ((HeaderSorter) component).getValue(), 
"value");

Modified: 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
 (original)
+++ 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/rolodex/Rolodex.java
 Thu Jun  1 14:01:43 2006
@@ -21,11 +21,11 @@
 import java.util.List;
 
 import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
 import javax.faces.model.SelectItem;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.shale.clay.component.Clay;
 import org.apache.shale.clay.config.beans.AttributeBean;
 import org.apache.shale.clay.config.beans.ComponentBean;
 import org.apache.shale.clay.config.beans.ElementBean;
@@ -270,8 +270,6 @@
     public String changeTab() {
         if (log.isInfoEnabled())
             log.info("changeTab()");
-
-        FacesContext context = FacesContext.getCurrentInstance();
         
         QueryParam paramObj = (QueryParam) getBean("queryParam");
         String tabIndex = paramObj.getTabIndex();
@@ -361,6 +359,7 @@
         return contacts;
     }
 
+        
     /**
      * <p>
      * This is an action event fired from clicking on a contact in the data
@@ -371,8 +370,6 @@
     public String selectContact() {
         if (log.isInfoEnabled())
             log.info("selectContact()");
-
-        FacesContext context = FacesContext.getCurrentInstance();
 
         // look for the commandLink query parameter
         QueryParam paramObj = (QueryParam) getBean("queryParam");

Modified: 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
 (original)
+++ 
struts/shale/trunk/use-cases/src/java/org/apache/shale/usecases/view/Bundle.properties
 Thu Jun  1 14:01:43 2006
@@ -151,6 +151,8 @@
 usecases.rolodex3.title=This example demonstrates using full HTML view 
templating without custom XML configuration.
 usecases.rolodex4=Rolodex Example (Full XML View)
 usecases.rolodex4.title=This example demonstrates using full XML views for 
maximum reuse.
+usecases.rolodex5=Rolodex Example (Full XHTML View with Namespaces)
+usecases.rolodex5.title=This example demonstrates using full XHTML views with 
namespaces.
 usecases.rolodex.viewsource=View Source
 usecases.symbols=Symbols 
 usecases.symbols.title=This example demonstrates how symbols are a very 
powerful reuse feature in Clay.

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml (original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/clay-config.xml Thu Jun  1 
14:01:43 2006
@@ -494,7 +494,6 @@
        <component jsfid="tabs" extends="clay" id="tabs" allowBody="false">
                <attributes>
             <set name="clayJsfid" value="RUNTIME"/>
-            <set name="managedBeanName" value="rolodex$hrolodex"/>
             <set name="shapeValidator" value="[EMAIL PROTECTED]"/> 
                </attributes>
     </component>       

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml 
(original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/clay-symbols-config.xml Thu 
Jun  1 14:01:43 2006
@@ -21,13 +21,6 @@
        </symbols>
     </component>
 
-       <!-- base lable color -->
-       <component jsfid="baseLabel" extends="outputLabel" allowBody="false">
-          <attributes>
-              <set name="style" value="color:blue"/>
-          </attributes>
-       </component>
-
     <!--  base error message -->
        <component jsfid="baseMessage" extends="message" allowBody="false">
           <attributes>

Modified: struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml (original)
+++ struts/shale/trunk/use-cases/src/web/WEB-INF/faces-config.xml Thu Jun  1 
14:01:43 2006
@@ -232,6 +232,13 @@
       <to-view-id>/rolodex/rolodex.xml</to-view-id>
     </navigation-case>
     
+    <!--  Full XHTML Namespace View -->
+    <navigation-case>
+      <from-outcome>rolodex$test5</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>
+    
+    
     <!-- Full HTML View -->
     <navigation-case>
       <from-outcome>rolodex$viewsource</from-outcome>
@@ -401,6 +408,47 @@
 
   </navigation-rule>
 
+
+  <navigation-rule>
+    <!-- Full XHTML Namespace View -->    
+    <from-view-id>/rolodex/jrolodex.html</from-view-id>
+    
+    <navigation-case>
+      <from-action>#{rolodex$jrolodex.selectContact}</from-action>
+      <from-outcome>rolodex$test</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>  
+    <navigation-case>
+      <from-action>#{rolodex$jrolodex.saveContact}</from-action>
+      <from-outcome>rolodex$test</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-action>#{rolodex$jrolodex.deleteContact}</from-action>
+      <from-outcome>rolodex$test</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-action>#{rolodex$jrolodex.newContact}</from-action>
+      <from-outcome>rolodex$test</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-action>#{rolodex$jrolodex.changeTab}</from-action>
+      <from-outcome>rolodex$test</from-outcome>
+      <to-view-id>/rolodex/jrolodex.html</to-view-id>
+    </navigation-case>
+    <navigation-case>
+      <from-action>home</from-action>
+      <from-outcome>home</from-outcome>
+      <to-view-id>/usecases.faces</to-view-id>
+      <redirect/>
+    </navigation-case>
+    
+  </navigation-rule>
+
+
+
   <navigation-rule>
     <from-view-id>*</from-view-id>
     <navigation-case>
@@ -671,6 +719,18 @@
        View controller for the Extreme HTML view rolodex usecase
     </description>
     <managed-bean-name>rolodex$xhrolodex</managed-bean-name>
+    <managed-bean-class>
+      org.apache.shale.usecases.rolodex.Rolodex
+    </managed-bean-class>
+    <managed-bean-scope>session</managed-bean-scope>
+  </managed-bean>
+
+
+  <managed-bean>
+    <description>
+       View controller for the XHTML namespace view rolodex usecase
+    </description>
+    <managed-bean-name>rolodex$jrolodex</managed-bean-name>
     <managed-bean-class>
       org.apache.shale.usecases.rolodex.Rolodex
     </managed-bean-class>

Added: struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html?rev=410950&view=auto
==============================================================================
--- struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html (added)
+++ struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html Thu Jun  1 
14:01:43 2006
@@ -0,0 +1,349 @@
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en"
+       xmlns:f="http://java.sun.com/jsf/core";
+       xmlns:h="http://java.sun.com/jsf/html";
+       xmlns:clay="http://struts.apache.org/shale/clay-plugin";>
+<head>
+<clay:loadBundle basename="org.apache.shale.usecases.view.Bundle"
+       var="messages" />
+<title>#{messages['usecases.rolodex5']}</title>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<style type="text/css" media="screen">
+
+.linkPrev {
+       text-align: left; 
+       color: black; 
+       font-family: arial; font-size: 8pt
+}
+.linkNext {
+       text-align: right; 
+       color: black; 
+       font-family: arial; font-size: 8pt
+}
+.links {
+       text-align: center; 
+       color: black; 
+       font-family: arial; font-size: 8pt
+}
+.caption {
+       text-align: center; 
+       color: #99CC66; 
+       font-family: arial; font-size: 8pt
+}
+body {
+       margin : 10px;
+       font: Verdana, Helvetica, Arial;
+       padding: 0px;
+       background: #fff;
+}
+
+#menu {
+       border-bottom : 1px solid #ccc;
+       margin : 0;
+       padding-bottom : 19px;
+       padding-left : 10px;
+}
+
+#menu ul, #menu li     {
+       display : inline;
+       list-style-type : none;
+       margin : 0;
+       padding : 0;
+}
+
+       
+#menu a:link, #menu a:visited  {
+       background : #E8EBF0;
+       border : 1px solid #ccc;
+       color : #666;
+       float : left;
+       font-size : small;
+       font-weight : normal;
+       line-height : 14px;
+       margin-right : 8px;
+       padding : 2px 10px 2px 10px;
+       text-decoration : none;
+}
+
+#menu a:link.active, #menu a:visited.active    {
+       background : #fff;
+       border-bottom : 1px solid #fff;
+       color : #000;
+}
+
+#menu a:hover  {
+       color : #f00;
+}
+
+.contacts {
+   border: 1px solid #fff;
+}
+
+.contactsHeader {
+   text-align: center;
+   color: #99CC66;
+   background: #E5F2D9;   
+}
+
+.contactsRow2 {
+   text-align: left;
+   color: #99CC66;
+   background: #D9EEF2;   
+}
+
+.contactsRow1 {
+   text-align: left;
+   color: #99CC66;
+   background: #F1F7D4;   
+}
+       
+body.section-1 #menu li#nav-sel a {
+       background : #fff;
+       border-bottom : 1px solid #fff;
+       color : #000;
+}
+
+li#nav {
+       background : #red;
+       border-bottom : 1px solid #000;
+       color : #000;
+}
+
+#menu ul a:hover {
+       color : #f00 !important;
+}
+
+#contents {
+       background : #fff;
+       border : 1px solid #ccc;
+       border-top : none;
+       clear : both;
+       margin : 0px;
+       padding : 15px;
+}
+
+input.button {
+    width: 1.2in; 
+    text-align: center; 
+    color: #99CC66; 
+    font-size: 12px; 
+    font-style: normal; 
+    font-weight: bold
+}
+</style>
+</head>
+<body class="section-1">
+<form><h:commandLink action="home" allowBody="true"
+       immediate="true" value="Back" /><br />
+<br />
+<clay:clay shapeValidator="[EMAIL PROTECTED]" />
+<div id="contents">
+<table border="0">
+       <tr>
+               <td rowspan="3"><h:dataTable
+                       value="[EMAIL PROTECTED]" var="e" rows="5"
+                       first="0" styleClass="contacts" 
headerClass="contactsHeader"
+                       rowClasses="contactsRow1, contactsRow2">
+                       <f:facet name="header">
+                               <clay:webPager />
+                       </f:facet>
+                       <h:column name="id">
+                               <f:facet name="header">
+                                       <clay:headerSorter
+                                               
value="#{messages['rolodex.contactTable.nameColumn.title']}"
+                                               sortBy="name" />
+                               </f:facet>
+                               <h:commandLink value="#{e.name}"
+                                       action="[EMAIL PROTECTED]" 
immediate="true">
+                                       <f:param name="selectedName" 
value="#{e.encodedName}" />
+                               </h:commandLink>
+                       </h:column>
+               </h:dataTable></td>
+       </tr>
+       <tr>
+               <td>
+               <table border="0">
+                       <tr>
+                               <td><h:outputLabel for="contactName"
+                                       value="#{messages['rolodex.name']}" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="contactName"
+                                       value="[EMAIL PROTECTED]" size="40"
+                                       maxlength="50" required="true" /></td>
+                               <td><h:message for="contactName" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel for="contactEmail"
+                                       value="#{messages['rolodex.email']}" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="contactEmail"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="30" 
maxlength="50" /></td>
+                               <td><h:message for="contactEmail" 
extends="baseMessage" /></td>
+                       </tr>
+               </table>
+               </td>
+               <td><h:commandButton
+                       rendered="#{!empty @managed-bean-name.selectedContact}"
+                       value="#{messages['rolodex.button.save']}"
+                       action="[EMAIL PROTECTED]" extends="baseCommand" /><br 
/>
+               <h:commandButton
+                       rendered="#{!empty @managed-bean-name.selectedContact}"
+                       value="#{messages['rolodex.button.delete']}"
+                       action="[EMAIL PROTECTED]" extends="baseCommand" /><br 
/>
+               <h:commandButton value="#{messages['rolodex.button.new']}"
+                       action="[EMAIL PROTECTED]" immediate="true"
+                       extends="baseCommand" /><br />
+               </td>
+       </tr>
+       <tr>
+               <td>
+               <table border="0">
+                       <tr class="contactsHeader">
+                               <td colspan="3"><h:outputText
+                                       
value="#{messages['rolodex.address.residentialAddress']}" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.street1']}"
+                                       for="residentialStreet1" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="residentialStreet1"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="35" 
maxlength="50" /></td>
+                               <td><h:message for="residentialStreet1" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.street2']}"
+                                       for="residentialStreet2" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="residentialStreet2"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="35" 
maxlength="50" /></td>
+                               <td><h:message for="residentialStreet2" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.city']}"
+                                       for="residentialCity" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="residentialCity"
+                                       value="[EMAIL PROTECTED]"
+                                       required="true" size="20" 
maxlength="30" /></td>
+                               <td><h:message for="residentialCity" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.state']}"
+                                       for="residentialState" 
extends="baseLabel" /></td>
+                               <td><h:selectOneMenu id="residentialState"
+                                       value="[EMAIL PROTECTED]"
+                                       required="true">
+                                       <f:selectItems 
value="#{rolodexDao.states}" />
+                               </h:selectOneMenu></td>
+                               <td><h:message for="residentialState" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.zip']}"
+                                       for="residentialZip" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="residentialZip"
+                                       value="[EMAIL PROTECTED]"
+                                       size="5" maxlength="9">
+                                       <f:convertInteger />
+                               </h:inputText></td>
+                               <td><h:message for="residentialZip" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.phone']}"
+                                       for="contactResidentialPhone" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="contactResidentialPhone"
+                                       value="[EMAIL PROTECTED]"
+                                       size="20" maxlength="50" /></td>
+                               <td><h:message for="contactResidentialPhone" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td colspan="2">&nbsp;</td>
+                       </tr>
+                       <tr>
+                               <td colspan="2">&nbsp;</td>
+                       </tr>
+               </table>
+               </td>
+               <td>
+               <table border="0">
+                       <tr class="contactsHeader">
+                               <td colspan="3"><h:outputText
+                                       
value="#{messages['rolodex.address.businessAddress']}" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.street1']}"
+                                       for="businessStreet1" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="businessStreet1"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="35" 
maxlength="50" /></td>
+                               <td><h:message for="businessStreet1" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.street2']}"
+                                       for="businessStreet2" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="businessStreet2"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="35" 
maxlength="50" /></td>
+                               <td><h:message for="businessStreet2" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.city']}"
+                                       for="businessCity" extends="baseLabel" 
/></td>
+                               <td><h:inputText id="businessCity"
+                                       value="[EMAIL PROTECTED]"
+                                       required="true" size="20" 
maxlength="30" /></td>
+                               <td><h:message for="businessCity" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.state']}"
+                                       for="businessState" extends="baseLabel" 
/></td>
+                               <td><h:selectOneMenu id="businessState"
+                                       value="[EMAIL PROTECTED]"
+                                       required="true">
+                                       <f:selectItems 
value="#{rolodexDao.states}" />
+                               </h:selectOneMenu></td>
+                               <td><h:message for="businessState" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.province']}"
+                                       for="businessProvince" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="businessProvince"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="20" 
maxlength="30" /></td>
+                               <td><h:message for="businessProvince" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.zip']}"
+                                       for="businessZip" extends="baseLabel" 
/></td>
+                               <td><h:inputText id="businessZip"
+                                       value="[EMAIL PROTECTED]"
+                                       size="5" maxlength="9">
+                                       <f:convertInteger />
+                               </h:inputText></td>
+                               <td><h:message for="businessZip" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.country']}"
+                                       for="businessCountry" 
extends="baseLabel" /></td>
+                               <td><h:selectOneMenu id="businessCountry"
+                                       value="[EMAIL PROTECTED]"
+                                       required="true">
+                                       <f:selectItems 
value="#{rolodexDao.countries}" />
+                               </h:selectOneMenu></td>
+                               <td><h:message for="businessCountry" 
extends="baseMessage" /></td>
+                       </tr>
+                       <tr>
+                               <td><h:outputLabel 
value="#{messages['rolodex.address.phone']}"
+                                       for="contactBusinessPhone" 
extends="baseLabel" /></td>
+                               <td><h:inputText id="contactBusinessPhone"
+                                       value="[EMAIL PROTECTED]"
+                                       required="false" size="20" 
maxlength="50" /></td>
+                               <td><h:message for="contactBusinessPhone" 
extends="baseMessage" /></td>
+                       </tr>
+               </table>
+               </td>
+       </tr>
+       <tr>
+       </tr>
+</table>
+</div>
+</form>
+</body>
+</html>

Propchange: struts/shale/trunk/use-cases/src/web/rolodex/jrolodex.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/shale/trunk/use-cases/src/web/usecases.jsp
URL: 
http://svn.apache.org/viewvc/struts/shale/trunk/use-cases/src/web/usecases.jsp?rev=410950&r1=410949&r2=410950&view=diff
==============================================================================
--- struts/shale/trunk/use-cases/src/web/usecases.jsp (original)
+++ struts/shale/trunk/use-cases/src/web/usecases.jsp Thu Jun  1 14:01:43 2006
@@ -242,6 +242,15 @@
        <h:outputText     value="#{messages['usecases.rolodex.viewsource']}"/>
     </h:commandLink>
         
+    <h:commandLink         id="rolodex5"
+                       action="rolodex$test5" 
title="#{messages['usecases.rolodex5.title']}">
+      <h:outputText     value="#{messages['usecases.rolodex5']}"/>
+    </h:commandLink>
+    <h:commandLink action="rolodex$viewsource" 
title="#{messages['usecases.rolodex5.title']}">
+       <f:param name="url" value="/rolodex/jrolodex.html"/>
+       <h:outputText     value="#{messages['usecases.rolodex.viewsource']}"/>
+    </h:commandLink>
+           
   </h:panelGrid>
 
 


Reply via email to