You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/12/26 18:00:23 UTC
svn commit: r490344 -
/incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml
Author: awiner
Date: Tue Dec 26 10:00:23 2006
New Revision: 490344
URL: http://svn.apache.org/viewvc?view=rev&rev=490344
Log:
Improve docs for iterator (ADFFACES-334, plus a bunch more)
Modified:
incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml
Modified: incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml?view=diff&rev=490344&r1=490343&r2=490344
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-build/src/main/resources/META-INF/maven-faces-plugin/components/trinidad/Iterator.xml Tue Dec 26 10:00:23 2006
@@ -21,7 +21,12 @@
xmlns:mafp="http://myfaces.apache.org/maven-trinidad-plugin"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<component>
- <description><![CDATA[UIXIterator is a component that does iteration.]]></description>
+ <description><![CDATA[UIXIterator is a component that performs iteration
+over its child components. It is like a UIXTable without any chrome.
+While functionally similar to a forEach tag, an iterator is a component
+that does its processing during rendering, while forEach runs during
+the assembly of the component tree, and doesn't leave behind a component in the
+heirarchy. ]]></description>
<icon>
<small-icon>/org/apache/myfaces/trinidad/metadata/icons/iterator.png</small-icon>
</icon>
@@ -112,22 +117,47 @@
<mfp:component-superclass>UIXCollection</mfp:component-superclass>
<mfp:tag-name>tr:iterator</mfp:tag-name>
<mfp:tag-class>org.apache.myfaces.trinidadinternal.taglib.UIXIteratorTag</mfp:tag-class>
- <mfp:long-description><![CDATA[UIXIterator is a component that does iteration. It is similar to UIXTable
+ <mfp:long-description><![CDATA[<p>UIXIterator is a component that performs iteration over its child components. It is similar to UIXTable
but has no chrome.
Each child is repeatedly stamped as many times as necessary.
Iteration is done starting at the index given by the "first" attribute,
for as many indices as specified by the "rows" attribute.
If "rows" returns 0, then the iteration continues until
there are no more elements in the underlying data.
- <html:br/>
-
+ </p>
+ <p>
While the <tr:forEach>
will be sufficient for most user's needs, it does not work with a JSF
DataModel, or CollectionModel. It also cannot be bound to EL expressions that
use component-managed EL variables
-(such as the "var" variable on an <tr:table>).
+(such as the "var" variable on an <tr:table>), because
+a forEach tag runs during
The <tr:iterator> tag was created to
-address these issues.]]>
+address these issues.
+</p>
+<p>
+To list all, the benefits of UIXIterator over forEach:
+<ul>
+<li>Access to component-managed EL variables</li>
+<li>Full support for CollectionModel and DataModel</li>
+<li>Does not require creating multiple copies of children,
+so more memory efficient</li>
+<li>Much better at dealing with adding and deleting children,
+at least when used with a CollectionModel with a good
+implementation of getRowKey()</li>
+<li>Supports "binding", and all other forms of JSF component
+manipulation</li>
+</ul>
+and the negative aspects:
+<ul>
+<li>Leaves behind a component in the hierarchy, which causes
+problems with components like panelFormLayout that try to handle each child
+individually.</li>
+<li>Because there's only one of each child, the same limitations
+on "binding", etc., as apply inside a table also apply to iterator.</li>
+</ul>
+</p>
+]]>
</mfp:long-description>
<mfp:author>Arjuna Wijeyekoon</mfp:author>
</component-extension>