[jboss-cvs] jboss-seam/seam-gen/view ...

Gavin King gavin.king at jboss.com
Tue Nov 7 04:12:21 EST 2006


  User: gavin   
  Date: 06/11/07 04:12:21

  Added:       seam-gen/view  view.xhtml.ftl
  Log:
  separate view/edit pages, better conversation model
  
  Revision  Changes    Path
  1.1      date: 2006/11/07 09:12:21;  author: gavin;  state: Exp;jboss-seam/seam-gen/view/view.xhtml.ftl
  
  Index: view.xhtml.ftl
  ===================================================================
  <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <#assign entityName = pojo.shortName>
  <#assign componentName = util.lower(entityName)>
  <#assign homeName = componentName + "Home">
  <#assign masterPageName = entityName + "List">
  <#assign editPageName = entityName + "Edit">
  
  <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:s="http://jboss.com/products/seam/taglib"
                  xmlns:ui="http://java.sun.com/jsf/facelets"
                  xmlns:f="http://java.sun.com/jsf/core"
                  xmlns:h="http://java.sun.com/jsf/html"
                  template="layout/template.xhtml">
                         
  <ui:define name="body">
  
      <h1>${entityName}</h1>
      <p>Generated view page</p>
      
      <h:messages globalOnly="true" styleClass="message"/>
      
      <h:form id="${componentName}">
          <div class="dialog">
          <table>
          <s:validateAll>
  <#foreach property in pojo.allPropertiesIterator>
  <#if !c2h.isCollection(property) && !c2h.isManyToOne(property)>
              <tr class="prop">
                  <td class="name">${property.name}</td>
                  <td class="value">
  <#if property.equals(pojo.identifierProperty)>
  <#if property.value.identifierGeneratorStrategy == "assigned">
                          ${'#'}{${homeName}.instance.${property.name}}
  </#if>
  <#else>
  <#if property.value.typeName == "date">
  			           <h:outputText value="${'#'}{${homeName}.instance.${property.name}}">
  			               <f:convertDateTime type="date" dateStyle="short"/>
  			           </h:outputText>
  <#elseif property.value.typeName == "time">
  			           <h:outputText value="${'#'}{${homeName}.instance.${property.name}}">
  			               <f:convertDateTime type="time"/>
  			           </h:outputText>
  <#elseif property.value.typeName == "timestamp">
  			           <h:outputText value="${'#'}{${homeName}.instance.${property.name}}">
  			               <f:convertDateTime type="both" dateStyle="short"/>
  			           </h:outputText>
  <#else>
                         ${'#'}{${homeName}.instance.${property.name}}
  </#if>
  </#if>
                  </td>
              </tr>
  </#if>
  </#foreach>
          </s:validateAll>
          </table>
          </div>
          <div class="actionButtons">  			  
              <s:link id="edit" value="Edit" 
                  view="/${editPageName}.xhtml" 
                  propagation="begin" 
                  linkStyle="button">
              	<f:param name="${componentName}Id" 
              	    value="${'#'}{${homeName}.instance.${pojo.identifierProperty.name}}"/>
              </s:link>		  
              <s:link id="delete" value="Delete" 
                  action="${'#'}{${homeName}.remove}"
                  rendered="${'#'}{${homeName}.managed}"
                  linkStyle="button"
                  view="/${masterPageName}.xhtml">
              	<f:param name="${componentName}Id" 
              	    value="${'#'}{${homeName}.instance.${pojo.identifierProperty.name}}"/>
              </s:link>
              <!--s:link id="back" value="Back" 
                  view="/${masterPageName}.xhtml" 
                  linkStyle="button"/-->			  
          </div>
      </h:form>
      
  <#foreach property in pojo.allPropertiesIterator>
  
  <#if c2h.isManyToOne(property)>
  <#assign parentPojo = c2j.getPOJOClass(cfg.getClassMapping(property.value.referencedEntityName))>
  <#assign parentPageName = parentPojo.shortName>
  <#assign parentName = util.lower(parentPojo.shortName)>
             <h2>${property.name}</h2>
             <h:outputText value="No ${property.name}" rendered="${'#'}{${homeName}.instance.${property.name} == null}"/>
             <h:dataTable var="${parentName}" 
                        value="${'#'}{${homeName}.instance.${property.name}}" 
                     rendered="${'#'}{${homeName}.instance.${property.name} != null}"
                     rowClasses="rvgRowOne,rvgRowTwo"
                     id="${property.name}">
  <#foreach parentProperty in parentPojo.allPropertiesIterator>
  <#if !c2h.isCollection(parentProperty) && !c2h.isManyToOne(parentProperty)>
                 <h:column>
                     <f:facet name="header">${parentProperty.name}</f:facet>
                     ${'#'}{${parentName}.${parentProperty.name}}
                 </h:column>
  </#if>
  <#if c2h.isManyToOne(parentProperty)>
  <#assign parentParentPojo = c2j.getPOJOClass(cfg.getClassMapping(parentProperty.value.referencedEntityName))>
                 <h:column>
  		           <f:facet name="header">${parentProperty.name} ${parentParentPojo.identifierProperty.name}</f:facet>
  			       ${'#'}{${parentName}.${parentProperty.name}.${parentPojo.identifierProperty.name}}
  			   </h:column>
  </#if>
  </#foreach>
                 <h:column>
                     <f:facet name="header">action</f:facet>
  		           <s:link id="${parentName}" value="View" view="/${parentPageName}.xhtml">
  		               <f:param name="${parentName}Id" value="${'#'}{${parentName}.${parentPojo.identifierProperty.name}}"/>
  		           </s:link>
                 </h:column>
             </h:dataTable>
  </#if>
  
  <#if c2h.isOneToManyCollection(property)>
            <h2>${property.name}</h2>
  <#assign childPojo = c2j.getPOJOClass(property.value.element.associatedClass)>
  <#assign childPageName = childPojo.shortName>
  <#assign childEditPageName = childPojo.shortName + "Edit">
  <#assign childName = util.lower(childPojo.shortName)>
  <#assign childHomeName = childName + "Home">
            <h:outputText value="No ${property.name}" rendered="${'#'}{empty ${homeName}.${property.name}}"/>
            <h:dataTable value="${'#'}{${homeName}.${property.name}}" 
                           var="${childName}" 
                      rendered="${'#'}{not empty ${homeName}.${property.name}}" 
                    rowClasses="rvgRowOne,rvgRowTwo"
                            id="${property.name}">
  <#foreach childProperty in childPojo.allPropertiesIterator>
  <#if !c2h.isCollection(childProperty) && !c2h.isManyToOne(childProperty)>
              <h:column>
                  <f:facet name="header">${childProperty.name}</f:facet>
                  <h:outputText value="${'#'}{${childName}.${childProperty.name}}"/>
              </h:column>
  </#if>
  </#foreach>
              <h:column>
                  <f:facet name="header">action</f:facet>
  		        <s:link id="${childName}" value="Select" view="/${childPageName}.xhtml">
  		            <f:param name="${childName}Id" value="${'#'}{${childName}.${childPojo.identifierProperty.name}}"/>
  		        </s:link>
              </h:column>
            </h:dataTable>
  
  		    <div class="actionButtons">
  		        <s:link id="add" value="Add ${childName}" linkStyle="button"
  		            view="/${childEditPageName}.xhtml" propagation="begin">
  	            	<f:param name="${componentName}Id" 
  	            	    value="${'#'}{${homeName}.instance.${pojo.identifierProperty.name}}"/>
  	            </s:link>
  		    </div>
  </#if>
  </#foreach>
      
  </ui:define>
  
  </ui:composition>
  
  
  



More information about the jboss-cvs-commits mailing list