Author: dan.j.allen
Date: 2008-10-11 01:38:57 -0400 (Sat, 11 Oct 2008)
New Revision: 9259
Added:
trunk/seam-gen/icefaces/view/layout/sort.xhtml
trunk/seam-gen/view/layout/sort.xhtml
Modified:
trunk/seam-gen/icefaces/view/list.xhtml.ftl
trunk/seam-gen/view/list.xhtml.ftl
Log:
introduce template for creating column sort links, thus making it waaaaaay cleaner
Added: trunk/seam-gen/icefaces/view/layout/sort.xhtml
===================================================================
--- trunk/seam-gen/icefaces/view/layout/sort.xhtml (rev 0)
+++ trunk/seam-gen/icefaces/view/layout/sort.xhtml 2008-10-11 05:38:57 UTC (rev 9259)
@@ -0,0 +1,11 @@
+<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:c="http://java.sun.com/jstl/core"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+ <s:link id="list#{propertyPath.replace('.','_')}SortId"
styleClass="columnHeader" value="#{propertyLabel} #{entityList.orderColumn
== propertyPath ? (entityList.orderDirection == 'desc' ? messages.down :
messages.up) : ''}">
+ <f:param name="sort" value="#{propertyPath}"/>
+ <f:param name="dir" value="#{entityList.orderColumn ==
propertyPath and entityList.orderDirection == 'asc' ? 'desc' :
'asc'}"/>
+ </s:link>
+</ui:composition>
Modified: trunk/seam-gen/icefaces/view/list.xhtml.ftl
===================================================================
--- trunk/seam-gen/icefaces/view/list.xhtml.ftl 2008-10-11 05:37:34 UTC (rev 9258)
+++ trunk/seam-gen/icefaces/view/list.xhtml.ftl 2008-10-11 05:38:57 UTC (rev 9259)
@@ -87,19 +87,25 @@
<#if pojo.isComponent(property)>
<#foreach componentProperty in property.value.propertyIterator>
<ice:column id="list${componentProperty.name}Id">
- <f:facet
name="header">${componentProperty.name}</f:facet>
+ <f:facet name="header">
+<#assign propertyPath = property.name + '.' + componentProperty.name>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${componentProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
+ </f:facet>
${'#'}{${componentName}.${property.name}.${componentProperty.name}}
</ice:column>
</#foreach>
<#else>
<ice:column id="list${property.name}Id">
<f:facet name="header">
- <s:link styleClass="columnHeader"
- id="list${property.name}LinkId"
- value="${property.name}
${'#'}{${listName}.orderColumn=='${property.name}' ?
(${listName}.orderDirection=='desc' ? messages.down : messages.up) :
''}">
- <f:param name="sort" value="${property.name}"
/>
- <f:param name="dir"
value="${'#'}{${listName}.orderDirection=='asc' ? 'desc' :
'asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name}"/>
+ <ui:param name="propertyPath"
value="${property.name}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${property.name}}&nbsp;
</ice:column>
@@ -112,11 +118,11 @@
<ice:column id="listColumn${componentProperty}${listName}Id">
<f:facet name="header">
<#assign propertyPath = property.name + '.' +
parentPojo.identifierProperty.name + '.' + componentProperty.name>
- <s:link styleClass="columnHeader"
- id="listColumnHeader${componentProperty.name}Id"
- value="${property.name} ${componentProperty.name}
${'#'}{${listName}.order=='${propertyPath} asc' ? messages.down : (
${listName}.order=='${propertyPath} desc' ? messages.up : '' )}">
- <f:param name="order"
value="${'#'}{${listName}.order=='${propertyPath} asc' ?
'${propertyPath} desc' : '${propertyPath} asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name} ${componentProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${propertyPath}}&nbsp;
</ice:column>
@@ -125,11 +131,11 @@
<ice:column id="listColumn${property.name}Id">
<f:facet name="header">
<#assign propertyPath = property.name + '.' +
parentPojo.identifierProperty.name>
- <s:link styleClass="columnHeader"
- id="listcolumnHeader${property.name}Id"
- value="${property.name}
${parentPojo.identifierProperty.name}
${'#'}{${listName}.order=='${propertyPath} asc' ? messages.down : (
${listName}.order=='${propertyPath} desc' ? messages.up : '' )}">
- <f:param name="order"
value="${'#'}{${listName}.order=='${propertyPath} asc' ?
'${propertyPath} desc' : '${propertyPath} asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name} ${parentPojo.identifierProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${propertyPath}}
</ice:column>
Added: trunk/seam-gen/view/layout/sort.xhtml
===================================================================
--- trunk/seam-gen/view/layout/sort.xhtml (rev 0)
+++ trunk/seam-gen/view/layout/sort.xhtml 2008-10-11 05:38:57 UTC (rev 9259)
@@ -0,0 +1,11 @@
+<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:c="http://java.sun.com/jstl/core"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+ <s:link styleClass="columnHeader" value="#{propertyLabel}
#{entityList.orderColumn == propertyPath ? (entityList.orderDirection == 'desc' ?
messages.down : messages.up) : ''}">
+ <f:param name="sort" value="#{propertyPath}"/>
+ <f:param name="dir" value="#{entityList.orderColumn ==
propertyPath and entityList.orderDirection == 'asc' ? 'desc' :
'asc'}"/>
+ </s:link>
+</ui:composition>
Modified: trunk/seam-gen/view/list.xhtml.ftl
===================================================================
--- trunk/seam-gen/view/list.xhtml.ftl 2008-10-11 05:37:34 UTC (rev 9258)
+++ trunk/seam-gen/view/list.xhtml.ftl 2008-10-11 05:38:57 UTC (rev 9259)
@@ -71,18 +71,25 @@
<#if pojo.isComponent(property)>
<#foreach componentProperty in property.value.propertyIterator>
<h:column>
- <f:facet
name="header">${componentProperty.name}</f:facet>
+ <f:facet name="header">
+<#assign propertyPath = property.name + '.' + componentProperty.name>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${componentProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
+ </f:facet>
${'#'}{${componentName}.${property.name}.${componentProperty.name}}
</h:column>
</#foreach>
<#else>
<h:column>
<f:facet name="header">
- <s:link styleClass="columnHeader"
- value="${property.name}
${'#'}{${listName}.orderColumn=='${property.name}' ?
(${listName}.orderDirection=='desc' ? messages.down : messages.up) :
''}">
- <f:param name="sort" value="${property.name}"
/>
- <f:param name="dir"
value="${'#'}{${listName}.orderDirection=='asc' ? 'desc' :
'asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name}"/>
+ <ui:param name="propertyPath"
value="${property.name}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${property.name}}
</h:column>
@@ -95,10 +102,11 @@
<h:column>
<f:facet name="header">
<#assign propertyPath = property.name + '.' +
parentPojo.identifierProperty.name + '.' + componentProperty.name>
- <s:link styleClass="columnHeader"
- value="${property.name} ${componentProperty.name}
${'#'}{${listName}.order=='${propertyPath} asc' ? messages.down : (
${listName}.order=='${propertyPath} desc' ? messages.up : '' )}">
- <f:param name="order"
value="${'#'}{${listName}.order=='${propertyPath} asc' ?
'${propertyPath} desc' : '${propertyPath} asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name} ${componentProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${propertyPath}}
</h:column>
@@ -107,10 +115,11 @@
<h:column>
<f:facet name="header">
<#assign propertyPath = property.name + '.' +
parentPojo.identifierProperty.name>
- <s:link styleClass="columnHeader"
- value="${property.name}
${parentPojo.identifierProperty.name}
${'#'}{${listName}.order=='${propertyPath} asc' ? messages.down : (
${listName}.order=='${propertyPath} desc' ? messages.up : '' )}">
- <f:param name="order"
value="${'#'}{${listName}.order=='${propertyPath} asc' ?
'${propertyPath} desc' : '${propertyPath} asc'}"/>
- </s:link>
+ <ui:include src="layout/sort.xhtml">
+ <ui:param name="entityList"
value="${'#'}{${listName}}"/>
+ <ui:param name="propertyLabel"
value="${property.name} ${parentPojo.identifierProperty.name}"/>
+ <ui:param name="propertyPath"
value="${propertyPath}"/>
+ </ui:include>
</f:facet>
${'#'}{${componentName}.${propertyPath}}
</h:column>