[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