JBoss Rich Faces SVN: r15727 - root/docs/trunk/Migration_Guide/en-US.
by richfaces-svn-commits@lists.jboss.org
Author: SeanRogers
Date: 2009-10-19 22:02:24 -0400 (Mon, 19 Oct 2009)
New Revision: 15727
Modified:
root/docs/trunk/Migration_Guide/en-US/Changes_and_new_features.xml
root/docs/trunk/Migration_Guide/en-US/Introduction.xml
root/docs/trunk/Migration_Guide/en-US/Revision_History.xml
root/docs/trunk/Migration_Guide/en-US/Upgrading.xml
Log:
Basic rough draft of Migration Guide
Modified: root/docs/trunk/Migration_Guide/en-US/Changes_and_new_features.xml
===================================================================
--- root/docs/trunk/Migration_Guide/en-US/Changes_and_new_features.xml 2009-10-20 01:54:46 UTC (rev 15726)
+++ root/docs/trunk/Migration_Guide/en-US/Changes_and_new_features.xml 2009-10-20 02:02:24 UTC (rev 15727)
@@ -5,63 +5,1276 @@
<chapter id="chap-Migration_Guide-Changes_and_new_features">
<title>Changes and new features</title>
<para>
- Incomplete
+ There have been several changes made to the RichFaces framework for version 4.0 that may affect migrated projects.
</para>
- <section id="sect-Migration_Guide-Changes_and_new_features-JSF_2.0_integration">
- <title>JSF 2.0 integration</title>
+ <section id="sect-Migration_Guide-Changes_and_new_features-JSF_2_integration">
+ <title>JSF 2 integration</title>
<para>
- Incomplete
+ RichFaces 4.0 has full support for JavaServer Faces (<acronym>JSF</acronym>) 2.
</para>
</section>
- <section id="sect-Migration_Guide-Changes_and_new_features-Standardized_naming">
- <title>Standardized naming</title>
+ <section id="sect-Migration_Guide-Changes_and_new_features-Standardized_attributes">
+ <title>Standardized attributes</title>
<para>
- Incomplete
+ Several component and event attribute names have been changed from those used in previous versions of RichFaces. The names have been changed to be more consistent with attribute names used by JavaServer Faces 2, so as to provide standardized usage. Many of the name changes also provide more consistency and cleanliness within the framework itself. Other attributes have been deprecated in favor of consistent functionality.
</para>
+ <section id="sect-Migration_Guide-Standardized_attributes-Name_changes">
+ <title>Name changes</title>
+ <para>
+ <xref linkend="tabl-Migration_Guide-Name_changes-Attribute_name_changes" /> lists attribute names that have been changed, and which components and events are affected.
+ </para>
+ <table id="tabl-Migration_Guide-Name_changes-Attribute_name_changes">
+ <title>Attribute name changes</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ Attribute details
+ </entry>
+ <entry>
+ Affected a4j components
+ </entry>
+ <entry>
+ Affected rich components
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>
+ <property>process</property>
+ </para>
+ <para>
+ Changed to <property>execute</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toggleControl></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:treeNode></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>reRender</property>
+ </para>
+ <para>
+ Changed to <property>render</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:ajaxValidator></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dragSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:extendedDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:scrollableDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:treeNode></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>eventsQueue</property>
+ </para>
+ <para>
+ Changed to <property>queue</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:ajaxValidator></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dragSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:scrollableDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toggleControl></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>limitToList</property>
+ </para>
+ <para>
+ Changed to <property>limitRender</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:ajaxValidator></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dragSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:scrollableDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toggleControl></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:treeNode></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>onbeforedomupdate</property>
+ </para>
+ <para>
+ Changed to <property>onsuccess</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ </entry>
+ <entry>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
+ <section id="sect-Migration_Guide-Standardized_attributes-Deprecated_attributes">
+ <title>Deprecated attributes</title>
+ <para>
+ <xref linkend="tabl-Migration_Guide-Deprecated_attributes-Deprecated_attributes" /> lists attributes which have been deprecated in RichFaces 4.0, along with preferred ways to replicate their functionality.
+ </para>
+ <table id="tabl-Migration_Guide-Deprecated_attributes-Deprecated_attributes">
+ <title>Deprecated attributes</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>
+ Attribute details
+ </entry>
+ <entry>
+ Affected a4j components
+ </entry>
+ <entry>
+ Affected rich components
+ </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <para>
+ <property>ignoreDupResponses</property>
+ </para>
+ <para>
+ Deprecated. Functionality moved to <property>queue</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:queue></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:ajaxValidator></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dragSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:scrollableDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toggleControl></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:treeNode></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>requestDelay</property>
+ </para>
+ <para>
+ Deprecated. Functionality moved to <property>queue</property> in 4.0.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:queue></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:ajaxValidator></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dragSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:scrollableDataTable></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <para>
+ <property>ajaxSingle</property>
+ </para>
+ <para>
+ Deprecated. Use <property>execute="@this"</property> in 4.0 instead.
+ </para>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:ajax></classname> (was <classname><a4j:support></classname>)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandButton></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:commandLink></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:form></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:jsFunction></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:poll></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:push></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ <entry>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><rich:calendar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataFilterSlider></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dataScroller></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:dropSupport></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:fileUpload></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:menuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuGroup></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:panelMenuItem></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:progressBar></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:simpleTogglePanel></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:suggestionBox></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tab></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toggleControl></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:toolTip></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:tree></classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><rich:treeNode></classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+
</section>
<section id="sect-Migration_Guide-Changes_and_new_features-Performance">
<title>Performance</title>
<para>
- Incomplete
+ The RichFaces framework has been extensively refined to provide better performance for applications. This includes improvements to bandwidth requirements for generated markup, size and number of required resources for Javascript and Cascading Style Sheets (<acronym>CSS</acronym>), and other general performance improvements.
</para>
+ <section id="sect-Migration_Guide-Performance-Bandwidth_for_generated_markup">
+ <title>Bandwidth for generated markup</title>
+ <para>
+ Several considerations have been made to improve the use of bandwidth when generating markup.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <acronym>XHTML</acronym> markup has been simplified and streamlined using best practices, such as avoiding tables for layout.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Default attribute values are not rendered.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Javascript use has been simplified with shorter function names and only one proxy call per form.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Yahoo!'s best practices for high performance have been implemented. Refer to <ulink url="http://developer.yahoo.com/performance/">http://developer.yahoo.com/performance/</ulink> for details on Yahoo!'s guidelines.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="sect-Migration_Guide-Performance-Resource_requirements">
+ <title>Resource requirements</title>
+ <para>
+ The three Javascript libraries previously used by the RichFaces framework have been consolidated and standardized into a single library for better performance.
+ </para>
+ <para>
+ Usage of Cascading Style Sheets (<acronym>CSS</acronym>) has been simplified, trimming out duplicate or otherwise unnecessary entries and better utilizing the cascading approach for attribute values.
+ </para>
+ </section>
+
</section>
- <section id="sect-Migration_Guide-Changes_and_new_features-New_features">
- <title>New features</title>
+ <section id="sect-Migration_Guide-Changes_and_new_features-Feature_changes">
+ <title>Feature changes</title>
<para>
- Incomplete
+ Features have been altered or added to existing components and behaviors in the RichFaces 4.0 framework. Refer to the <citetitle>Developer Guide</citetitle> for full details on how to make use of any new features.
</para>
+ <section id="sect-Migration_Guide-Feature_changes-Server_side_process_and_render_mechanisms">
+ <title>Server-side process and render mechanisms</title>
+ <para>
+ Some of the mechanisms for server-side processing and rendering have been altered.
+ </para>
+ <section id="sect-Migration_Guide-Server_side_process_and_render_mechanisms-Regions">
+ <title>Regions</title>
+ <para>
+ It is now possible to define zones for processing on the server-side without specifying <property>execute</property> definitions for every component. The <property>execute="@region"</property> property can be used to process regions defined on the server side.
+ </para>
+ <important>
+ <title>Important</title>
+ <para>
+ This approach is the different to that in <acronym>JSF 2</acronym>, which uses default values of <property>execute="@this"</property> and <property>render="@this"</property> if no other value is defined.
+ </para>
+ </important>
+ </section>
+
+ <section id="sect-Migration_Guide-Server_side_process_and_render_mechanisms-execute">
+ <title><property>execute</property></title>
+ <para>
+ The <property>execute</property> property has been extended to include the <literal>@region</literal> keyword, which facilitates the region rendering changes described in <xref linkend="sect-Migration_Guide-Server_side_process_and_render_mechanisms-Regions" />.
+ </para>
+ </section>
+
+ <section id="sect-Migration_Guide-Server_side_process_and_render_mechanisms-render">
+ <title><property>render</property></title>
+ <para>
+ The <property>render</property> property can also be defined from the server side, using actions and listeners.
+ </para>
+ </section>
+
+ <section id="sect-Migration_Guide-Server_side_process_and_render_mechanisms-Differences_between_JSF_and_RichFaces_mechanisms">
+ <title>Differences between <acronym>JSF</acronym> and RichFaces mechanisms</title>
+ <para>
+ JavaServer Faces (<acronym>JSF</acronym>) declares render and execute processes on the client side, while RichFaces declares server-side definitions of lists.
+ </para>
+ </section>
+
+ </section>
+
+ <section id="sect-Migration_Guide-Feature_changes-onbegin_event_attribute">
+ <title><property>onbegin</property> event attribute</title>
+ <para>
+ The <property>onbegin</property> attribute has been added to support <acronym>JSF</acronym> events with the type <literal>begin</literal>.
+ </para>
+ </section>
+
+ <section id="sect-Migration_Guide-Feature_changes-a4jcommandButton_and_a4jcommandLink">
+ <title><classname><a4j:commandButton></classname> and <classname><a4j:commandLink></classname></title>
+ <para>
+ Both the <classname><a4j:commandButton></classname> and <classname><a4j:commandLink></classname> use the <property>onclick</property> event attribute instead of the <property>onbegin</property> attribute.
+ </para>
+ </section>
+
+ <!--
+ <section>
+ <title><classname><a4j:jsFunction></classname></title>
+ <para>
+
+ </para>
+ </section>
+ -->
+ <section id="sect-Migration_Guide-Feature_changes-a4jlog">
+ <title><classname><a4j:log></classname></title>
+ <para>
+ The <classname><a4j:log></classname> behavior has had several features modified.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ It is now possible to switch levels on the client side.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The log can now be displayed inline with page markup, in a new browser window, or in the browser console.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ An application context parameter can now be defined to log all application pages.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="sect-Migration_Guide-Feature_changes-a4jmessage_and_a4jmessages">
+ <title><classname><a4j:message></classname> and <classname><a4j:messages></classname></title>
+ <para>
+ Both the <classname><a4j:message></classname> and <classname><a4j:messages></classname> components can be automatically updated by any Ajax request, except those requests with <property>limitRender = true</property>. Attributes from previously-passed states are now cleared.
+ </para>
+ </section>
+
+ <section id="sect-Migration_Guide-Feature_changes-a4joutputPanel">
+ <title><classname><a4j:outputPanel></classname></title>
+ <para>
+ The <classname><a4j:outputPanel></classname> component has had several features modified.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The default value for the <property>layout</property> attribute is now <literal>block</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The default value for the <property>ajaxRendered</property> attribute is now <literal>false</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ If a child component is not to be rendered, a placeholder element will be included to preserve the layout.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="sect-Migration_Guide-Feature_changes-a4jpush_and_a4jpoll">
+ <title><classname><a4j:push></classname> and <classname><a4j:poll></classname></title>
+ <para>
+ Both the <classname><a4j:push></classname> and <classname><a4j:poll></classname> behaviors now raise a client-side event. For <classname><a4j:push></classname>, this is the <property>ondataavailable</property> event, while for <classname><a4j:poll></classname> it is the <property>ontimeevent</property>.
+ </para>
+ </section>
+
+ <!--
+ <section>
+ <title><classname><a4j:region></classname></title>
+ <para>
+
+ </para>
+ </section>
+ -->
+ <section id="sect-Migration_Guide-Feature_changes-a4jstatus">
+ <title><classname><a4j:status></classname></title>
+ <para>
+ In RichFaces 4.0, <classname><a4j:status></classname> has been implemented as a component rather than a behavior, as it should have a representation in the Document Object Model (<acronym>DOM</acronym>) tree.
+ </para>
+ <para>
+ The <classname><a4j:status></classname> component has had several other features modified.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <classname><a4j:status></classname> no longer needs to be associated with a <classname><a4j:region></classname>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <classname><a4j:status></classname> can now report request errors. An additional <property>errorText</property> attribute and <literal>error</literal> facet have been added to show if an error was raised when a request completed.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The event attributes now include <property>onstart</property>, <property>onstop</property>, <property>onerror</property>, and <property>onsuccess</property>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Multiple statuses can be presented for the same view or form, or a separate status attached to each component.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
</section>
- <section id="sect-Migration_Guide-Changes_and_new_features-New_components">
- <title>New components</title>
+ <section id="sect-Migration_Guide-Changes_and_new_features-New_components_and_behaviors">
+ <title>New components and behaviors</title>
<para>
- Incomplete
+ Several new components and behaviors have been added to RichFaces 4.0, some of which replace the functionality of deprecated components and behaviors.
</para>
+ <section id="sect-Migration_Guide-New_components_and_behaviors-a4jajax">
+ <title><a4j:ajax></title>
+ <para>
+ The <classname><a4j:ajax</classname> behavior replaces the deprecated <classname><a4j:support></classname> behavior.
+ </para>
+ <para>
+ <classname><a4j:ajax></classname> uses <acronym>JSF 2</acronym>, and can be used to add Ajax capabilities to any non-Ajax JSF or RichFaces component. For details on how to use <classname><a4j:ajax></classname>, refer to the <citetitle>Developer Guide</citetitle>.
+ </para>
+ </section>
+
</section>
- <section id="sect-Migration_Guide-Changes_and_new_features-Deprecated_features">
- <title>Deprecated features</title>
+ <section id="sect-Migration_Guide-Changes_and_new_features-Deprecated_components_and_behaviors">
+ <title>Deprecated components and behaviors</title>
<para>
- Incomplete
+ Some components and behaviors have been deprecated in RichFaces 4.0. For the most part these items have their functionality replicated by another component or behavior.
</para>
+ <section id="sect-Migration_Guide-Deprecated_components_and_behaviors-a4jpage">
+ <title><a4j:page></title>
+ <para>
+ RichFaces 4.0 drops support for the <classname><a4j:page></classname> component. The component was previously used for solving incompatibility in the JavaServer Pages (<acronym>JSP</acronym>) environment with Apache MyFaces in early Ajax4jsf versions.
+ </para>
+ </section>
+
+ <section id="sect-Migration_Guide-Deprecated_components_and_behaviors-a4jsupport">
+ <title><a4j:support></title>
+ <para>
+ The <classname><a4j:support></classname> component had been deprecated and its functionality replaced by the <classname><a4j:ajax></classname> component. Refer to <xref linkend="sect-Migration_Guide-New_components_and_behaviors-a4jajax" /> for details.
+ </para>
+ </section>
+
</section>
-
- <section id="sect-Migration_Guide-Changes_and_new_features-Deprecated_components">
- <title>Deprecated components</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Migration_Guide-Changes_and_new_features-Other_changes">
- <title>Other changes</title>
- <para>
- Incomplete
- </para>
- </section>
</chapter>
Modified: root/docs/trunk/Migration_Guide/en-US/Introduction.xml
===================================================================
--- root/docs/trunk/Migration_Guide/en-US/Introduction.xml 2009-10-20 01:54:46 UTC (rev 15726)
+++ root/docs/trunk/Migration_Guide/en-US/Introduction.xml 2009-10-20 02:02:24 UTC (rev 15727)
@@ -5,7 +5,32 @@
<chapter id="chap-Migration_Guide-Introduction">
<title>Introduction</title>
<para>
- Incomplete
+ RichFaces 4.0 introduces many improvements and refinements to the already comprehensive RichFaces framework. Migrating your RichFaces projects to version 4.0 brings several advantages to your applications, including:
</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ complete integration with JavaServer Faces (<acronym>JSF</acronym>) 2.0, using new features and standardizing components;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ performance improvements throughout the components and core features;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ consistency throughout the framework, forming conventions and standards; and
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ simplification of project creation, build procedures, and application extension.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ This book guides you through the process of migrating to RichFaces 4.0, and highlights important changes that have been made to the framework and how they may affect your projects and applications.
+ </para>
</chapter>
Modified: root/docs/trunk/Migration_Guide/en-US/Revision_History.xml
===================================================================
--- root/docs/trunk/Migration_Guide/en-US/Revision_History.xml 2009-10-20 01:54:46 UTC (rev 15726)
+++ root/docs/trunk/Migration_Guide/en-US/Revision_History.xml 2009-10-20 02:02:24 UTC (rev 15727)
@@ -7,16 +7,16 @@
<simpara>
<revhistory>
<revision>
- <revnumber>1.0</revnumber>
- <date></date>
+ <revnumber>0.1</revnumber>
+ <date>October 20, 2009</date>
<author>
- <firstname></firstname>
- <surname></surname>
- <email></email>
+ <firstname>Sean</firstname>
+ <surname>Rogers</surname>
+ <email>serogers(a)redhat.com</email>
</author>
<revdescription>
<simplelist>
- <member></member>
+ <member>Basic first draft</member>
</simplelist>
</revdescription>
</revision>
Modified: root/docs/trunk/Migration_Guide/en-US/Upgrading.xml
===================================================================
--- root/docs/trunk/Migration_Guide/en-US/Upgrading.xml 2009-10-20 01:54:46 UTC (rev 15726)
+++ root/docs/trunk/Migration_Guide/en-US/Upgrading.xml 2009-10-20 02:02:24 UTC (rev 15727)
@@ -5,20 +5,110 @@
<chapter id="chap-Migration_Guide-Upgrading">
<title>Upgrading</title>
<para>
- Incomplete
+ Upgrading an existing project to use the RichFaces 4.0 framework only requires that the new libraries replace the old ones. For a complete installation guide for new projects, refer to the <citetitle>Developer Guide</citetitle>.
</para>
<section id="sect-Migration_Guide-Upgrading-Before_upgrading">
<title>Before upgrading</title>
<para>
- Incomplete
+ Ensure you make a back-up copy of any projects and settings before upgrading an existing RichFaces installation.
</para>
+ <para>
+ Check that the environment you are working in meets the RichFaces technical requirements listed in the <citetitle>Developer Guide</citetitle>.
+ </para>
</section>
<section id="sect-Migration_Guide-Upgrading-Installation">
<title>Installation</title>
- <para>
- Incomplete
- </para>
+ <procedure>
+ <step id="step-Migration_Guide-Installation-Download_RichFaces_packages">
+ <title>Download RichFaces packages</title>
+ <para>
+ If you have not already done so, download the RichFaces binaries from the RichFaces downloads page at <ulink url="http://www.jboss.org/richfaces/download/stable.html">http://www.jboss.org/richfaces/download/stable.html</ulink>.
+ </para>
+ </step>
+ <step id="step-Migration_Guide-Installation-Install_libraries">
+ <title>Install libraries</title>
+ <para>
+ Copy the following libraries from the RichFaces package to your application's <filename class="directory">WEB-INF/lib</filename> libraries directory:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename class="libraryfile">richfaces-api</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename class="libraryfile">richfaces-impl</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename class="libraryfile">core-ui</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Existing projects should already contain the following libraries; if not, they will need to be included in the libraries directory as well:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename class="libraryfile">commons-logging</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename class="libraryfile">commons-beanutils</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename class="libraryfile">slf4j-api</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename class="libraryfile">slf4j-log4j12</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ <step id="step-Migration_Guide-Installation-Namespace_and_taglib_declaration">
+ <title>Namespace and taglib declaration</title>
+ <para>
+ The RichFaces namespaces need to be declared in the project's XHTML pages as follows:
+ </para>
+
+<programlisting role="XML">
+<ui:composition
+xmlns="http://www.w3.org/1999/xhtml"
+xmlns:ui="http://java.sun.com/jsf/facelets"
+xmlns:a4j="http://richfaces.org/a4j"
+xmlns:rich="http://richfaces.org/rich">
+ ...
+</ui:composition>
+</programlisting>
+ <para>
+ Also add the RichFaces libraries to the JSP pages using <code>taglib</code>.
+ </para>
+
+<programlisting role="XML">
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+</programlisting>
+ <para>
+ The XHTML namespace and JSP inclusions are the same as those declared for existing projects.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ With RichFaces 4.0, it is no longer necessary to modify the <filename>web.xml</filename> and <filename>faces-config.xml</filename> files of a project to use the framework.
+ </para>
+ </note>
+ </step>
+ </procedure>
+
</section>
</chapter>
15 years, 2 months
JBoss Rich Faces SVN: r15726 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: SeanRogers
Date: 2009-10-19 21:54:46 -0400 (Mon, 19 Oct 2009)
New Revision: 15726
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
Log:
RF-7997 - fixed headers in Common Ajax Attributes table
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2009-10-20 01:32:17 UTC (rev 15725)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2009-10-20 01:54:46 UTC (rev 15726)
@@ -1065,10 +1065,9 @@
<thead>
<row>
<entry>Attribute</entry>
-
<entry>Description</entry>
+ <entry>A4J Components</entry>
<entry>Rich Components</entry>
- <entry>A4j Components</entry>
</row>
</thead>
<tbody valign="top">
@@ -1316,13 +1315,12 @@
<para><rich:dropSupport></para>
<para><rich:menuItem></para>
<para><rich:tree></para>
- <para><rich:panelMenuGroup></para>
- <para><rich:panelMenuGroup></para>
- <para><rich:panelMenuItem></para>
- <para><rich:simpleTogglePanel></para>
- <para><rich:tab></para>
- <para><rich:calendar></para>
- <para><rich:suggestionbox></para>
+ <para><rich:panelMenuGroup></para>
+ <para><rich:panelMenuItem></para>
+ <para><rich:simpleTogglePanel></para>
+ <para><rich:tab></para>
+ <para><rich:calendar></para>
+ <para><rich:suggestionbox></para>
</entry>
</row>
<row>
15 years, 2 months
JBoss Rich Faces SVN: r15724 - branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/resource.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-10-19 19:30:41 -0400 (Mon, 19 Oct 2009)
New Revision: 15724
Modified:
branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/resource/BaseResourceRenderer.java
Log:
use proper method to write resource url.
Modified: branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/resource/BaseResourceRenderer.java
===================================================================
--- branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/resource/BaseResourceRenderer.java 2009-10-19 16:08:04 UTC (rev 15723)
+++ branches/community/3.3.X/framework/impl/src/main/java/org/ajax4jsf/resource/BaseResourceRenderer.java 2009-10-19 23:30:41 UTC (rev 15724)
@@ -61,7 +61,7 @@
writer.startElement(getTag(), null);
String attrs[][] = getCommonAttrs();
if (null != getHrefAttr()) {
- writer.writeAttribute(getHrefAttr(), resource.getUri(context,
+ writer.writeURIAttribute(getHrefAttr(), resource.getUri(context,
data), null);
}
if (null != attrs) {
15 years, 2 months
JBoss Rich Faces SVN: r15723 - branches/community/3.3.X/samples/richfaces-demo/functional-test.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-10-19 12:08:04 -0400 (Mon, 19 Oct 2009)
New Revision: 15723
Modified:
branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
Log:
- rf-demo ftest - Cargo container configuration changed to prevent timeouts of deploying: removed pingUrl and switched order of start,deploy to deploy,start (JBQA-2616)
Modified: branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml 2009-10-19 14:15:55 UTC (rev 15722)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml 2009-10-19 16:08:04 UTC (rev 15723)
@@ -232,8 +232,8 @@
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
- <goal>start</goal>
<goal>deploy</goal>
+ <goal>start</goal>
</goals>
</execution>
<execution>
@@ -267,7 +267,6 @@
<groupId>org.richfaces.samples</groupId>
<artifactId>richfaces-demo</artifactId>
<type>war</type>
- <pingURL>${context.root}${context.path}</pingURL>
<properties>
<context>${context.path}</context>
</properties>
15 years, 2 months
JBoss Rich Faces SVN: r15722 - in branches/community/3.3.X/test-applications: regression-test and 15 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ppitonak(a)redhat.com
Date: 2009-10-19 10:15:55 -0400 (Mon, 19 Oct 2009)
New Revision: 15722
Added:
branches/community/3.3.X/test-applications/regression-test/
branches/community/3.3.X/test-applications/regression-test/.svnignore
branches/community/3.3.X/test-applications/regression-test/pom.xml
branches/community/3.3.X/test-applications/regression-test/src/
branches/community/3.3.X/test-applications/regression-test/src/main/
branches/community/3.3.X/test-applications/regression-test/src/main/java/
branches/community/3.3.X/test-applications/regression-test/src/main/resources/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/META-INF/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/META-INF/MANIFEST.MF
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/classes/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/faces-config.xml
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/lib/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/web.xml
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/1.png
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/2.png
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/3.png
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/4.png
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/5.png
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/index.jsp
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/index.xhtml
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/rf7994.xhtml
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/templates/
branches/community/3.3.X/test-applications/regression-test/src/main/webapp/templates/template.xhtml
branches/community/3.3.X/test-applications/regression-test/src/test/
branches/community/3.3.X/test-applications/regression-test/src/test/java/
branches/community/3.3.X/test-applications/regression-test/src/test/java/org/
branches/community/3.3.X/test-applications/regression-test/src/test/java/org/jboss/
branches/community/3.3.X/test-applications/regression-test/src/test/java/org/jboss/richfaces/
branches/community/3.3.X/test-applications/regression-test/src/test/java/org/jboss/richfaces/samples/
branches/community/3.3.X/test-applications/regression-test/src/test/java/org/jboss/richfaces/samples/tictactoe/
Log:
Added a project for manual testing of regressions.
Added: branches/community/3.3.X/test-applications/regression-test/.svnignore
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/.svnignore (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/.svnignore 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,4 @@
+.project
+.settings
+.classpath
+target
Added: branches/community/3.3.X/test-applications/regression-test/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/pom.xml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/pom.xml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.richfaces</groupId>
+ <artifactId>regression-test</artifactId>
+ <name>Regression test application</name>
+ <packaging>war</packaging>
+ <version>3.3.3-SNAPSHOT</version>
+ <description>Application for manual testing of regressions.</description>
+ <url>http://www.jboss.org/richfaces</url>
+ <inceptionYear>2009</inceptionYear>
+ <organization>
+ <name>Red Hat, Inc.</name>
+ <url>http://www.redhat.com</url>
+ </organization>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <build>
+ <finalName>regression-test</finalName>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>richfaces</id>
+ <url>http://repository.jboss.org/maven2</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.ui</groupId>
+ <artifactId>richfaces-ui</artifactId>
+ <version>3.3.2.SR1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.facelets</groupId>
+ <artifactId>jsf-facelets</artifactId>
+ <version>1.1.15.B1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>1.2_12</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/META-INF/MANIFEST.MF
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/META-INF/MANIFEST.MF (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/META-INF/MANIFEST.MF 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PROCESS model-entity="JSFProcess">
+ <PROCESS-ITEM NAME="rules:#pages#index.xhtml" PATH="/pages/index.xhtml"
+ SHAPE="208,72,50,25" model-entity="JSFProcessGroup"/>
+ <PROCESS-ITEM NAME="rules:#pages#*" PATH="/pages/*" SHAPE="32,48,53,42" model-entity="JSFProcessGroup">
+ <PROCESS-ITEM ID="rules:#pages#*:0" NAME="item" PATH="/pages/*" model-entity="JSFProcessItem">
+ <PROCESS-ITEM-OUTPUT ID="index::#pages#index.xhtml" NAME="output"
+ PATH="/pages/index.xhtml" TARGET="rules:#pages#index.xhtml"
+ TITLE="index" model-entity="JSFProcessItemOutput"/>
+ </PROCESS-ITEM>
+ </PROCESS-ITEM>
+</PROCESS>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/faces-config.xml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/faces-config.xml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+ <managed-bean>
+ <managed-bean-name>gameBean</managed-bean-name>
+ <managed-bean-class>org.jboss.richfaces.samples.tictactoe.GameBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <navigation-rule>
+ <from-view-id>/pages/*</from-view-id>
+ <navigation-case>
+ <from-outcome>index</from-outcome>
+ <to-view-id>/pages/index.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
+ <application>
+ <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+ </application>
+</faces-config>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/WEB-INF/web.xml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>Tic Tac Toe</display-name>
+ <context-param>
+ <param-name>javax.faces.CONFIG_FILES</param-name>
+ <param-value>/WEB-INF/faces-config.xml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>facelets.VIEW_MAPPINGS</param-name>
+ <param-value>*.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.richfaces.SKIN</param-name>
+ <param-value>DEFAULT</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING</param-name>
+ <param-value>enable</param-value>
+ </context-param>
+ <filter>
+ <display-name>RichFaces Filter</display-name>
+ <filter-name>richfaces</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>richfaces</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ </filter-mapping>
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>/faces/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/1.png
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/2.png
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/3.png
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/4.png
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/4.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/5.png
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/images/rf7994/5.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/index.jsp
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/index.jsp (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/index.jsp 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,11 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+
+<html>
+
+<head></head>
+
+ <body>
+ <jsp:forward page="/pages/index.jsf" />
+ </body>
+
+</html>
\ No newline at end of file
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/index.xhtml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/index.xhtml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/index.xhtml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:a4j="http://richfaces.org/a4j">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="title">Regression Tests</ui:define>
+
+ <ui:define name="body">
+ <h1>Regression Test Cases</h1>
+
+ <h:form>
+ <table>
+ <tr>
+ <td style="width: 150px;"><a id="rf7994-tc" href="/regression-test/pages/rf7994.jsf">Menu Item</a></td>
+ <td><a id="rf7994-jira" href="https://jira.jboss.org/jira/browse/RF-7994">https://jira.jboss.org/jira/browse/RF-7994</a></td>
+ </tr>
+ </table>
+ </h:form>
+ </ui:define>
+
+</ui:composition>
+</body>
+</html>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/rf7994.xhtml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/rf7994.xhtml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/pages/rf7994.xhtml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:a4j="http://richfaces.org/a4j">
+
+<body>
+<ui:composition template="/templates/template.xhtml">
+
+ <ui:define name="title">Menu Item - RF-7994</ui:define>
+
+ <ui:define name="body">
+ <h1>Menu Item</h1>
+ <h3><a href="https://jira.jboss.org/jira/browse/RF-7994">https://jira.jboss.org/jira/browse/RF-7994</a></h3>
+
+ <h:form>
+ <h:commandLink id="back1" action="index" value="Back to main page"/>
+ <h:panelGrid columns="3" class="bug-table">
+ <h:outputText value="Component"/>
+ <h:outputText value="WRONG" style="color: red;"/>
+ <h:outputText value="Description"/>
+ <rich:dropDownMenu>
+ <f:facet name="label">
+ <h:outputText value="titi" />
+ </f:facet>
+ <rich:menuGroup value="bob">
+ <rich:menuItem value="bob1" />
+ <rich:menuItem value="bob2" disabled="true" />
+ <rich:menuItem value="bob3" />
+ <rich:menuItem value="bob4" />
+ </rich:menuGroup>
+ <rich:menuGroup value="toto">
+ <rich:menuItem value="toto1" />
+ <rich:menuItem value="toto2" />
+ <rich:menuItem value="toto3" />
+ </rich:menuGroup>
+ <rich:menuItem value="coucou" />
+ </rich:dropDownMenu>
+
+ <h:panelGroup>
+ <h:graphicImage value="/images/rf7994/1.png"/>
+ <h:graphicImage value="/images/rf7994/2.png"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ <ol>
+ <li>hover over "titi" and verify that menu is next to it</li>
+ <li>open submenu "bob" and verify that the second item is disabled and other are rendered well</li>
+ <li>open submenu "toto" and verify that submenu is rendered correctly</li>
+ </ol>
+ </h:panelGroup>
+
+ <rich:dropDownMenu>
+ <f:facet name="label">
+ <h:outputText value="titi" />
+ </f:facet>
+ <rich:menuGroup value="bob">
+ <rich:menuItem value="bob1" />
+ <rich:menuItem value="bob2" disabled="true" />
+ <rich:menuItem value="bob3" disabled="true" />
+ <rich:menuItem value="bob4" />
+ </rich:menuGroup>
+ <rich:menuGroup value="toto">
+ <rich:menuItem value="toto1" />
+ <rich:menuItem value="toto2" />
+ <rich:menuItem value="toto3" />
+ </rich:menuGroup>
+ <rich:menuItem value="coucou" />
+ </rich:dropDownMenu>
+
+ <h:panelGroup>
+ <h:graphicImage value="/images/rf7994/3.png"/>
+ <h:graphicImage value="/images/rf7994/4.png"/>
+ <h:graphicImage value="/images/rf7994/5.png"/>
+ </h:panelGroup>
+
+ <h:panelGroup>
+ <ol>
+ <li>verify that "bob4" is not rendered outside of drop down menu</li>
+ <li>open menu "bob", verify that "bob2" and "bob3" are disabled and that "bob3" is rendered correctly</li>
+ <li>open menu "toto" and verify that submenu is rendered next to main menu</li>
+ </ol>
+ </h:panelGroup>
+
+ </h:panelGrid>
+ <h:commandLink id="back2" action="index" value="Back to main page"/>
+ </h:form>
+
+ </ui:define>
+
+</ui:composition>
+</body>
+</html>
Added: branches/community/3.3.X/test-applications/regression-test/src/main/webapp/templates/template.xhtml
===================================================================
--- branches/community/3.3.X/test-applications/regression-test/src/main/webapp/templates/template.xhtml (rev 0)
+++ branches/community/3.3.X/test-applications/regression-test/src/main/webapp/templates/template.xhtml 2009-10-19 14:15:55 UTC (rev 15722)
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+<head>
+ <title><ui:insert name="title">Default title</ui:insert></title>
+ <meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" />
+ <style type="text/css">
+ .table-header {
+ font: bolder; #
+ padding: 2px;
+ margin: 2px;
+ width: 110px;
+ border: 1px solid;
+ }
+ body {
+ background-color: #{richSkin.generalBackgroundColor};
+ }
+ table.bug-table {
+ border-width: 1px 1px 1px 1px;
+ border-spacing: 2px;
+ border-style: none none none none;
+ border-color: blue blue blue blue;
+ border-collapse: separate;
+ background-color: rgb(255, 255, 240);
+ }
+ table.bug-table th {
+ border-width: 1px 1px 1px 1px;
+ padding: 3px 3px 3px 3px;
+ border-style: dotted dotted dotted dotted;
+ border-color: blue blue blue blue;
+ background-color: white;
+ }
+ table.bug-table td {
+ border-width: 1px 1px 1px 1px;
+ padding: 3px 3px 3px 3px;
+ border-style: dotted dotted dotted dotted;
+ border-color: blue blue blue blue;
+ background-color: white;
+ }
+</style>
+</head>
+
+<body>
+<ui:insert name="body">
+ <p>Body of the page.</p>
+</ui:insert>
+</body>
+
+</html>
15 years, 2 months
JBoss Rich Faces SVN: r15721 - root/ui-sandbox/trunk/components/tables/ui/src/main/templates/org/richfaces/renderkit/html.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-10-19 05:12:36 -0400 (Mon, 19 Oct 2009)
New Revision: 15721
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/templates/org/richfaces/renderkit/html/simpletable.template.xml
Log:
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/templates/org/richfaces/renderkit/html/simpletable.template.xml
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/templates/org/richfaces/renderkit/html/simpletable.template.xml 2009-10-19 09:10:58 UTC (rev 15720)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/templates/org/richfaces/renderkit/html/simpletable.template.xml 2009-10-19 09:12:36 UTC (rev 15721)
@@ -10,6 +10,5 @@
<cdk:body>
<cdk:call expression="encodeTBody(context,component);" />
</cdk:body>
-
</table>
</cdk:root>
\ No newline at end of file
15 years, 2 months
JBoss Rich Faces SVN: r15720 - in root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces: component/html and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-10-19 05:10:58 -0400 (Mon, 19 Oct 2009)
New Revision: 15720
Added:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumnGroup.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIDataTable.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/CellRenderer.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/HeaderEncodeStrategy.java
Removed:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumn.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISimpleDataTable.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/html/HtmlColumn.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/SimpleDataTableRendererBase.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/TableHolder.java
Log:
add asupport for the header, footer, caption facets
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -30,16 +30,17 @@
* @author asmirnov
*
*/
-class ColumnsIterator implements Iterator<UIColumn>{
+class ColumnsIterator implements Iterator<UIComponent> {
- private UIColumn next;
+ private UIComponent next;
private boolean initialized = false;
protected Iterator<UIComponent> childrenIterator;
- public ColumnsIterator(UISimpleDataTable dataTable) {
+
+ public ColumnsIterator(UIComponent dataTable) {
this.childrenIterator = dataTable.getChildren().iterator();
}
@@ -51,11 +52,11 @@
return null != next;
}
- public UIColumn next() {
+ public UIComponent next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
- UIColumn result = next;
+ UIComponent result = next;
next = nextColumn();
return result;
}
@@ -64,16 +65,14 @@
throw new UnsupportedOperationException("Iterator is read-only");
}
- protected UIColumn nextColumn(){
- UIColumn nextColumn = null;
+ protected UIComponent nextColumn(){
while (childrenIterator != null && childrenIterator.hasNext()) {
UIComponent child = childrenIterator.next();
- if(child instanceof UIColumn){
- nextColumn = (UIColumn)child;
- break;
+ if(child instanceof UIColumn || child instanceof Column){
+ return child;
}
}
- return nextColumn;
+ return null;
}
}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,78 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+
+class DataIterator extends ColumnsIterator {
+
+ protected Iterator<UIComponent> facetsIterator;
+
+ public DataIterator(UIComponent dataTable) {
+ super(dataTable);
+ facetsIterator = dataTable.getFacets().values().iterator();
+ }
+
+ @Override
+ protected UIComponent nextColumn() {
+ UIComponent nextColumn = null;
+ while (null == nextColumn && childrenIterator.hasNext()) {
+ UIComponent child = childrenIterator.next();
+ if (child.isRendered()) {
+ if (child instanceof UIColumn || child instanceof Column) {
+ nextColumn = child;
+ } /*else if (checkAjaxComponent(child)) {
+ nextColumn = child;
+ } */
+ }
+ }
+ /*
+ while (null == nextColumn && facetsIterator.hasNext()) {
+ UIComponent child = facetsIterator.next();
+ if (checkAjaxComponent(child)) {
+ nextColumn = child;
+ break;
+ }
+ }*/
+ return nextColumn;
+ }
+
+ /**
+ * @param child
+ * @return
+ */
+ protected Iterator<UIComponent> getColumnChildrenIterator(UIComponent child) {
+ return child.getChildren().iterator();
+ }
+
+ /**
+ * @param child
+ * @return
+ */
+ /*
+ protected boolean checkAjaxComponent(UIComponent child) {
+ return child instanceof AjaxSupport || child instanceof Dropzone;
+ }
+ */
+}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,106 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+
+class FixedChildrenIterator extends DataIterator {
+
+ private Iterator<UIComponent> currentColumnIterator;
+
+ public FixedChildrenIterator(UIComponent dataTable) {
+ super(dataTable);
+ }
+
+ @Override
+ protected UIComponent nextColumn() {
+ UIComponent nextColumn = null;
+ if (null != currentColumnIterator) {
+ nextColumn = currentColumnIterator.next();
+ checkNextColumnChild();
+ } else {
+ while (null == nextColumn && childrenIterator.hasNext()) {
+ UIComponent child = childrenIterator.next();
+ if (child instanceof UIColumn || child instanceof Column) {
+ boolean rendered = true;
+ try {
+ rendered = child.isRendered();
+ } catch (Exception e) {
+ // This exception can be thrown for a header/footer
+ // facets
+ // there column rendered attribute was binded to a row
+ // variable.
+ }
+ if (rendered) {
+ Iterator<UIComponent> iterator = getColumnChildrenIterator(child);
+ if (iterator.hasNext()) {
+ currentColumnIterator = iterator;
+ nextColumn = currentColumnIterator.next();
+ checkNextColumnChild();
+ }
+
+ }
+ } /*else if (checkAjaxComponent(child)) {
+ nextColumn = child;
+ }*/
+ }
+ }
+ if (null == nextColumn) {
+ nextColumn = getNextFacet();
+ }
+ return nextColumn;
+ }
+
+ /**
+ * @param nextColumn
+ * @return
+ */
+ protected UIComponent getNextFacet() {
+ UIComponent nextColumn = null;
+ /*while (null == nextColumn && facetsIterator.hasNext()) {
+ UIComponent child = facetsIterator.next();
+ if (checkAjaxComponent(child)) {
+ nextColumn = child;
+ }
+ }*/
+ return nextColumn;
+ }
+
+ /*@Override
+ protected boolean checkAjaxComponent(UIComponent child) {
+ return !super.checkAjaxComponent(child);
+ }*/
+
+ @Override
+ protected Iterator<UIComponent> getColumnChildrenIterator(UIComponent child) {
+ return child.getFacets().values().iterator();
+ }
+
+ protected void checkNextColumnChild() {
+ if (!currentColumnIterator.hasNext()) {
+ currentColumnIterator = null;
+ }
+ }
+
+}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,39 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+package org.richfaces.component;
+
+import javax.faces.component.UIComponent;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class SubtableFixedChildrenIterator extends FixedChildrenIterator {
+
+ public SubtableFixedChildrenIterator(UIComponent dataTable) {
+ super(dataTable);
+ }
+
+ @Override
+ protected UIComponent getNextFacet() {
+ return null;
+ }
+}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumn.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumn.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumn.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -1,10 +1,6 @@
package org.richfaces.component;
-/**
- * @author Anton Belevich
- *
- */
-public class UIColumn extends javax.faces.component.UIColumn {
+public abstract class UIColumn extends javax.faces.component.UIColumn implements Column {
}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumnGroup.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumnGroup.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIColumnGroup.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,57 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIPanel;
+
+/**
+ * JSF component class
+ *
+ */
+public abstract class UIColumnGroup extends UIPanel implements Row {
+
+ public static final String COMPONENT_TYPE = "org.richfaces.Colgroup";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.Colgroup";
+
+ public Iterator<UIComponent> columns(){
+ return new ColumnsIterator(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.component.Column#isBreakBefore()
+ */
+ public boolean isBreakBefore() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.component.Column#setBreakBefore(boolean)
+ */
+ public void setBreakBefore(boolean newBreakBefore) {
+ throw new IllegalStateException("Property 'breakBefore' for subtable is read-only");
+ }
+
+}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIDataTable.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UIDataTable.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,25 @@
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIComponent;
+
+public class UIDataTable extends UISequence{
+
+ public Iterator<UIComponent> columns() {
+ return new ColumnsIterator(this);
+ }
+
+ public UIComponent getHeader() {
+ return getFacet("header");
+ }
+
+ public UIComponent getFooter() {
+ return getFacet("footer");
+ }
+
+ public UIComponent getCaption() {
+ return getFacet("caption");
+ }
+
+}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISimpleDataTable.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISimpleDataTable.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISimpleDataTable.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -1,6 +1,5 @@
package org.richfaces.component;
-import java.util.Iterator;
@@ -10,9 +9,5 @@
*
*/
-public abstract class UISimpleDataTable extends UISequence {
-
- public Iterator<UIColumn> columns() {
- return new ColumnsIterator(this);
- }
+public abstract class UISimpleDataTable extends UIDataTable {
}
\ No newline at end of file
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,81 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import javax.faces.component.UIComponent;
+
+
+/**
+ * JSF component class
+ *
+ */
+public abstract class UISubTable extends UIDataTable implements Row {
+
+ public static final String COMPONENT_TYPE = "org.richfaces.SubTable";
+
+ public static final String COMPONENT_FAMILY = "org.richfaces.SubTable";
+
+
+ @Override
+ public Iterator<UIComponent> fixedChildren() {
+ return new SubtableFixedChildrenIterator(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.component.Column#isBreakBefore()
+ */
+ public boolean isBreakBefore() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.component.Column#setBreakBefore(boolean)
+ */
+ public void setBreakBefore(boolean newBreakBefore) {
+ throw new IllegalStateException("Property 'breakBefore' for subtable is read-only");
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.component.UIDataTable#columns()
+ */
+ public Iterator<UIComponent> columns() {
+ return super.columns();
+ }
+
+ /**
+ * @return the sortExpression
+ */
+ public String getSortExpression() {
+ // SubTable is not sortable element.
+ return null;
+ }
+
+ /**
+ * @param sortExpression the sortExpression to set
+ */
+ public void setSortExpression(String sortExpression) {
+ // Do nothing - subtable is not sortable element;
+ }
+
+}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/html/HtmlColumn.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/html/HtmlColumn.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/html/HtmlColumn.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -1,8 +1,67 @@
package org.richfaces.component.html;
+import javax.el.MethodExpression;
+
import org.richfaces.component.UIColumn;
+import org.richfaces.model.Ordering;
-public class HtmlColumn extends UIColumn{
+public class HtmlColumn extends UIColumn {
public static final String COMPONENT_TYPE = "org.richfaces.Column";
public static final String COMPONENT_FAMILY = "org.richfaces.Column";
+
+ public MethodExpression getFilterMethod() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ public String getFilterValue() {
+ return null;
+ }
+ public String getSortExpression() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ public Ordering getSortOrder() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ public boolean isBreakBefore() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ public boolean isSelfSorted() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ public boolean isSortable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ public void setBreakBefore(boolean newBreakBefore) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setFilterMethod(MethodExpression methodExpression) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setFilterValue(String filterValue) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setSelfSorted(boolean selfSorted) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setSortExpression(String sortExpression) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setSortOrder(Ordering sortOrder) {
+ // TODO Auto-generated method stub
+
+ }
+ public void setSortable(boolean sortable) {
+ // TODO Auto-generated method stub
+ }
+
}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractRowsRenderer.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -22,6 +22,7 @@
package org.richfaces.renderkit;
import java.io.IOException;
+import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -31,7 +32,9 @@
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.renderkit.RendererBase;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.component.Row;
import org.richfaces.component.UIDataAdaptor;
+import org.richfaces.component.UIDataTable;
/**
* @author shura
@@ -49,7 +52,7 @@
{"onmouseout","onRowMouseOut"}
};
-/*
+
public static final String ROW_CLASS_KEY =
AbstractRowsRenderer.class.getName() + ".rowClass";
@@ -64,7 +67,7 @@
public static final String SKIN_FIRST_ROW_CLASS_KEY =
AbstractRowsRenderer.class.getName() + ".firstRowSkinClass";
-*/
+
/*
* (non-Javadoc)
*
@@ -83,15 +86,15 @@
encodeOneRow(facesContext, holder);
writer.endElement(HTML.TR_ELEMENT);
}catch (IOException e) {
- //???
+ //TODO: seems we need add throws IOException ???
}
holder.nextRow();
return DataVisitResult.CONTINUE;
}
- public void encodeRows(FacesContext facesContext, UIComponent component) throws IOException {
- encodeRows(facesContext, component, new TableHolder((UIDataAdaptor) component));
+ public void encodeRows(FacesContext facesContext, UIDataTable table) throws IOException {
+ encodeRows(facesContext, table, new TableHolder(table));
}
@@ -103,9 +106,9 @@
* @param component
* @throws IOException
*/
- protected void encodeRows(FacesContext context, UIComponent component, TableHolder tableHolder)
+ protected void encodeRows(FacesContext context, UIDataTable component, TableHolder tableHolder)
throws IOException {
- UIDataAdaptor table = (UIDataAdaptor) component;
+ UIDataTable table = component;
Object key = table.getRowKey();
table.captureOrigValue(context);
@@ -139,15 +142,15 @@
return true;
}
- public void encodeChildren(FacesContext context, UIComponent component)
- throws IOException {
- encodeRows(context, component);
+ public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
+ if(component instanceof UIDataTable) {
+ encodeRows(context, (UIDataTable)component);
+ }
}
- public void encodeCaption(FacesContext context, UIDataAdaptor table) throws IOException {
- /*
-
- UIComponent caption = table.getFacet("caption");
+ public void encodeCaption(FacesContext context, UIDataTable table) throws IOException {
+
+ UIComponent caption = table.getCaption();
if (caption == null) {
return;
}
@@ -171,7 +174,7 @@
renderChild(context, caption);
writer.endElement("caption");
- */
+
}
/**
@@ -208,7 +211,7 @@
protected void encodeStyleClass(ResponseWriter writer, Object parentPredefined, Object predefined,
Object parent, Object custom) throws IOException {
- /*
+
StringBuffer styleClass = new StringBuffer();
// Construct predefined classes
@@ -227,12 +230,12 @@
}
if (styleClass.length() > 0) {
writer.writeAttribute(HTML.class_ATTRIBUTE, styleClass, "styleClass");
- } */
+ }
}
protected void encodeStyle(ResponseWriter writer, Object parentPredefined,
Object predefined, Object parent, Object custom) throws IOException {
- /*
+
StringBuffer style = new StringBuffer();
// Construct predefined styles
if (null != parentPredefined) {
@@ -250,7 +253,7 @@
if (style.length() > 0) {
writer.writeAttribute("style", style, "style");
}
- */
+
}
@@ -273,7 +276,7 @@
protected void encodeCellChildren(FacesContext context, UIComponent cell,
String skinFirstRowClass, String skinRowClass, String rowClass,
String skinCellClass, String cellClass) throws IOException {
- /*
+
Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
// Save top level class parameters ( if any ), and put new for this
// component
@@ -310,29 +313,29 @@
requestMap.put(SKIN_FIRST_ROW_CLASS_KEY, savedSkinFirstRowClass);
requestMap.put(SKIN_ROW_CLASS_KEY, savedSkinRowClass);
requestMap.put(SKIN_CELL_CLASS_KEY, savedSkinCellClass);
- */
+
}
protected void encodeTableHeaderFacet(FacesContext context, int columns, ResponseWriter writer, UIComponent footer, String skinFirstRowClass, String skinRowClass, String skinCellClass, String footerClass, String element) throws IOException {
-// boolean isColgroup = footer instanceof Row;
-// if (!isColgroup) {
-// writer.startElement("tr", footer);
-// encodeStyleClass(writer, null, skinFirstRowClass, footerClass, null);
-// writer.startElement(element, footer);
-// encodeStyleClass(writer, null, skinCellClass, footerClass, null);
-// if (columns > 0) {
-// writer.writeAttribute("colspan", String.valueOf(columns), null);
-// }
-// writer.writeAttribute("scope", "colgroup", null);
-// }
-//
-// encodeCellChildren(context, footer, skinFirstRowClass, skinRowClass,
-// footerClass, skinCellClass, null);
-//
-// if (!isColgroup) {
-// writer.endElement(element);
-// writer.endElement("tr");
-// }
+ boolean isColgroup = footer instanceof Row;
+ if (!isColgroup) {
+ writer.startElement("tr", footer);
+ encodeStyleClass(writer, null, skinFirstRowClass, footerClass, null);
+ writer.startElement(element, footer);
+ encodeStyleClass(writer, null, skinCellClass, footerClass, null);
+ if (columns > 0) {
+ writer.writeAttribute("colspan", String.valueOf(columns), null);
+ }
+ writer.writeAttribute("scope", "colgroup", null);
+ }
+
+ encodeCellChildren(context, footer, skinFirstRowClass, skinRowClass,
+ footerClass, skinCellClass, null);
+
+ if (!isColgroup) {
+ writer.endElement(element);
+ writer.endElement("tr");
+ }
}
}
Deleted: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -1,70 +0,0 @@
-package org.richfaces.renderkit;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import javax.faces.application.ResourceDependencies;
-import javax.faces.application.ResourceDependency;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-
-import org.ajax4jsf.renderkit.RendererUtils.HTML;
-import org.richfaces.component.UIColumn;
-import org.richfaces.component.UIDataAdaptor;
-import org.richfaces.component.UISimpleDataTable;
-
-@ResourceDependencies({
- @ResourceDependency(library = "javax.faces", name = "jsf.js"),
- @ResourceDependency(name = "jquery.js"),
- @ResourceDependency(name = "richfaces.js")
-})
-public abstract class AbstractTableRenderer extends AbstractRowsRenderer {
-
- public void encodeTableStructure(FacesContext context, UIComponent component) throws IOException{
- ResponseWriter writer = context.getResponseWriter();
- writer.writeText("Encoding dataTable caption, colgroup, defenitions, headers etc",component, null);
- }
-
- @Override
- public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
- encodeTBody(context, (UIDataAdaptor) component);
- }
-
- public void encodeTBody (FacesContext context, UIDataAdaptor table) throws IOException {
- String clientId = table.getClientId(context);
- ResponseWriter writer = context.getResponseWriter();
- writer.startElement("tbody", table);
- writer.writeAttribute("id", clientId + ":tb", null);
- encodeRows(context, table);
- writer.endElement("tbody");
- }
-
-
- @Override
- public void encodeOneRow(FacesContext facesContext, TableHolder holder) throws IOException {
- ResponseWriter writer = facesContext.getResponseWriter();
- UISimpleDataTable table = (UISimpleDataTable)holder.getTable();
- Iterator<UIColumn> columns = table.columns();
- while (columns.hasNext()) {
- UIColumn column = columns.next();
- if(column.isRendered()) {
- encodeRowStart(writer, column);
- encodeRow(facesContext, writer, column);
- encodeRowEnd(writer, column);
- }
- }
- }
-
- private void encodeRowStart(ResponseWriter writer, UIColumn column) throws IOException {
- writer.startElement(HTML.td_ELEM, column);
- }
-
- private void encodeRowEnd(ResponseWriter writer, UIColumn column) throws IOException {
- writer.endElement(HTML.td_ELEM);
- }
-
- private void encodeRow(FacesContext facesContext, ResponseWriter writer, UIColumn column) throws IOException {
- renderChildren(facesContext, column);
- }
-}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/CellRenderer.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/CellRenderer.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/CellRenderer.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,133 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.util.Map;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+import org.ajax4jsf.renderkit.RendererBase;
+
+/**
+ * @author shur
+ * modified by Alexej Kushunin
+ *
+ */
+public class CellRenderer extends RendererBase {
+
+ public String styleClass(FacesContext context , UIComponent component){
+ StringBuffer styleClass = new StringBuffer();
+ // Construct predefined classes
+ Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
+ Object parentPredefined = requestMap.get(AbstractRowsRenderer.SKIN_CELL_CLASS_KEY);
+ if (null != parentPredefined) {
+ styleClass.append(parentPredefined).append(" ");
+ } else {
+ styleClass.append("rich-table-cell ");
+ }
+ // Append class from parent component.
+ Object parent = requestMap.get(AbstractRowsRenderer.CELL_CLASS_KEY);
+ if (null != parent) {
+ styleClass.append(parent).append(" ");
+ }
+ Object custom = component.getAttributes().get("styleClass");
+ if (null != custom) {
+ styleClass.append(custom);
+ }
+ return styleClass.toString();
+ }
+
+ protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
+
+ super.doEncodeBegin(writer, context, component);
+ java.lang.String clientId = component.getClientId(context);
+ boolean isHeader = (styleClass(context, component)).contains("header");
+ if(isHeader)
+ {
+ writer.startElement("th", component);
+
+ }else{
+
+ writer.startElement("td", component);
+ }
+
+
+ getUtils().writeAttribute(writer, "class", styleClass(context,component) );
+ getUtils().writeAttribute(writer, "id", clientId );
+ getUtils().encodeAttributesFromArray(context,component,new String[] {
+ "abbr" ,
+ "align" ,
+ "axis" ,
+ "bgcolor" ,
+ "char" ,
+ "charoff" ,
+ "colspan" ,
+ "dir" ,
+ "headers" ,
+ "height" ,
+ "lang" ,
+ "nowrap" ,
+ "onclick" ,
+ "ondblclick" ,
+ "onkeydown" ,
+ "onkeypress" ,
+ "onkeyup" ,
+ "onmousedown" ,
+ "onmousemove" ,
+ "onmouseout" ,
+ "onmouseover" ,
+ "onmouseup" ,
+ "rowspan" ,
+ "scope" ,
+ "style" ,
+ "title" ,
+ "valign" ,
+ "width" ,
+ "xml:lang" });
+
+ }
+
+
+ protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
+ // TODO Auto-generated method stub
+ super.doEncodeEnd(writer, context, component);
+ boolean isHeader = (styleClass(context, component)).contains("header");
+ if(isHeader)
+ {
+ writer.endElement("th");
+
+ }else{
+
+ writer.endElement("td");
+ }
+ }
+
+ protected Class<? extends UIComponent> getComponentClass() {
+
+ return UIColumn.class;
+ }
+
+}
Added: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/HeaderEncodeStrategy.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/HeaderEncodeStrategy.java (rev 0)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/HeaderEncodeStrategy.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -0,0 +1,38 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+public interface HeaderEncodeStrategy {
+
+ public abstract void encodeBegin(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn) throws IOException;
+
+ public abstract void encodeEnd(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn) throws IOException;
+
+}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/SimpleDataTableRendererBase.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/SimpleDataTableRendererBase.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/SimpleDataTableRendererBase.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -1,15 +1,453 @@
package org.richfaces.renderkit;
+import java.io.IOException;
+import java.util.Iterator;
+
import javax.faces.application.ResourceDependencies;
import javax.faces.application.ResourceDependency;
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
-/**
- * @author Anton Belevich
- *
- */
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.component.Column;
+import org.richfaces.component.Row;
+import org.richfaces.component.UIDataTable;
@ResourceDependencies({
- @ResourceDependency(name = "simple-datatable.js")
+ @ResourceDependency(library = "javax.faces", name = "jsf.js"),
+ @ResourceDependency(name = "jquery.js"),
+ @ResourceDependency(name = "richfaces.js"),
+ @ResourceDependency(name = "simple-datatable.js"),
+ @ResourceDependency(name = "table.css")
})
-public abstract class SimpleDataTableRendererBase extends AbstractTableRenderer {
+
+public abstract class SimpleDataTableRendererBase extends AbstractRowsRenderer {
+
+ public void encodeTableStructure(FacesContext context, UIDataTable table) throws IOException{
+
+ Object key = table.getRowKey();
+ table.captureOrigValue(context);
+ table.setRowKey(context, null);
+
+ encodeCaption(context, table);
+
+ // Encode colgroup definition.
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("colgroup", table);
+ int columns = getColumnsCount(table);
+ writer.writeAttribute("span", String.valueOf(columns), null);
+ String columnsWidth = (String) table.getAttributes().get("columnsWidth");
+
+ if (null != columnsWidth) {
+ String[] widths = columnsWidth.split(",");
+ for (int i = 0; i < widths.length; i++) {
+ writer.startElement("col", table);
+ writer.writeAttribute("width", widths[i], null);
+ writer.endElement("col");
+ }
+ }
+ writer.endElement("colgroup");
+
+ encodeHeader(context, table, columns);
+ encodeFooter(context, table, columns);
+
+ table.setRowKey(context,key);
+ table.restoreOrigValue(context);
+ }
+
+ protected boolean isColumnRendered(UIComponent component) {
+ try {
+ return component.isRendered();
+ } catch(Exception e){
+ // DO nothing, rendered binded to row variable;
+ }
+ return true;
+ }
+
+ public boolean isColumnFacetPresent(UIDataTable table, String facetName) {
+ Iterator<UIComponent> columns = table.columns();
+ boolean result = false;
+ while(columns.hasNext() && !result) {
+ UIComponent component = columns.next();
+ if(isColumnRendered(component)){
+ if(null != component.getFacet(facetName)){
+ result = true;
+ }
+ }
+ }
+ return result;
+ }
+
+ protected boolean isEncodeHeaders(UIDataTable table) {
+ return isColumnFacetPresent(table, "header") ||
+ isHeaderFactoryColumnAttributePresent(table, "sortBy") ||
+ isHeaderFactoryColumnAttributePresent(table, "comparator") ||
+ isHeaderFactoryColumnAttributePresent(table, "filterBy");
+ }
+
+ /**
+ * Returns true if specified attribute (when present on the column)
+ * should generate header even if it is not specified on the table
+ * @param table - rendered UIDataTable
+ * @param attributeName - attribute name
+ * @return true if specified attribute should generate header on the table
+ */
+ public boolean isHeaderFactoryColumnAttributePresent(UIDataTable table,
+ String attributeName) {
+ Iterator<UIComponent> columns = table.columns();
+ boolean result = false;
+
+ while (columns.hasNext() && !result) {
+ UIComponent column = columns.next();
+ if (isColumnRendered(column)) {
+ if (null != column.getValueExpression(attributeName)) {
+ result = true;
+ }
+ }
+ }
+ return result;
+ }
+
+ protected void encodeHeaderFacets(FacesContext context, ResponseWriter writer, Iterator<UIComponent> headers,
+ String skinCellClass, String headerClass, String facetName, String element, int colCount) throws IOException {
+ int t_colCount = 0;
+
+ HeaderEncodeStrategy richEncodeStrategy = new RichHeaderEncodeStrategy();
+ HeaderEncodeStrategy simpleEncodeStrategy = new SimpleHeaderEncodeStrategy();
+
+ while (headers.hasNext()) {
+ UIComponent column = (UIComponent) headers.next();
+ if (!isColumnRendered(column)) {
+ continue;
+ }
+
+ Integer colspan = (Integer) column.getAttributes().get("colspan");
+ if (colspan != null && colspan.intValue() > 0) {
+ t_colCount += colspan.intValue();
+ } else {
+ t_colCount++;
+ }
+
+ if (t_colCount > colCount) {
+ break;
+ }
+
+ String classAttribute = facetName + "Class";
+ String columnHeaderClass = (String) column.getAttributes().get(classAttribute);
+
+ writer.startElement(element, column);
+ encodeStyleClass(writer, null, skinCellClass, headerClass, columnHeaderClass);
+ writer.writeAttribute("scope", "col", null);
+ getUtils().encodeAttribute(context, column, "colspan");
+
+ boolean sortableColumn = column.getValueExpression("comparator") != null
+ || column.getValueExpression("sortBy") != null;
+
+ HeaderEncodeStrategy strategy = (column instanceof org.richfaces.component.UIColumn
+ && "header".equals(facetName)) ? richEncodeStrategy : simpleEncodeStrategy;
+
+ strategy.encodeBegin(context, writer, column, facetName, sortableColumn);
+
+ UIComponent facet = column.getFacet(facetName);
+ if (facet != null && isColumnRendered(facet)) {
+ renderChild(context, facet);
+ }
+
+ strategy.encodeEnd(context, writer, column, facetName, sortableColumn);
+
+ writer.endElement(element);
+ }
+ }
+
+ public void encodeHeader(FacesContext context, UIDataTable table, int columns) throws IOException {
+
+ UIComponent header = table.getHeader();
+ boolean isEncodeHeaders = isEncodeHeaders(table);
+
+ if (header != null || isEncodeHeaders) {
+
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("thead", table);
+ writer.writeAttribute(HTML.class_ATTRIBUTE, "rich-table-thead", null);
+ String headerClass = (String) table.getAttributes().get("headerClass");
+ if (header != null) {
+ encodeTableHeaderFacet(context, columns, writer, header,
+ "rich-table-header",
+ "rich-table-header-continue",
+ "rich-table-headercell",
+ headerClass, "th");
+ }
+
+ if (isEncodeHeaders) {
+ writer.startElement("tr", table);
+ encodeStyleClass(writer, null, "rich-table-subheader", null, headerClass);
+ encodeHeaderFacets(context, writer, table.columns(), "rich-table-subheadercell", headerClass, "header", "th", columns);
+ writer.endElement("tr");
+ }
+ writer.endElement("thead");
+ }
+ }
+
+ public void encodeFooter(FacesContext context, UIDataTable table, int columns) throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ Iterator<UIComponent> tableColumns = table.columns();
+
+ UIComponent footer = table.getFooter();
+ boolean columnFacetPresent = isColumnFacetPresent(table,"footer");
+
+ if (footer != null || columnFacetPresent) {
+ writer.startElement("tfoot", table);
+ String footerClass = (String) table.getAttributes().get("footerClass");
+
+ if (columnFacetPresent) {
+ writer.startElement("tr", table);
+ encodeStyleClass(writer, null, "rich-table-subfooter", null, footerClass);
+ encodeHeaderFacets(context, writer, tableColumns, "rich-table-subfootercell", footerClass, "footer", "td",columns);
+ writer.endElement("tr");
+ }
+
+ if (footer != null) {
+ encodeTableHeaderFacet(context, columns, writer, footer,
+ "rich-table-footer",
+ "rich-table-footer-continue",
+ "rich-table-footercell",
+ footerClass, "td");
+ }
+ writer.endElement("tfoot");
+ }
+ }
+
+ protected int getColumnsCount(UIDataTable table) {
+ int count = 0;
+ // check for exact value in component
+ Integer span = (Integer) table.getAttributes().get("columns");
+ if (null != span && span.intValue() != Integer.MIN_VALUE) {
+ count = span.intValue();
+ } else {
+ // calculate max html columns count for all columns/rows children.
+ Iterator<UIComponent> col = table.columns();
+ count = calculateRowColumns(col);
+ }
+ return count;
+ }
+
+ protected int calculateRowColumns(Iterator<UIComponent> col) {
+ int count = 0;
+ int currentLength = 0;
+ while (col.hasNext()) {
+ UIComponent component = (UIComponent) col.next();
+ if (component.isRendered()) {
+ if (component instanceof Row) {
+ // Store max calculated value of previsous rows.
+ if (currentLength > count) {
+ count = currentLength;
+ }
+ // Calculate number of columns in row.
+ currentLength = calculateRowColumns(((Row) component).columns());
+ // Store max calculated value
+ if (currentLength > count) {
+ count = currentLength;
+ }
+ currentLength = 0;
+ } else if (component instanceof Column) {
+ Column column = (Column) component;
+ // For new row, save length of previsous.
+ if (column.isBreakBefore()) {
+ if (currentLength > count) {
+ count = currentLength;
+ }
+ currentLength = 0;
+ }
+ Integer colspan = (Integer) component.getAttributes().get("colspan");
+ // Append colspan of this column
+ if (null != colspan && colspan.intValue() != Integer.MIN_VALUE) {
+ currentLength += colspan.intValue();
+ } else {
+ currentLength++;
+ }
+ } else if (component instanceof UIColumn) {
+ // UIColumn always have colspan == 1.
+ currentLength++;
+ }
+ }
+ }
+
+ if (currentLength > count) {
+ count = currentLength;
+ }
+ return count;
+ }
+
+ @Override
+ public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
+ encodeTBody(context, (UIDataTable) component);
+ }
+
+ public void encodeTBody (FacesContext context, UIDataTable table) throws IOException {
+ String clientId = table.getClientId(context);
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("tbody", table);
+ writer.writeAttribute("id", clientId + ":tb", null);
+ encodeRows(context, table);
+ writer.endElement("tbody");
+ }
+
+ @Override
+ public void encodeOneRow(FacesContext context, TableHolder holder) throws IOException {
+
+ UIDataTable table = (UIDataTable) holder.getTable();
+ ResponseWriter writer = context.getResponseWriter();
+ Iterator<UIComponent> iter = table.columns();
+
+ boolean firstColumn = true;
+ boolean firstRow = (holder.getRowCounter() == 0);
+
+ int currentColumn = 0;
+ UIComponent column = null;
+ while (iter.hasNext()) {
+ column = (UIComponent) iter.next();
+ // Start new row for first column - expect a case of the detail
+ // table, wich will be insert own row.
+ if (firstColumn && !(column instanceof Row)) {
+ String rowSkinClass = getRowSkinClass();
+ if (firstRow) {
+ String firstRowSkinClass = getFirstRowSkinClass();
+ if (firstRowSkinClass != null && firstRowSkinClass.length() != 0) {
+
+ if (rowSkinClass != null && rowSkinClass.length() != 0) {
+ rowSkinClass += " " + firstRowSkinClass;
+ } else {
+ rowSkinClass = firstRowSkinClass;
+ }
+
+ }
+ }
+
+ encodeRowStart(context, rowSkinClass, holder.getRowClass(), table, writer);
+ }
+ if (column instanceof Column) {
+ boolean breakBefore = ((Column) column).isBreakBefore()
+ || column instanceof Row;
+ if (breakBefore && !firstColumn) {
+ // close current row
+ writer.endElement(HTML.TR_ELEMENT);
+ // reset columns counter.
+ currentColumn = 0;
+ // Start new row, expect a case of the detail table, wich
+ // will be insert own row.
+ if (!(column instanceof Row)) {
+ holder.nextRow();
+ encodeRowStart(context, holder.getRowClass(), table, writer);
+ }
+ }
+
+ encodeCellChildren(context, column,
+ firstRow ? getFirstRowSkinClass() : null,
+ getRowSkinClass(), holder.getRowClass(),
+ getCellSkinClass(), holder.getColumnClass(currentColumn));
+ // renderChild(context, column);
+ if ((column instanceof Row) && iter.hasNext()) {
+ // Start new row for remained columns.
+ holder.nextRow();
+ encodeRowStart(context, holder.getRowClass(), table, writer);
+ // reset columns counter.
+ currentColumn = -1;
+ }
+ } else if (column.isRendered()) {
+ // UIColumn don't have own renderer
+ writer.startElement(HTML.td_ELEM, table);
+ getUtils().encodeId(context, column);
+ String columnClass = holder.getColumnClass(currentColumn);
+ encodeStyleClass(writer, null, getCellSkinClass(), null, columnClass);
+
+ // TODO - encode column attributes.
+ renderChildren(context, column);
+ writer.endElement(HTML.td_ELEM);
+ }
+ currentColumn++;
+ firstColumn = false;
+ }
+ // Close row if then is open.
+ if (!firstColumn && !(column instanceof Row)) {
+ writer.endElement(HTML.TR_ELEMENT);
+ }
+ }
+
+ protected void encodeRowStart(FacesContext context, String rowClass, UIDataTable table, ResponseWriter writer) throws IOException {
+ encodeRowStart(context, getRowSkinClass(), rowClass, table, writer);
+ }
+
+
+ /**
+ * @return
+ */
+ protected String getRowSkinClass() {
+ return "rich-table-row";
+ }
+
+ /**
+ * @return
+ */
+ protected String getFirstRowSkinClass() {
+ return "rich-table-firstrow";
+ }
+
+ /**
+ * @return
+ */
+ protected String getCellSkinClass() {
+ return "rich-table-cell";
+ }
+
+ protected void encodeRowStart(FacesContext context, String skinClass, String rowClass, UIDataTable table, ResponseWriter writer) throws IOException {
+ writer.startElement(HTML.TR_ELEMENT, table);
+ encodeStyleClass(writer, null, skinClass, null, rowClass);
+ encodeRowEvents(context, table);
+ }
+
+// private void encodeRowStart(ResponseWriter writer, UIColumn column) throws IOException {
+// writer.startElement(HTML.td_ELEM, column);
+// }
+//
+// private void encodeRowEnd(ResponseWriter writer, UIColumn column) throws IOException {
+// writer.endElement(HTML.td_ELEM);
+// }
+//
+// private void encodeRow(FacesContext facesContext, ResponseWriter writer, UIColumn column) throws IOException {
+// renderChildren(facesContext, column);
+// }
+
+ protected class SimpleHeaderEncodeStrategy implements HeaderEncodeStrategy {
+
+ public void encodeBegin(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn)
+ throws IOException {
+
+ }
+
+ public void encodeEnd(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn)
+ throws IOException {
+
+ }
+ }
+
+ // will be changed
+ protected class RichHeaderEncodeStrategy implements HeaderEncodeStrategy {
+
+ public void encodeBegin(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn)
+ throws IOException {
+
+ }
+
+ public void encodeEnd(FacesContext context, ResponseWriter writer,
+ UIComponent column, String facetName, boolean sortableColumn)
+ throws IOException {
+
+ }
+ }
+
}
Modified: root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/TableHolder.java
===================================================================
--- root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/TableHolder.java 2009-10-16 17:19:51 UTC (rev 15719)
+++ root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/TableHolder.java 2009-10-19 09:10:58 UTC (rev 15720)
@@ -24,6 +24,7 @@
import java.util.Map;
import org.richfaces.component.UIDataAdaptor;
+import org.richfaces.component.UIDataTable;
/**
* Private class for keep reference to table and intermediate iteration values ( current row styles, events etc )
@@ -31,7 +32,7 @@
*
*/
public class TableHolder {
- private UIDataAdaptor table;
+ private UIDataTable table;
private int rowCounter;
private int gridRowCounter;
private String[] rowClasses;
@@ -40,7 +41,7 @@
/**
* @param table
*/
- public TableHolder(UIDataAdaptor table) {
+ public TableHolder(UIDataTable table) {
this.table = table;
this.rowCounter = 0;
this.gridRowCounter = 0;
15 years, 2 months
JBoss Rich Faces SVN: r15719 - in branches/community/3.3.X/samples/richfaces-demo/functional-test: src/test and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-10-16 13:19:51 -0400 (Fri, 16 Oct 2009)
New Revision: 15719
Added:
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/testng.xml
Removed:
branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/
Modified:
branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
Log:
* JBQA-2616 facelift of hudson jobs for richfaces-demo
- added profiles to run tests with jboss5x and tomcat6x using Cargo (Maven Cargo Plugin)
- refactored usage of testng.xml (removed profiles for various OS)
- backing-compability of the pom usage should be preserved
Modified: branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml 2009-10-16 16:33:08 UTC (rev 15718)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/pom.xml 2009-10-16 17:19:51 UTC (rev 15719)
@@ -1,10 +1,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.richfaces</groupId>
+ <artifactId>samples</artifactId>
+ <version>3.3.3-SNAPSHOT</version>
+ </parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.richfaces.integrationTest</groupId>
<artifactId>selenium-test</artifactId>
<packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
<name>selenium-test</name>
<url>http://maven.apache.org</url>
<repositories>
@@ -35,6 +39,7 @@
</pluginRepository>
</pluginRepositories>
<properties>
+ <demo.version>${project.version}</demo.version>
<resources.dir>${project.build.directory}/test-classes</resources.dir>
<extensions.dir>${resources.dir}/user-extensions</extensions.dir>
<browser></browser>
@@ -47,10 +52,6 @@
<finalName>seleniumTest</finalName>
<testResources>
<testResource>
- <directory>src/test/profiles/${os.family}</directory>
- <filtering>true</filtering>
- </testResource>
- <testResource>
<directory>src/test/resources</directory>
<includes>
<include>**/*.properties</include>
@@ -73,47 +74,6 @@
</configuration>
</plugin>
<plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>unpack-user-extensions</id>
- <phase>generate-test-resources</phase>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <configuration>
- <includeGroupIds>org.jboss.test</includeGroupIds>
- <includeArtifactIds>selenium</includeArtifactIds>
- <includes>jbossqa-extensions.js</includes>
- <outputDirectory>${extensions.dir}</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>concatenate-extensions</id>
- <phase>process-test-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <concat destfile="${resources.dir}/custom-extensions.js"
- fixlastline="yes">
- <!-- space-separated list of files -->
- <filelist dir="${extensions.dir}"
- files="jbossqa-extensions.js rfqa-extensions.js" />
- </concat>
- <delete dir="${project.build.directory}/test-classes/user-extensions" />
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
@@ -126,23 +86,31 @@
</configuration>
<executions>
<execution>
+ <id>surefire-it</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
- <skip>false</skip>
- <suiteXmlFiles>
- <suiteXmlFile>${resources.dir}/testng.xml</suiteXmlFile>
- </suiteXmlFiles>
- <argLine>-Dbrowser='${browser}' -Dcontext.root='${context.root}' -Dcontext.path='${context.path}' -Dselenium.port='${selenium.port}'</argLine>
+ <skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
+
</build>
<profiles>
+ <!--
+ **********************
+ ** Integration Test **
+ **********************
+ If -Dmaven.test.skip isn't specified,
+ unpacks user extensions from selenium-testing-lib,
+ concatenate both (selenium-testing-lib and own) extensions to one file,
+ starts selenium core server
+ and runs surefire test (testng selenium tests).
+ -->
<profile>
<id>integration-test</id>
<activation>
@@ -153,6 +121,48 @@
<build>
<plugins>
<plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-user-extensions</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeGroupIds>org.jboss.test</includeGroupIds>
+ <includeArtifactIds>selenium</includeArtifactIds>
+ <includes>jbossqa-extensions.js</includes>
+ <outputDirectory>${extensions.dir}</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>concatenate-extensions</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <concat destfile="${resources.dir}/custom-extensions.js"
+ fixlastline="yes">
+ <!-- space-separated list of files -->
+ <filelist dir="${extensions.dir}"
+ files="jbossqa-extensions.js rfqa-extensions.js" />
+ </concat>
+ <delete
+ dir="${project.build.directory}/test-classes/user-extensions" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<executions>
@@ -170,41 +180,175 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.4.3</version>
+ <executions>
+ <execution>
+ <id>surefire-it</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ <suiteXmlFiles>
+ <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
+ </suiteXmlFiles>
+ <argLine>-Dbrowser='${browser}' -Dcontext.root='${context.root}' -Dcontext.path='${context.path}' -Dselenium.port='${selenium.port}'</argLine>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</profile>
+ <!-- Container Profile -->
<profile>
- <id>unix</id>
+ <id>container</id>
<activation>
- <os>
- <family>unix</family>
- </os>
+ <property>
+ <name>containerId</name>
+ </property>
</activation>
- <properties>
- <os.family>unix</os.family>
- </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.samples</groupId>
+ <artifactId>richfaces-demo</artifactId>
+ <version>${demo.version}</version>
+ <type>war</type>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ <goal>deploy</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <wait>false</wait>
+ <container>
+ <containerId>${containerId}</containerId>
+ <append>false</append>
+ <zipUrlInstaller>
+ <url>${container.installer.url}</url>
+ <installDir>${project.basedir}/target/installs</installDir>
+ </zipUrlInstaller>
+ </container>
+ <configuration>
+ <properties>
+ <cargo.hostname>localhost</cargo.hostname>
+ <cargo.jvmargs>-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000</cargo.jvmargs>
+ </properties>
+ </configuration>
+ <deployer>
+ <type>installed</type>
+ <deployables>
+ <deployable>
+ <groupId>org.richfaces.samples</groupId>
+ <artifactId>richfaces-demo</artifactId>
+ <type>war</type>
+ <pingURL>${context.root}${context.path}</pingURL>
+ <properties>
+ <context>${context.path}</context>
+ </properties>
+ </deployable>
+ </deployables>
+ </deployer>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</profile>
+ <!-- Container-type specifics: JBoss AS 5.X -->
<profile>
- <id>windows</id>
+ <id>container-jboss5x</id>
<activation>
- <os>
- <family>windows</family>
- </os>
+ <property>
+ <name>containerId</name>
+ <value>jboss5x</value>
+ </property>
</activation>
<properties>
- <os.family>windows</os.family>
+ <container.version>5.1.0.GA</container.version>
+ <container.home>${project.build.directory}/installs/jboss-${container.version}/jboss-${container.version}</container.home>
+ <container.installer.url>http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-${container.ve...</container.installer.url>
</properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ <executions>
+ <execution>
+ <id>undeploy-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>undeploy</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <configuration>
+ <home>${container.home}/server/default</home>
+ <type>existing</type>
+ <properties>
+ <cargo.jboss.configuration>default</cargo.jboss.configuration>
+ <cargo.rmi.port>1099</cargo.rmi.port>
+ </properties>
+ </configuration>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</profile>
+ <!-- Container: Tomcat 6.X -->
<profile>
- <id>mac</id>
+ <id>container-tomcat6x</id>
<activation>
- <os>
- <family>mac</family>
- </os>
+ <property>
+ <name>containerId</name>
+ <value>tomcat6x</value>
+ </property>
</activation>
<properties>
- <os.family>mac</os.family>
+ <container.version>6.0.20</container.version>
+ <container.home>${project.build.directory}/installs/apache-tomcat-${container.version}/apache-tomcat-${container.version}</container.home>
+ <container.installer.url>http://www.apache.org/dist/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0....</container.installer.url>
</properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0-beta-2</version>
+ <configuration>
+ <configuration>
+ </configuration>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
<dependencies>
@@ -246,4 +390,4 @@
<scope>test</scope>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
Copied: branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/testng.xml (from rev 15710, branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/profiles/unix/testng.xml)
===================================================================
--- branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/testng.xml (rev 0)
+++ branches/community/3.3.X/samples/richfaces-demo/functional-test/src/test/resources/testng.xml 2009-10-16 17:19:51 UTC (rev 15719)
@@ -0,0 +1,577 @@
+<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
+<suite name="seleniumTest">
+
+ <test
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.actionParameter.ActionParameterTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxForm.AjaxFormTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxRegion.AjaxRegionTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxSupport.AjaxSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.ajaxValidator.AjaxValidatorHibernatePartTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.beanValidator.BeanValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarStylingTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.CalendarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.calendar.OrganizerTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.colorPicker.ColorPickerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.columns.ColumnsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.comboBox.ComboBoxTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandButton.CommandButtonTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.commandLink.CommandLinkTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuImageTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.contextMenu.ContextMenuTableTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataFilterSlider.DataFilterSliderTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataGrid.DataGridTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataList.DataListTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataScroller.DataScrollerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.DataTableTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.EditTableWithModalPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.EditTableWithModalPanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.ExtendedDataModelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.ExtendedDataModelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.dataTable.ModifiableDataModelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dataTable.ModifiableDataModelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dragSupport.DragSupportTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.dropDownMenu.HorizontalMenuTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.AdvancedEditorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.editor.SimpleEditorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.DraggingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.DraggingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.FilteringTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.FilteringTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.GroupingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.GroupingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.SelectingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.SelectingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.SortingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.extendedDataTable.SortingTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.fileUpload.FileUploadTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorAfterModelUpdateTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.graphValidator.GraphValidatorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.include.IncludeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.include.IncludeTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceInput.InplaceInputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inplaceSelect.InplaceSelectTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.inputNumberSlider.InputNumberSliderTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.jsFunction.JSFunctionTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.keepAlive.KeepAliveTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.log.LogTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.log.LogTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.listShuttle.ListShuttleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.mediaOutput.MediaOutputTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.modalPanel.ModalPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.outputPanel.OutputPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.orderingList.OrderingListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.paint2d.Paint2DTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panel.PanelCustomizationTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panel.PanelTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.panel.PanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelBar.PanelBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.panelMenu.PanelMenuTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.pickList.PickListTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.poll.PollTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.poll.PollTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.progressBar.ProgressBarTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.push.PushTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.push.PushTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.queue.QueueSettingsTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.queue.QueueTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.queue.QueueTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.repeat.RepeatTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.script.ScriptTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.script.ScriptTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.separator.SeparatorTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.simpleTogglePanel.SimpleTogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spacer.SpacerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.spinner.SpinnerTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.status.StatusTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.status.StatusTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.style.StyleTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.style.StyleTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.suggestionBox.SuggestionBoxTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tableFiltering.TableFilteringTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tableFiltering.TableFilteringTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tableSorting.TableSortingTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tableSorting.TableSortingTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tabPanel.TabPanelTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.togglePanel.TogglePanelTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.toolBar.ToolBarTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tooltip.TooltipDataTableTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tooltip.TooltipTestCase" />
+ </classes>
+ </test>
+
+ <test
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase">
+ <classes>
+ <class
+ name="org.jboss.richfaces.integrationTest.tree.TreeNodesAdaptorTestCase" />
+ </classes>
+ </test>
+
+ <test name="org.jboss.richfaces.integrationTest.tree.TreeTestCase">
+ <classes>
+ <class name="org.jboss.richfaces.integrationTest.tree.TreeTestCase" />
+ </classes>
+ </test>
+
+</suite>
+
15 years, 2 months
JBoss Rich Faces SVN: r15718 - branches/community/3.3.X/ui/menu-components/src/main/templates/org/richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-10-16 12:33:08 -0400 (Fri, 16 Oct 2009)
New Revision: 15718
Modified:
branches/community/3.3.X/ui/menu-components/src/main/templates/org/richfaces/htmlMenuItem.jspx
Log:
https://jira.jboss.org/jira/browse/RF-7994
Modified: branches/community/3.3.X/ui/menu-components/src/main/templates/org/richfaces/htmlMenuItem.jspx
===================================================================
--- branches/community/3.3.X/ui/menu-components/src/main/templates/org/richfaces/htmlMenuItem.jspx 2009-10-15 00:11:02 UTC (rev 15717)
+++ branches/community/3.3.X/ui/menu-components/src/main/templates/org/richfaces/htmlMenuItem.jspx 2009-10-16 16:33:08 UTC (rev 15718)
@@ -140,7 +140,7 @@
]]></jsp:scriptlet>
</div>
<jsp:scriptlet><![CDATA[
- } if(isNestedInMenu(component)){
+ }else if(isNestedInMenu(component)){
]]></jsp:scriptlet>
</div>
<jsp:scriptlet><![CDATA[
15 years, 2 months