Author: SeanRogers
Date: 2009-11-11 18:44:55 -0500 (Wed, 11 Nov 2009)
New Revision: 15865
Modified:
root/docs/trunk/Component_Reference/en-US/Book_Info.xml
root/docs/trunk/Component_Reference/en-US/Component_Reference.xml
root/docs/trunk/Component_Reference/en-US/Messages.xml
root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml
root/docs/trunk/Component_Reference/en-US/Preface.xml
root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml
root/docs/trunk/Component_Reference/en-US/all-Component_Reference.xml
Log:
More Component Reference work
Modified: root/docs/trunk/Component_Reference/en-US/Book_Info.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Book_Info.xml 2009-11-11 20:48:15 UTC (rev
15864)
+++ root/docs/trunk/Component_Reference/en-US/Book_Info.xml 2009-11-11 23:44:55 UTC (rev
15865)
@@ -27,7 +27,7 @@
<year>&YEAR;</year>
<holder>&HOLDER;</holder>
</copyright>
- <!-- FOR PUBLICAN --><xi:include
href="Common_Content/Legal_Notice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR JDOCBOOK:
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Legal_Notice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <!-- FOR PUBLICAN --><xi:include
href="Common_Content/Legal_Notice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR JDOCBOOK:
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Legal_Notice.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</xi:fallback>
</xi:include>
<xi:include href="Author_Group.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
Modified: root/docs/trunk/Component_Reference/en-US/Component_Reference.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Component_Reference.xml 2009-11-11 20:48:15
UTC (rev 15864)
+++ root/docs/trunk/Component_Reference/en-US/Component_Reference.xml 2009-11-11 23:44:55
UTC (rev 15865)
@@ -4,8 +4,12 @@
<book status="draft">
<xi:include href="Book_Info.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <!-- <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
--><xi:include href="Introduction.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <!--
+ <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ -->
+ <xi:include href="Introduction.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
<xi:include href="Common_Ajax_attributes.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="Common_features.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
<xi:include href="Rich_inputs.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
<xi:include href="Panels_and_containers.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
<xi:include href="Tables_and_grids.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
Modified: root/docs/trunk/Component_Reference/en-US/Messages.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Messages.xml 2009-11-11 20:48:15 UTC (rev
15864)
+++ root/docs/trunk/Component_Reference/en-US/Messages.xml 2009-11-11 23:44:55 UTC (rev
15865)
@@ -24,7 +24,7 @@
<section id="sect-Component_Reference-Messages-richprogressBar">
<title>rich:progressBar</title>
<para>
- Incomplete
+ The <classname><rich:progressBar></classname> component
displays a progress bar to indicate the status of a process to the user. It can update
either through Ajax or on the client side, and the look and feel can be fully customized.
</para>
</section>
Modified: root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml 2009-11-11
20:48:15 UTC (rev 15864)
+++ root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml 2009-11-11
23:44:55 UTC (rev 15865)
@@ -80,7 +80,7 @@
<important>
<title>Important</title>
<para>
- The <classname><rich:modalPanel></classname> component
should always be placed outside the original
<classname><h:form></classname>, and must include its own
<classname><h:form></classname> if performing submits.
+ The <classname><rich:modalPanel></classname> component
should always be placed outside the original
<classname><h:form></classname>, and must include its own
<classname><h:form></classname> if performing submissions.
</para>
</important>
<para>
@@ -139,7 +139,7 @@
By default, the event to expand the menu is a mouse click. This can be changed by
setting <code>event</code> to specify the preferred event. Several sub-menus
can be expanded a once unless the <code>expandSingle</code> is set to
<literal>true</literal>, which only allows one sub-menu at a time to be
expanded.
</para>
<para>
- The <code>mode</code> attribute defines the submission mode for normal
menu items, and the <code>expandMode</code> attribute defines the submission
mode for menu items that expand and collapse. The settings for these attributes apply to
the entire menu unless a menu item defines its own individual
<code>mode</code> or <code>expandMode</code>. The values for
<code>mode</code> and <code>expandMode</code> are:
+ The <code>mode</code> attribute defines the submission mode for normal
menu items that link to content, and the <code>expandMode</code> attribute
defines the submission mode for menu items that expand and collapse. The settings for
these attributes apply to the entire menu unless a menu item defines its own individual
<code>mode</code> or <code>expandMode</code>. The values for
<code>mode</code> and <code>expandMode</code> are:
</para>
<itemizedlist>
<listitem>
@@ -169,58 +169,231 @@
If the <code>expandMode</code> is unspecified, the submission behavior for
the group is inherited from the parent
<classname><rich:panelMenu></classname>. Otherwise, the
<code>expandMode</code> setting is used instead of the parent's
behavior.
</para>
<para>
- Icons for menu items can be chosen from a set of standard icons. There are three
attributes that relate to the different menu states that the icon represents:
<code>iconExpanded</code>, <code>iconCollapsed</code>, and
<code>iconDisabled</code>. The standard icons are shown in <xref
linkend="figu-Component_Reference-richpanelMenuGroup-Standard_icons" />.
+ Icons for the menu group can be chosen from a set of standard icons. There are three
attributes that relate to the different menu states that the icon represents:
<code>iconExpanded</code>, <code>iconCollapsed</code>, and
<code>iconDisabled</code>. The standard icons are shown in <xref
linkend="figu-Component_Reference-richpanelMenuGroup-Standard_icons" />.
</para>
<figure
id="figu-Component_Reference-richpanelMenuGroup-Standard_icons">
<title>Standard icons</title>
<mediaobject>
<imageobject>
- <imagedata fileref="images/panelMenuGroupIcons.png"
format="PNG" />
+ <imagedata fileref="images/panelMenuIcons.png" format="PNG"
/>
</imageobject>
</mediaobject>
</figure>
+ <para>
+ Alternatively, a path can be defined that points to an image file to use as an icon.
+ </para>
+ <example
id="exam-Component_Reference-richpanelMenuGroup-Using_custom_icons">
+ <title>Using custom icons</title>
+
+<programlisting language="xml">
+<rich:panelMenu>
+ <rich:PanelMenuGroup label="Group 1"
iconExpanded="\images\img1.png"
iconCollapsed="\images\img2.png">>
+ <!--Nested menu components-->
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+</programlisting>
+ </example>
</section>
<section
id="sect-Component_Reference-Panels_and_containers-richpanelMenuItem">
<title><rich:panelMenuItem></title>
<para>
- Incomplete
+ The <classname><rich:panelMenuItem></classname> component
represents a single item inside a
<classname><rich:panelMenuGroup></classname> component, which is
in turn part of a <classname><rich:panelMenu></classname>
component.
</para>
+ <para>
+ If the <code>mode</code> is unspecified, the submission behavior for the
item is inherited from the parent
<classname><rich:panelMenu></classname>. Otherwise, the
<code>mode</code> setting is used instead of the parent's behavior.
+ </para>
+ <para>
+ Icons for menu items can be chosen from a set of standard icons. There are two
attributes that relate to the different menu states that the icon represents:
<code>icon</code> and <code>iconDisabled</code>. The standard
icons are shown in <xref
linkend="figu-Component_Reference-richcolumn-Basic_column_example" />.
+ </para>
+ <figure
id="figu-Component_Reference-richpanelMenuItem-Standard_icons">
+ <title>Standard icons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuIcons.png" format="PNG"
/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Alternatively, a path can be defined that points to an image file to use as an icon.
+ </para>
+ <example
id="exam-Component_Reference-richpanelMenuItem-Using_custom_icons">
+ <title>Using custom icons</title>
+
+<programlisting language="xml">
+<rich:panelMenu>
+ ...
+ <rich:panelMenuItem value="Item 1.1"
icon="\images\img1.png" iconDisabled="\images\img2.png" />
+ ...
+</rich:panelMenu>
+</programlisting>
+ </example>
</section>
<section
id="sect-Component_Reference-Panels_and_containers-richsimpleTogglePanel">
<title><rich:simpleTogglePanel></title>
<para>
- Incomplete
+ The <classname><rich:simpleTogglePanel></classname>
component is a collapsible panel that shows or hides content when the header bar is
activated. It is a simplified version of
<classname><rich:togglePanel></classname> component.
</para>
+ <para>
+ Basic usage requires only the <code>label</code> attribute to be
specified, which provides the title for the header element.
+ </para>
+ <para>
+ The switching mode for performing submissions is determined by the
<code>switchType</code> attribute, which can have one of the following three
values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>server</literal>, the default setting, which causes the
<classname><rich:simpleTogglePanel></classname> component to
perform a common submission, completely re-rendering the page. Only one panel at a time is
uploaded to the client side.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>ajax</literal>, which causes the
<classname><rich:simpleTogglePanel></classname> component to
perform an Ajax form submission, and the content of the panel is rendered. Only one panel
at a time is uploaded to the client side.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>client</literal>, which causes
<classname><rich:simpleTogglePanel></classname> components to
update on the client side, re-rendering themselves and any additional components listed
with the <code>render</code> attribute.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ If the <classname><rich:simpleTogglePanel></classname>
component uses <code>opened="true"</code>, the panel is open and
expanded, otherwise it is closed and collapsed.
+ </para>
+ <para>
+ The <code>openMarker</code> and <code>closeMarker</code>
attributes can be used to define custom icons for the expanding header.
+ </para>
</section>
<section
id="sect-Component_Reference-Panels_and_containers-richtabPanel">
<title><rich:tabPanel></title>
<para>
- Incomplete
+ The <classname><rich:tabPanel></classname> component
provides a set of tabbed panels for displaying one panel of content at a time. The tabs
can be highly customized and themed.
</para>
+ <note>
+ <title>Note</title>
+ <para>
+ All <classname><rich:tabPanel></classname> components
should be wrapped in a form element so that content is correctly submitted.
+ </para>
+ </note>
+ <para>
+ The switching mode for performing submissions is determined by the
<code>switchType</code> attribute, which can have one of the following three
values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>server</literal>, the default setting, which causes the
<classname><rich:tabPanel></classname> component to perform a
common submission, completely re-rendering the page. Only one panel at a time is uploaded
to the client side.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>ajax</literal>, which causes the
<classname><rich:tabPanel></classname> component to perform an
Ajax form submission, and the content of the panel is rendered. Only one panel at a time
is uploaded to the client side.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>client</literal>, which causes
<classname><rich:tabPanel></classname> components to update on
the client side, re-rendering themselves and any additional components listed with the
<code>render</code> attribute.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <code>selectedTab</code> attribute holds the active tab name.
+ </para>
+ <para>
+ The tabs themselves can be aligned using the <code>headerAlignment</code>
attribute. The attribute can be set to <code>left</code>,
<code>center</code>, or <code>right</code>, aligning the header
tabs to the left, center, or right of the top edge of the panel respectively. If no
alignment is specified, left-alignment is the default behavior.
+ </para>
</section>
<section id="sect-Component_Reference-Panels_and_containers-richtab">
<title><rich:tab></title>
<para>
- Incomplete
+ The <classname><rich:tab></classname> component represents
an individual tab inside a
<classname><rich:tabPanel></classname> component, including the
tab's content. Clicking on the tab header will bring its corresponding content to
the front of other tabs.
</para>
+ <para>
+ Basic usage of the <classname><rich:tab></classname>
component requires the <code>label</code> attribute, which provides the text
on the tab header. The content of the tab is then detailed inside the
<classname><rich:tab></classname> tags.
+ </para>
+ <para>
+ An individual tab can be disabled by setting
<code>disabled="true"</code>. Disabled tabs cannot be activated or
switched to.
+ </para>
+ <para>
+ The switching mode for performing submissions can be inherited from
<code>switchMode</code> attribute of the parent
<classname><rich:tabPanel></classname> component, or set
individually for each <classname><rich:tab></classname>
component. Refer to <xref
linkend="sect-Component_Reference-Panels_and_containers-richtabPanel" /> for
details on the <code>switchMode</code> attribute.
+ </para>
+ <para>
+ There are two event handlers that are unique to the
<classname><rich:tab></classname> component. The
<code>ontabenter</code> attribute points to the function to perform when the
mouse enters the tab, while the <code>ontableave</code> attribute points to
the function to perform when the mouse leaves the tab.
+ </para>
</section>
<section
id="sect-Component_Reference-Panels_and_containers-richtogglePanel">
<title><rich:togglePanel></title>
<para>
- Incomplete
+ The <classname><rich:togglePanel></classname> component is a
wrapper component with named facets. Each facet is displayed after activating a
corresponding <classname><rich:toggleControl></classname>
component.
</para>
+ <para>
+ The initial state of the component can be configured using the
<code>initialState</code> attribute, which points to a facet name to display.
Alternatively, setting <code>initialState="empty"</code>, the
initial state will be blank until the user selects an option.
+ </para>
+ <para>
+ The order in which the facets are shown can be defined using the
<code>statusOrder</code> attribute, listing the facet names separated by
commas, as shown in <xref
linkend="exam-Component_Reference-richtogglePanel-State_order_example" />.
+ </para>
+ <example
id="exam-Component_Reference-richtogglePanel-State_order_example">
+ <title>State order example</title>
+
+<programlisting language="xml">
+>rich:togglePanel id="panel" initialState="panelB"
switchType="client" stateOrder="panelA,panelB,panelC"<
+ >f:facet name="panelA"<
+ ...
+ >/f:facet<
+ >f:facet name="panelB"<
+ ...
+ >/f:facet<
+ >f:facet name="panelC"<
+ ...
+ >/f:facet<
+>/rich:togglePanel<
+>rich:toggleControl for="panel" value="Switch"/<
+</programlisting>
+ </example>
</section>
<section
id="sect-Component_Reference-Panels_and_containers-richtoggleControl">
<title><rich:toggleControl></title>
<para>
- Incomplete
+ The <classname><rich:toggleControl></classname> component
works with a <classname><rich:togglePanel></classname> component
to switch between panel states. It can be located either inside or outside the
<classname><rich:togglePanel></classname> component, and can be
used to switch to a specific state or cycle through a set of states.
</para>
+ <para>
+ Basic usage for the
<classname><rich:toggleControl></classname> requires the
<code>for</code> attribute, which points to the <code>id</code>
attribute of the <classname><rich:togglePanel></classname> that
it controls. The <code>value</code> attribute specifies the label of the
toggle button.
+ </para>
+ <para>
+ The <code>switchToState</code> attribute can be used to explicitly set a
target panel for the toggle to activate. If no <code>switchToState</code>
attribute is defined, the toggle will switch to the next panel listed in the
<code>switchOrder</code> attribute of the
<classname><rich:toggleControl></classname> component. <xref
linkend="exam-Component_Reference-richtoggleControl-Switching_panel_states"
/> shows the use of the <code>switchToState</code> attribute.
+ </para>
+ <example
id="exam-Component_Reference-richtoggleControl-Switching_panel_states">
+ <title>Switching panel states</title>
+
+<programlisting language="xml">
+<rich:togglePanel id="panel" initialState="empty"
switchType="client">
+ <f:facet name="first">
+ <h:panelGroup>
+ <rich:toggleControl for="helloForm:panel" value="Empty"
switchToState="empty"/>
+ <rich:toggleControl for="helloForm:panel" value="
Second" switchToState="second"/>
+ <!--Some content-->
+ </h:panelGroup>
+ </f:facet>
+ <f:facet name="second">
+ <h:panelGroup>
+ <rich:toggleControl for="helloForm:panel" value="Empty"
switchToState="empty"/>
+ <rich:toggleControl for="helloForm:panel" value=" first"
switchToState="first"/>
+ <!--Some content-->
+ </h:panelGroup>
+ </f:facet>
+ <f:facet name="empty">
+ <h:panelGroup>
+ <rich:toggleControl for="helloForm:panel" value="first"
switchToState="first"/>
+ <rich:toggleControl for="helloForm:panel" value="
second" switchToState="second"/>
+ </h:panelGroup>
+ </f:facet>
+</rich:togglePanel>
+</programlisting>
+ </example>
</section>
</chapter>
Modified: root/docs/trunk/Component_Reference/en-US/Preface.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Preface.xml 2009-11-11 20:48:15 UTC (rev
15864)
+++ root/docs/trunk/Component_Reference/en-US/Preface.xml 2009-11-11 23:44:55 UTC (rev
15865)
@@ -4,10 +4,10 @@
<preface id="pref-Component_Reference-Preface">
<title>Preface</title>
- <!-- FOR JDOCBOOK --><xi:include
href="Common_Content/Conventions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR PUBLICAN
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Conventions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <!-- FOR JDOCBOOK --><xi:include
href="Common_Content/Conventions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR PUBLICAN
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Conventions.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</xi:fallback>
</xi:include>
- <!-- PUBLICAN'S ORIGINAL XINCLUDES --><xi:include
href="Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="Common_Content/Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR JDOCBOOK
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <!-- PUBLICAN'S ORIGINAL XINCLUDES --><xi:include
href="Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="Common_Content/Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"><!-- FOR JDOCBOOK
--><xi:fallback
xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include
href="fallback_content/Feedback.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</xi:fallback>
</xi:include>
</xi:fallback>
Modified: root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml 2009-11-11 20:48:15 UTC
(rev 15864)
+++ root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml 2009-11-11 23:44:55 UTC
(rev 15865)
@@ -5,33 +5,209 @@
<chapter id="chap-Component_Reference-Tables_and_grids">
<title>Tables and grids</title>
<para>
- Incomplete
+ This chapter covers all components related to the display of tables and grids.
</para>
<section id="sect-Component_Reference-Tables_and_grids-richcolumn">
<title>rich:column</title>
<para>
- Incomplete
+ The <classname><rich:column></classname> component
facilitates columns in a table or other <classname>UIData</classname>
component. It supports merging columns and rows, sorting, filtering, and customized
skinning.
</para>
+ <para>
+ In general usage, the the
<classname><rich:column></classname> component is used in the
same was as the JavaServer Faces (<acronym>JSF</acronym>)
<classname><h:column></classname> component. It requires no
extra attributes for basic usage, as shown in <xref
linkend="exam-Component_Reference-richcolumn-Basic_column_example" /> and the
resulting <xref
linkend="figu-Component_Reference-richcolumn-Basic_column_example" />.
+ </para>
+ <example
id="exam-Component_Reference-richcolumn-Basic_column_example">
+ <title>Basic column example</title>
+
+<programlisting language="xml">
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap"
rows="5">
+ <rich:column>
+ <f:facet name="header">State Flag</f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">State Name</f:facet>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column >
+ <f:facet name="header">State Capital</f:facet>
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">Time Zone</f:facet>
+ <h:outputText value="#{cap.timeZone}"/>
+ </rich:column>
+</rich:dataTable>
+</programlisting>
+ </example>
+ <figure id="figu-Component_Reference-richcolumn-Basic_column_example">
+ <title>Basic column example</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/figu-Component_Reference-richcolumn-Basic_column_example.png"
format="PNG" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Columns can be merged by using the <code>colspan</code> attribute to
specify how many normal columns to span. The <code>colspan</code> attribute is
used in conjunction with the <code>breakBefore</code> attribute on the next
column to determine how the merged columns are laid out. <xref
linkend="exam-Component_Reference-richcolumn-Column_spanning_example" /> and
the resulting <xref
linkend="figu-Component_Reference-richcolumn-Column_spanning_example" /> show
the first column spanning a width of three columns, with the others broken on to the
following line.
+ </para>
+ <example
id="exam-Component_Reference-richcolumn-Column_spanning_example">
+ <title>Column spanning example</title>
+
+<programlisting language="xml">
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap"
rows="5">
+ <rich:column colspan="3">
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column >
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{cap.timeZone}"/>
+ </rich:column>
+</rich:dataTable>
+</programlisting>
+ </example>
+ <figure
id="figu-Component_Reference-richcolumn-Column_spanning_example">
+ <title>Column spanning example</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/figu-Component_Reference-richcolumn-Column_spanning_example.png"
format="PNG" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Similarly, the <code>rowspan</code> attribute can be used to merge and
span rows. Again the <code>breakBefore</code> attribute needs to be used on
related <classname><rich:column></classname> components to
define the layout. <xref
linkend="exam-Component_Reference-richcolumn-Row_spanning_example" /> and the
resulting <xref
linkend="figu-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups"
/> show the first column of the table spanning three rows.
+ </para>
+ <example
id="exam-Component_Reference-richcolumn-Row_spanning_example">
+ <title>Row spanning example</title>
+
+<programlisting language="xml">
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap"
rows="5">
+ <rich:column rowspan="3">
+ <f:facet name="header">State Flag</f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">State Info</f:facet>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{cap.timeZone}"/>
+ </rich:column>
+</rich:dataTable>
+</programlisting>
+ </example>
+ <figure id="figu-Component_Reference-richcolumn-Row_spanning_example">
+ <title>Row spanning example</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/figu-Component_Reference-richcolumn-Row_spanning_example.png"
format="PNG" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ For details on filtering and sorting columns, refer to <xref
linkend="sect-Component_Reference-Tables_and_grids-Table_filtering" /> and
<xref linkend="sect-Component_Reference-Tables_and_grids-Table_sorting"
/>.
+ </para>
</section>
<section
id="sect-Component_Reference-Tables_and_grids-richcolumnGroup">
<title>rich:columnGroup</title>
<para>
- Incomplete
+ The <classname><rich:columnGroup></classname> component
combines multiple columns in a single row to organize complex parts of a table. The
resulting effect is similar to using the <code>breakBefore</code> attribute of
the <classname><rich:column></classname> component, but is
clearer and easier to follow in the source code.
</para>
+ <para>
+ The <classname><rich:columnGroup></classname> can also be
used to create complex headers in a table. <xref
linkend="exam-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups"
/> and the resulting <xref
linkend="figu-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups"
/> demonstrate how complex headers can be achieved.
+ </para>
+ <example
id="exam-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups">
+ <title>Complex headers using column groups</title>
+
+<programlisting language="xml">
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap"
rows="5" id="sublist">
+ <f:facet name="header">
+ <rich:columnGroup>
+ <rich:column rowspan="2">
+ <h:outputText value="State Flag"/>
+ </rich:column>
+ <rich:column colspan="3">
+ <h:outputText value="State Info"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="State Name"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="State Capital"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="Time Zone"/>
+ </rich:column>
+ </rich:columnGroup>
+ </f:facet>
+ <rich:column>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{cap.timeZone}"/>
+ </rich:column>
+</rich:dataTable>
+</programlisting>
+ </example>
+ <figure
id="figu-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups">
+ <title>Complex headers using column groups</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/figu-Component_Reference-richcolumnGroup-Complex_headers_using_column_groups.png"
format="PNG" />
+ </imageobject>
+ </mediaobject>
+ </figure>
</section>
<section id="sect-Component_Reference-Tables_and_grids-richcolumns">
<title>rich:columns</title>
<para>
- Incomplete
+ The <classname><rich:columns></classname> component allows
for dynamic sets of columns for tables. Columns and rows can be merged, and the look and
feel can be highly customized. The component gets a list from a data model and creates a
corresponding set of columns in a
<classname><rich:dataTable></classname> component. The
<classname><rich:columns></classname> component also supports
header and footer facets.
</para>
+ <para>
+ Basic usage of the <classname><rich:columns></classname>
component requires the <code>value</code> attribute, which points to the data
model; the <code>var</code> attribute, which holds the current variable for
the collection of data; and the <code>index</code> attribute, which holds the
current counter. The <code>id</code> attribute is used for when the
individuals rows require identifiers for Ajax events.
+ </para>
+ <example
id="exam-Component_Reference-richcolumns-Complex_headers_using_column_groups">
+ <title>Basic columns example</title>
+<programlisting language="xml">
+<rich:dataTable value="#{dataTableScrollerBean.model}"
var="model" width="750">
+ <rich:columns value="#{dataTableScrollerBean.columns}"
var="columns" index="ind" id="column#{ind}">
+ <f:facet name="header">
+ <h:outputText value="#{columns.header}" />
+ </f:facet>
+ <h:outputText value="#{model[ind].model} " />
+ <h:outputText value="#{model[ind].mileage} miles " />
+ <h:outputText value="#{model[ind].price}$" />
+ </rich:columns>
+</rich:dataTable>
+</programlisting>
+ </example>
+ <para>
+ The <code>columns</code> attribute
+ </para>
+ <para>
+ For details on filtering and sorting columns, refer to <xref
linkend="sect-Component_Reference-Tables_and_grids-Table_filtering" /> and
<xref linkend="sect-Component_Reference-Tables_and_grids-Table_sorting"
/>.
+ </para>
</section>
<section
id="sect-Component_Reference-Tables_and_grids-richdataFilterSlider">
<title>rich:dataFilterSlider</title>
<para>
- Incomplete
+ The <classname><rich:dataFilterSlider></classname>
components is a slider control that can be used for filtering data in a table.
</para>
</section>
Modified: root/docs/trunk/Component_Reference/en-US/all-Component_Reference.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/all-Component_Reference.xml 2009-11-11
20:48:15 UTC (rev 15864)
+++ root/docs/trunk/Component_Reference/en-US/all-Component_Reference.xml 2009-11-11
23:44:55 UTC (rev 15865)
@@ -1,96 +1,92 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Component_Reference.ent">
-<!ENTITY PRODUCT "RichFaces">
-<!ENTITY VERSION "4.0">
-<!ENTITY VERSION_LONG "4.0.0.ALPHA2">
-<!ENTITY BOOKID "Component_Reference">
-<!ENTITY HOLDER "Red Hat">
-<!ENTITY YEAR "2009">
]>
-<book lang="en-US" status="draft">
+
+<book status="draft">
<bookinfo id="book-Component_Reference-Component_Reference"
lang="en-US">
- <title>Component Reference</title>
- <subtitle>A reference guide to the components of the RichFaces
4.0.0.ALPHA2<remark> (draft)</remark>
- framework</subtitle>
- <productname>RichFaces</productname>
- <productnumber>4.0</productnumber>
- <edition>0.1</edition>
- <pubsnumber>0</pubsnumber>
- <abstract>
- <para>This book details each component in the RichFaces 4.0
-framework, including examples of their use in
applications.</para></abstract>
- <corpauthor>
- <inlinemediaobject>
- <imageobject>
- <imagedata fileref="./images/rf_logo.png" format="PNG"
scalefit="1"/>
- </imageobject>
- <textobject>
- <phrase>Logo</phrase>
- </textobject>
- </inlinemediaobject>
- </corpauthor>
- <copyright>
- <year>2009</year>
- <holder>Red Hat</holder>
- </copyright>
- <!-- FOR PUBLICAN --><legalnotice
xml:base="Common_Content/Legal_Notice.xml">
- <para>
- Copyright <trademark class="copyright"/> 2009 Red Hat This material may
only be distributed subject to the terms and conditions set forth in the GNU Free
Documentation License (GFDL), V1.2 or later (the latest version is presently available at
<ulink
url="http://www.gnu.org/licenses/fdl.txt">http://www.gnu.org...>).
- </para>
-</legalnotice>
- <authorgroup lang="en-US">
- <author>
- <firstname>Sean</firstname>
- <surname>Rogers</surname>
- <affiliation>
- <orgname>Red Hat</orgname>
- <orgdiv>Engineering Content Services</orgdiv>
- </affiliation>
- <email>serogers(a)redhat.com</email>
- </author>
-</authorgroup>
- </bookinfo>
- <!-- <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
--><chapter id="chap-Component_Reference-Introduction"
lang="en-US">
- <title>Introduction</title>
- <para>
- This book is a guide to the various components available in the RichFaces 4.0
framework. It includes descriptions of the role of the components, details on how best to
use them, coded examples of their use, and basic references of their properties and
attributes.
- </para>
- <para>
- For full in-depth references for all component classes and properties, refer to the
<citetitle>API Reference</citetitle> available from the RichFaces website.
- </para>
- <section id="sect-Component_Reference-Introduction-Libraries">
- <title>Libraries</title>
- <para>
- The RichFaces framework as it now stands is made up of two tag libraries: the
<classname>a4j</classname> library and the
<classname>rich</classname> library. The
<classname>a4j</classname> tag library represents Ajax4jsf, which provides
page-level Ajax support with core Ajax components. This allows developers to make use of
custom Ajax behavior with existing components. The <classname>rich</classname>
tag library provides Ajax support at the component level instead, and includes ready-made,
self-contained components. These components don't require additional configuration in
order to send requests or update.
- </para>
- <note>
- <title>Note</title>
- <para>
- All components in the <classname>a4j</classname> library feature built-in
Ajax support, so it is unnecessary to add the
<classname><a4j:ajax></classname> behavior.
- </para>
- </note>
- </section>
+ <title>Component Reference</title>
+ <subtitle>A reference guide to the components of the RichFaces
4.0.0.ALPHA2<remark> (draft)</remark>
+ framework</subtitle>
+ <productname>RichFaces</productname>
+ <productnumber>4.0</productnumber>
+ <edition>0.1</edition>
+ <pubsnumber>0</pubsnumber>
+ <abstract>
+ <para>This book details each component in the RichFaces 4.0 framework,
+including examples of their use in applications.</para></abstract>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="./images/rf_logo.png" format="PNG"
scalefit="1" />
+ </imageobject>
+ <textobject>
+ <phrase>Logo</phrase>
+ </textobject>
+ </inlinemediaobject>
+ </corpauthor>
+ <copyright>
+ <year>2009</year>
+ <holder>Red Hat</holder>
+ </copyright>
+ <!-- FOR PUBLICAN -->
+ <legalnotice xml:base="Common_Content/Legal_Notice.xml">
+ <para>
+ Copyright <trademark class="copyright"></trademark> 2009 Red
Hat This material may only be distributed subject to the terms and conditions set forth in
the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently
available at <ulink
url="http://www.gnu.org/licenses/fdl.txt">http://www.gnu.org...>).
+ </para>
+ </legalnotice>
+ <authorgroup lang="en-US">
+ <author>
+ <firstname>Sean</firstname>
+ <surname>Rogers</surname>
+ <affiliation>
+ <orgname>Red Hat</orgname>
+ <orgdiv>Engineering Content Services</orgdiv>
+ </affiliation>
+ <email>serogers(a)redhat.com</email>
+ </author>
+ </authorgroup>
+ </bookinfo>
+ <!-- <xi:include href="Preface.xml"
xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
-->
+ <chapter id="chap-Component_Reference-Introduction"
lang="en-US">
+ <title>Introduction</title>
+ <para>
+ This book is a guide to the various components available in the RichFaces 4.0
framework. It includes descriptions of the role of the components, details on how best to
use them, coded examples of their use, and basic references of their properties and
attributes.
+ </para>
+ <para>
+ For full in-depth references for all component classes and properties, refer to the
<citetitle>API Reference</citetitle> available from the RichFaces website.
+ </para>
+ <section id="sect-Component_Reference-Introduction-Libraries">
+ <title>Libraries</title>
+ <para>
+ The RichFaces framework as it now stands is made up of two tag libraries: the
<classname>a4j</classname> library and the
<classname>rich</classname> library. The
<classname>a4j</classname> tag library represents Ajax4jsf, which provides
page-level Ajax support with core Ajax components. This allows developers to make use of
custom Ajax behavior with existing components. The <classname>rich</classname>
tag library provides Ajax support at the component level instead, and includes ready-made,
self-contained components. These components don't require additional configuration
in order to send requests or update.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ All components in the <classname>a4j</classname> library feature
built-in Ajax support, so it is unnecessary to add the
<classname><a4j:ajax></classname> behavior.
+ </para>
+ </note>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Common_Ajax_attributes"
lang="en-US">
- <title>Common Ajax attributes</title>
- <para>
- The Ajax components in the <classname>a4j</classname> library share common
attributes to perform similar functionality. Most RichFaces components in the
<classname>rich</classname> library that feature built-in Ajax support share
these common attributes as well.
- </para>
- <para>
- Most attributes have default values, so they need not be explicitly set for the
component to function in its default state. These attributes can be altered to customize
the behavior of the component if necessary.
- </para>
- <section
id="sect-Component_Reference-Common_Ajax_attributes-Rendering">
- <title>Rendering</title>
- <section id="sect-Component_Reference-Rendering-render">
- <title><code>render</code></title>
- <para>
- The <code>render</code> attribute provides a reference to one or more
areas on the page that need updating after an Ajax interaction. It uses the
<code>UIComponent.findComponent()</code> algorithm to find the components in
the component tree using their <code>id</code> attributes as a reference.
Components can be referenced by their <code>id</code> attribute alone, or by a
hierarchy of components' <code>id</code> attributes to make locating
components more efficient. <xref
linkend="exam-Component_Reference-render-render_example"/> shows both ways of
referencing components. Each command button will correctly render the referenced panel
grids, but the second button locates the references more efficiently with explicit
hierarchy paths.
- </para>
- <example id="exam-Component_Reference-render-render_example">
- <title>render example</title>
-
+ </chapter>
+ <chapter id="chap-Component_Reference-Common_Ajax_attributes"
lang="en-US">
+ <title>Common Ajax attributes</title>
+ <para>
+ The Ajax components in the <classname>a4j</classname> library share
common attributes to perform similar functionality. Most RichFaces components in the
<classname>rich</classname> library that feature built-in Ajax support share
these common attributes as well.
+ </para>
+ <para>
+ Most attributes have default values, so they need not be explicitly set for the
component to function in its default state. These attributes can be altered to customize
the behavior of the component if necessary.
+ </para>
+ <section
id="sect-Component_Reference-Common_Ajax_attributes-Rendering">
+ <title>Rendering</title>
+ <section id="sect-Component_Reference-Rendering-render">
+ <title><code>render</code></title>
+ <para>
+ The <code>render</code> attribute provides a reference to one or more
areas on the page that need updating after an Ajax interaction. It uses the
<code>UIComponent.findComponent()</code> algorithm to find the components in
the component tree using their <code>id</code> attributes as a reference.
Components can be referenced by their <code>id</code> attribute alone, or by a
hierarchy of components' <code>id</code> attributes to make locating
components more efficient. <xref
linkend="exam-Component_Reference-render-render_example" /> shows both ways
of referencing components. Each command button will correctly render the referenced panel
grids, but the second button locates the references more efficiently with explicit
hierarchy paths.
+ </para>
+ <example id="exam-Component_Reference-render-render_example">
+ <title>render example</title>
+
<programlisting language="xml">
<h:form id="form1">
<a4j:commandButton value="Basic reference" render="infoBlock,
infoBlock2" />
@@ -107,42 +103,42 @@
</h:panelGrid>
</f:subview>
</programlisting>
- </example>
- <para>
- The value of the <code>render</code> attribute can also be an expression
written using JavaServer Faces' Expression Language
(<acronym>EL</acronym>); this can either be a <type>Set</type>,
<type>Collection</type>, <type>Array</type>, or
<type>String</type>.
- </para>
- <important>
- <title>Important</title>
- <para>
- A common problem with using <code>render</code> occurs when the
referenced component has a <code>rendered</code> attribute.
<acronym>JSF</acronym> does not mark the place in the browser's Document
Object Model (<acronym>DOM</acronym>) where the rendered component would be
placed in case the <code>rendered</code> attribute returns
<literal>false</literal>. As such, when RichFaces sends the render code to the
client, the page does not update as the place for the update is not known.
- </para>
- <para>
- To work around this issue, wrap the component to be rendered in an
<classname><a4j:outputPanel></classname> with
<code>layout="none"</code>. The
<classname><a4j:outputPanel></classname> will receive the update
and render the component as required.
- </para>
- </important>
- </section>
-
- <section id="sect-Component_Reference-Rendering-ajaxRendered">
- <title>ajaxRendered</title>
- <para>
- A component with <code>ajaxRendered="true"</code> will be
re-rendered with <emphasis>every</emphasis> Ajax request, even when not
referenced by the requesting component's <code>render</code> attribute.
This can be useful for updating a status display or error message without explicitly
requesting it.
- </para>
- <para>
- Rendering of components in this way can be repressed by adding
<code>limitRender="true"</code> to the requesting component, as
described in <xref
linkend="sect-Component_Reference-Rendering-limitRender"/>.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Rendering-limitRender">
- <title>limitRender</title>
- <para>
- A component with <code>limitRender="true"</code> specified will
<emphasis>not</emphasis> cause components with
<code>ajaxRendered="true"</code> to re-render, and only those
components listed in the <code>render</code> attribute will be updated. This
essentially overrides the <code>ajaxRendered</code> attribute in other
components.
- </para>
- <para>
- <xref
linkend="exam-Component_Reference-data-Data_reference_example"/> describes
two command buttons, a panel grid rendered by the buttons, and an output panel showing
error messages. When the first button is clicked, the output panel is rendered even though
it is not explicitly referenced with the <code>render</code> attribute. The
second button, however, uses <code>limitRender="true"</code> to
override the output panel's rendering and only render the panel grid.
- </para>
- <example id="exam-Component_Reference-limitRender-Rendering_example">
- <title>Rendering example</title>
-
+ </example>
+ <para>
+ The value of the <code>render</code> attribute can also be an
expression written using JavaServer Faces' Expression Language
(<acronym>EL</acronym>); this can either be a <type>Set</type>,
<type>Collection</type>, <type>Array</type>, or
<type>String</type>.
+ </para>
+ <important>
+ <title>Important</title>
+ <para>
+ A common problem with using <code>render</code> occurs when the
referenced component has a <code>rendered</code> attribute.
<acronym>JSF</acronym> does not mark the place in the browser's
Document Object Model (<acronym>DOM</acronym>) where the rendered component
would be placed in case the <code>rendered</code> attribute returns
<literal>false</literal>. As such, when RichFaces sends the render code to the
client, the page does not update as the place for the update is not known.
+ </para>
+ <para>
+ To work around this issue, wrap the component to be rendered in an
<classname><a4j:outputPanel></classname> with
<code>layout="none"</code>. The
<classname><a4j:outputPanel></classname> will receive the update
and render the component as required.
+ </para>
+ </important>
+ </section>
+
+ <section id="sect-Component_Reference-Rendering-ajaxRendered">
+ <title>ajaxRendered</title>
+ <para>
+ A component with <code>ajaxRendered="true"</code> will be
re-rendered with <emphasis>every</emphasis> Ajax request, even when not
referenced by the requesting component's <code>render</code>
attribute. This can be useful for updating a status display or error message without
explicitly requesting it.
+ </para>
+ <para>
+ Rendering of components in this way can be repressed by adding
<code>limitRender="true"</code> to the requesting component, as
described in <xref linkend="sect-Component_Reference-Rendering-limitRender"
/>.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Rendering-limitRender">
+ <title>limitRender</title>
+ <para>
+ A component with <code>limitRender="true"</code> specified
will <emphasis>not</emphasis> cause components with
<code>ajaxRendered="true"</code> to re-render, and only those
components listed in the <code>render</code> attribute will be updated. This
essentially overrides the <code>ajaxRendered</code> attribute in other
components.
+ </para>
+ <para>
+ <xref linkend="exam-Component_Reference-data-Data_reference_example"
/> describes two command buttons, a panel grid rendered by the buttons, and an output
panel showing error messages. When the first button is clicked, the output panel is
rendered even though it is not explicitly referenced with the
<code>render</code> attribute. The second button, however, uses
<code>limitRender="true"</code> to override the output
panel's rendering and only render the panel grid.
+ </para>
+ <example
id="exam-Component_Reference-limitRender-Rendering_example">
+ <title>Rendering example</title>
+
<programlisting language="XML">
<h:form id="form1">
<a4j:commandButton value="Normal rendering"
render="infoBlock" />
@@ -157,281 +153,281 @@
<h:messages />
</a4j:outputPanel>
</programlisting>
- </example>
- </section>
+ </example>
+ </section>
- </section>
-
- <section
id="sect-Component_Reference-Common_Ajax_attributes-Queuing_and_traffic_control">
- <title>Queuing and traffic control</title>
- <section
id="sect-Component_Reference-Queuing_and_traffic_control-queue">
- <title>queue</title>
- <para>
- The <code>queue</code> attribute defines the name of the queue that will
be used to schedule upcoming Ajax requests. Typically RichFaces does not queue Ajax
requests, so if events are produced simultaneously they will arrive at the server
simultaneously. This can potentially lead to unpredictable results when the responses are
returned. The <code>queue</code> attribute ensures that the requests are
responded to in a set order.
- </para>
- <para>
- A queue name is specified with the <code>queue</code> attribute, and each
request added to the named queue is completed one at a time in the order they were sent.
In addition, RichFaces intelligently removes similar requests produced by the same event
from a queue to improve performance, protecting against unnecessary traffic flooding and
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Queuing_and_traffic_control-requestDelay">
- <title>requestDelay</title>
- <para>
- The <code>requestDelay</code> attribute specifies an amount of time in
milliseconds for the request to wait in the queue before being sent to the server. If a
similar request is added to the queue before the delay is over, the original request is
removed from the queue and not sent.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Queuing_and_traffic_control-ignoreDupResponses">
- <title>ignoreDupResponses</title>
- <para>
- When set to <literal>true</literal>, the
<code>ignoreDupResponses</code> attribute causes responses from the server for
the request to be ignored if there is another similar request in the queue. This avoids
unnecessary updates on the client when another update is expected. The request is still
processed on the server, but if another similar request has been queued then no updates
are made on the client.
- </para>
- </section>
+ </section>
+
+ <section
id="sect-Component_Reference-Common_Ajax_attributes-Queuing_and_traffic_control">
+ <title>Queuing and traffic control</title>
+ <section
id="sect-Component_Reference-Queuing_and_traffic_control-queue">
+ <title>queue</title>
+ <para>
+ The <code>queue</code> attribute defines the name of the queue that
will be used to schedule upcoming Ajax requests. Typically RichFaces does not queue Ajax
requests, so if events are produced simultaneously they will arrive at the server
simultaneously. This can potentially lead to unpredictable results when the responses are
returned. The <code>queue</code> attribute ensures that the requests are
responded to in a set order.
+ </para>
+ <para>
+ A queue name is specified with the <code>queue</code> attribute, and
each request added to the named queue is completed one at a time in the order they were
sent. In addition, RichFaces intelligently removes similar requests produced by the same
event from a queue to improve performance, protecting against unnecessary traffic flooding
and
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Queuing_and_traffic_control-requestDelay">
+ <title>requestDelay</title>
+ <para>
+ The <code>requestDelay</code> attribute specifies an amount of time in
milliseconds for the request to wait in the queue before being sent to the server. If a
similar request is added to the queue before the delay is over, the original request is
removed from the queue and not sent.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Queuing_and_traffic_control-ignoreDupResponses">
+ <title>ignoreDupResponses</title>
+ <para>
+ When set to <literal>true</literal>, the
<code>ignoreDupResponses</code> attribute causes responses from the server for
the request to be ignored if there is another similar request in the queue. This avoids
unnecessary updates on the client when another update is expected. The request is still
processed on the server, but if another similar request has been queued then no updates
are made on the client.
+ </para>
+ </section>
- </section>
-
- <section
id="sect-Component_Reference-Common_Ajax_attributes-Data_processing">
- <title>Data processing</title>
- <para>
- RichFaces uses a form-based approach for sending Ajax requests. As such, each time a
request is sent the data from the requesting component's parent
<acronym>JSF</acronym> form is submitted along with the
<acronym>XMLHTTPRequest</acronym> object. The form data contains values from
the input element and auxiliary information such as state-saving data.
- </para>
- <section id="sect-Component_Reference-Data_processing-process">
- <title>process</title>
- <para>
- The <code>process</code> attribute allows
<acronym>JSF</acronym> processing to be limited to defined components. To only
process the requesting component, <code>process="@this"</code> can
be used.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Data_processing-immediate">
- <title>immediate</title>
- <para>
- If the <code>immediate</code> attribute is set to
<literal>true</literal>, the default ActionListener is executed immediately
during the Apply Request Values phase of the request processing lifecycle, rather than
waitingfor the Invoke Application phase. This allows some data model values to be updated
regardless of whether the Validation phase is successful or not.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Data_processing-bypassUpdates">
- <title>bypassUpdates</title>
- <para>
- If the <code>bypassUpdates</code> attribute is set to
<literal>true</literal>, the Update Model phase of the request processing
lifecycle is bypassed. This is useful if user input needs to be validated but the model
does not need to be updated.
- </para>
- </section>
+ </section>
+
+ <section
id="sect-Component_Reference-Common_Ajax_attributes-Data_processing">
+ <title>Data processing</title>
+ <para>
+ RichFaces uses a form-based approach for sending Ajax requests. As such, each time
a request is sent the data from the requesting component's parent
<acronym>JSF</acronym> form is submitted along with the
<acronym>XMLHTTPRequest</acronym> object. The form data contains values from
the input element and auxiliary information such as state-saving data.
+ </para>
+ <section id="sect-Component_Reference-Data_processing-process">
+ <title>process</title>
+ <para>
+ The <code>process</code> attribute allows
<acronym>JSF</acronym> processing to be limited to defined components. To only
process the requesting component, <code>process="@this"</code> can
be used.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Data_processing-immediate">
+ <title>immediate</title>
+ <para>
+ If the <code>immediate</code> attribute is set to
<literal>true</literal>, the default ActionListener is executed immediately
during the Apply Request Values phase of the request processing lifecycle, rather than
waitingfor the Invoke Application phase. This allows some data model values to be updated
regardless of whether the Validation phase is successful or not.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Data_processing-bypassUpdates">
+ <title>bypassUpdates</title>
+ <para>
+ If the <code>bypassUpdates</code> attribute is set to
<literal>true</literal>, the Update Model phase of the request processing
lifecycle is bypassed. This is useful if user input needs to be validated but the model
does not need to be updated.
+ </para>
+ </section>
- </section>
-
- <section
id="sect-Component_Reference-Common_Ajax_attributes-Action_and_navigation">
- <title>Action and navigation</title>
- <para>
- The <code>action</code> and <code>actionListener</code>
attributes can be used to invoke action methods and define action events.
- </para>
- <section id="sect-Component_Reference-Action_and_navigation-action">
- <title>action</title>
- <para>
- The <code>action</code> attribute is a method binding that points to the
application action to be invoked. The method can be activated during the Apply Request
Values phase or the Invoke Application phase of the request processing lifecycle.
- </para>
- <para>
- The method specified in the <code>action</code> attribute must return
<literal>null</literal> for an Ajax response with a partial page update.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Action_and_navigation-actionListener">
- <title>actionListener</title>
- <para>
- The <code>actionListener</code> attribute is a method binding for
<classname>ActionEvent</classname> methods with a return type of
<literal>void</literal>.
- </para>
- </section>
+ </section>
+
+ <section
id="sect-Component_Reference-Common_Ajax_attributes-Action_and_navigation">
+ <title>Action and navigation</title>
+ <para>
+ The <code>action</code> and <code>actionListener</code>
attributes can be used to invoke action methods and define action events.
+ </para>
+ <section
id="sect-Component_Reference-Action_and_navigation-action">
+ <title>action</title>
+ <para>
+ The <code>action</code> attribute is a method binding that points to
the application action to be invoked. The method can be activated during the Apply Request
Values phase or the Invoke Application phase of the request processing lifecycle.
+ </para>
+ <para>
+ The method specified in the <code>action</code> attribute must return
<literal>null</literal> for an Ajax response with a partial page update.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Action_and_navigation-actionListener">
+ <title>actionListener</title>
+ <para>
+ The <code>actionListener</code> attribute is a method binding for
<classname>ActionEvent</classname> methods with a return type of
<literal>void</literal>.
+ </para>
+ </section>
- </section>
-
- <section
id="sect-Component_Reference-Common_Ajax_attributes-Events_and_JavaScript_interactions">
- <title>Events and JavaScript interactions</title>
- <para>
- RichFaces allows for Ajax-enabled <acronym>JSF</acronym> applications to
be developed without using any additional JavaScript code. However it is still possible to
invoke custom JavaScript code through Ajax events.
- </para>
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onsubmit">
- <title>onsubmit</title>
- <para>
- The <code>onsubmit</code> attribute will invoke the JavaScript code
before the Ajax request is sent. The request is canceled if the JavaScript code defined
for <code>onsubmit</code> returns <literal>false</literal>.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onclick">
- <title>onclick</title>
- <para>
- The <code>onclick</code> attribute functions similarly to the
<code>onsubmit</code> attribute for those components that can be clicked, such
as <classname><a4j:commandButton></classname> and
<classname><a4j:commandLink></classname>. It invokes the defined
JavaScript before the Ajax request, and the request will be canceled if the defined code
returns <literal>false</literal>.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-oncomplete">
- <title>oncomplete</title>
- <para>
- The <code>oncomplete</code> attribute invokes the JavaScript code after
the Ajax response has been returned and the <acronym>DOM</acronym> tree of the
browser has been updated. The code is registered for further invocation of the
<acronym>XMLHTTP</acronym> request object before an Ajax request is sent. As
such, using <acronym>JSF</acronym> Expression Language
(<acronym>EL</acronym>) value binding means the code will not be changed
during processing of the request on the server. Additionally the
<code>oncomplete</code> attribute cannot use the
<literal>this</literal> keyword as it will not point to the component from
which the Ajax request was initiated.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onbegin">
- <title>onbegin</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onsuccess">
- <title>onsuccess</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onerror">
- <title>onerror</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-data">
- <title>data</title>
- <para>
- The <code>data</code> attribute allows the use of additional data during
an Ajax call. <acronym>JSF</acronym> Expression Language
(<acronym>EL</acronym>) can be used to reference the property of the managed
bean, and its value will be serialized in JavaScript Object Notation
(<acronym>JSON</acronym>) and returned to the client side. The property can
then be referenced through the <code>data</code> variable in the event
attribute definitions. Both primitive types and complex types such as arrays and
collections can be serialized and used with <code>data</code>.
- </para>
- <example id="exam-Component_Reference-data-Data_reference_example">
- <title>Data reference example</title>
+ </section>
+ <section
id="sect-Component_Reference-Common_Ajax_attributes-Events_and_JavaScript_interactions">
+ <title>Events and JavaScript interactions</title>
+ <para>
+ RichFaces allows for Ajax-enabled <acronym>JSF</acronym> applications
to be developed without using any additional JavaScript code. However it is still possible
to invoke custom JavaScript code through Ajax events.
+ </para>
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onsubmit">
+ <title>onsubmit</title>
+ <para>
+ The <code>onsubmit</code> attribute will invoke the JavaScript code
before the Ajax request is sent. The request is canceled if the JavaScript code defined
for <code>onsubmit</code> returns <literal>false</literal>.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onclick">
+ <title>onclick</title>
+ <para>
+ The <code>onclick</code> attribute functions similarly to the
<code>onsubmit</code> attribute for those components that can be clicked, such
as <classname><a4j:commandButton></classname> and
<classname><a4j:commandLink></classname>. It invokes the defined
JavaScript before the Ajax request, and the request will be canceled if the defined code
returns <literal>false</literal>.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-oncomplete">
+ <title>oncomplete</title>
+ <para>
+ The <code>oncomplete</code> attribute invokes the JavaScript code
after the Ajax response has been returned and the <acronym>DOM</acronym> tree
of the browser has been updated. The code is registered for further invocation of the
<acronym>XMLHTTP</acronym> request object before an Ajax request is sent. As
such, using <acronym>JSF</acronym> Expression Language
(<acronym>EL</acronym>) value binding means the code will not be changed
during processing of the request on the server. Additionally the
<code>oncomplete</code> attribute cannot use the
<literal>this</literal> keyword as it will not point to the component from
which the Ajax request was initiated.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onbegin">
+ <title>onbegin</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onsuccess">
+ <title>onsuccess</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-onerror">
+ <title>onerror</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Events_and_JavaScript_interactions-data">
+ <title>data</title>
+ <para>
+ The <code>data</code> attribute allows the use of additional data
during an Ajax call. <acronym>JSF</acronym> Expression Language
(<acronym>EL</acronym>) can be used to reference the property of the managed
bean, and its value will be serialized in JavaScript Object Notation
(<acronym>JSON</acronym>) and returned to the client side. The property can
then be referenced through the <code>data</code> variable in the event
attribute definitions. Both primitive types and complex types such as arrays and
collections can be serialized and used with <code>data</code>.
+ </para>
+ <example
id="exam-Component_Reference-data-Data_reference_example">
+ <title>Data reference example</title>
+
<programlisting language="XML">
<a4j:commandButton value="Update" data="#{userBean.name}"
oncomplete="showTheName(data.name)" />
</programlisting>
- </example>
- </section>
+ </example>
+ </section>
- </section>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Rich_inputs"
lang="en-US">
- <title>Rich inputs</title>
- <para>
- This chapter details rich components for user input and interaction.
- </para>
- <section id="sect-Component_Reference-Rich_inputs-richCalendar">
- <title><rich:Calendar></title>
- <para>
- The <classname><rich:calendar></classname> component allows
the user to enter a date and time through an in-line or pop-up calendar. The pop-up
calendar can navigate through months and years, and its look and feel can be highly
customized.
- </para>
- <para>
- The <classname><rich:calendar></classname> component
supports two different ways of loading data through defining the
<code>mode</code> attribute. When not specified, the component uses
<literal>client</literal> mode, which loads an initial portion of data within
a set date range. The range can be defined by using the
<code>preloadDateRangeBegin</code> and
<code>preloadDateRangeEnd</code> attributes. Additional data requests are not
sent. Alternatively, with <code>mode="ajax"</code> the
<classname><rich:calendar></classname> requests portions of data
for rendering from a special data model. The data model can be defined through the
<code>dataModel</code> attribute, which points to an object that implements
the <classname>CalendarDataModel</classname> interface. If the
<code>dataModel</code> attribute is not defined or has a value of
<literal>null</literal>, the <literal>ajax</literal> mode
functions the same as the <literal>client</literal> mode.
- </para>
- <para>
- The <classname><rich:calendar></classname> component is
presented as a pop-up by default, appearing as a text field with a button to expand the
full pop-up calendar. Specifying <code>popup="false</code> will render
the calendar in-line on the page instead, which displays the full calendar without the
text field or display button. The appearance of the display button can be altered from the
standard calendar icon by defining the <code>buttonIcon</code> and
<code>buttonIconDisabled</code> attributes to replace the icon with a
specified file, or by defining the <code>buttonLabel</code> attribute to
display text on the button without an icon. If <code>buttonLabel</code> is
specified then both <code>buttonIcon</code> and
<code>buttonIconDisabled</code> attributes are ignored. The text field box can
also be hidden by setting <code>showInput="false"</code>.
- </para>
- <para>
- The position at which the pop-up calendar displays relative to the text field and
button can be configured using the <code>jointPoint</code> and
<code>direction</code> attributes. The <code>jointPoint</code>
attribute refers to the corner of the text field and button with which the calendar will
be aligned and the <code>direction</code> specifies which direction the pop-up
calendar will span relative to the joint point. The default settings are
<code>jointPoint="bottom-left"</code> and
<code>direction="bottom-right"</code>, causing the pop-up calendar
to align with the bottom-left corner of the text field and span to the bottom-right,
underneath the text field and button. The diagram shows the joint points and directions
that can be used. Alternatively, both <code>jointPoint</code> and
<code>direction</code> can be set to <literal>auto</literal> to
allow smart pop-up positioning.
- </para>
- <para>
- The calendar features a <guibutton>Today</guibutton> button for locating
today's date on the calendar. This can be set to three different values using the
<code>todayControlMode</code> attribute:
- </para>
- <itemizedlist>
- <listitem>
+ </chapter>
+ <chapter id="chap-Component_Reference-Rich_inputs"
lang="en-US">
+ <title>Rich inputs</title>
<para>
- <literal>hidden</literal>, which does not display the button;
+ This chapter details rich components for user input and interaction.
</para>
- </listitem>
- <listitem>
- <para>
- <literal>select</literal>, the default setting, which scrolls the
calendar to the current month and selects today's date; and
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>scroll</literal>, which scrolls the calendar to the current
month but does not select today's date.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <classname><rich:calendar></classname> component can
additionally allow a time of day to be specified with the date. After selecting a date the
option to set a time becomes available. The default time can be set with the
<code>defaultTime</code> attribute. If the time is altered and a new date is
selected, it will not reset unless
<code>resetTimeOnDateSelect="true"</code> is specified.
- </para>
- <para>
- There are several event handlers that are unique to the
<classname><rich:calendar></classname> component.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>ondateselect</code> is triggered when the date is selected by the
user, before the update request is sent.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ondateselected</code> is triggered after the date is selected by
the user.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>oncurrentdateselect</code> is triggered when any of the year- or
month-changing buttons are pressed, before the update request is sent.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>oncurrentdateselected</code> is triggered after any of the year-
or month-changing buttons are pressed.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ontimeselect</code> is triggered when the time is set by the user,
before the update request is sent.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>ontimeselected</code> is triggered after the time has been set by
the user.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The entire calendar can be set as read-only with
<code>readonly="true"</code>. This allows months and years to be
browsed through with the arrow controls, but dates and times cannot be selected.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richcolorPicker">
- <title><rich:colorPicker></title>
- <para>
- The <classname><rich:colorPicker></classname> component
allows the selection of a color, either by picking the color from the spectrum, defining
it through decimal or hexadecimal <acronym>RGB</acronym> (red-green-blue)
values, or defining it through <acronym>HSB</acronym>
(hue-saturation-brightness) values. The
<classname><rich:colorPicker></classname> component can appear
either in-line with a pop-up or flat, and the look and feel can be highly customized.
- </para>
- <para>
- The <code>value</code> attribute stores the currently selected color. The
<code>colorMode</code> attribute defines whether the
<code>value</code> is saved as <literal>hex</literal>
(hexadecimal) or <literal>rgb</literal> (red-green-blue).
- </para>
- <para>
- The <classname><rich:colorPicker></classname> appears
in-line by default, where the color picker spectrum is only shown once the component is
clicked on. The component can appear "flat", where the whole color picker is
shown, by setting <code>flat="true"</code>.
- </para>
- <para>
- The <classname><rich:colorPicker></classname> component has
the unique event handler <code>onbeforeshow</code>, which is triggered
immediately before the color picker is opened. The <code>showEvent</code>
attribute can be used to bind the opening of the color picker to a specific event; it is
bound to the <code>onclick</code> event by default.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richcomboBox">
- <title><rich:comboBox></title>
- <para>
- The <classname><rich:comboBox></classname> component is a
typical combo-box with built-in Ajax capabilities. It supports client-side suggestions,
browser-like selection, Seam entity converter support, and customization of the look and
feel.
- </para>
- <para>
- The <code>value</code> attribute stores the selected value for the
combo-box. Suggestions shown in the drop-down list for the combo-box can be specified in
one of two ways:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Using the <code>suggestionValues</code> attribute, and defining a
collection of suggestions:
- </para>
- <example
id="exam-Component_Reference-richcomboBox-Defining_suggestion_values">
- <title>Defining suggestion values</title>
-
+ <section id="sect-Component_Reference-Rich_inputs-richCalendar">
+ <title><rich:Calendar></title>
+ <para>
+ The <classname><rich:calendar></classname> component
allows the user to enter a date and time through an in-line or pop-up calendar. The pop-up
calendar can navigate through months and years, and its look and feel can be highly
customized.
+ </para>
+ <para>
+ The <classname><rich:calendar></classname> component
supports two different ways of loading data through defining the
<code>mode</code> attribute. When not specified, the component uses
<literal>client</literal> mode, which loads an initial portion of data within
a set date range. The range can be defined by using the
<code>preloadDateRangeBegin</code> and
<code>preloadDateRangeEnd</code> attributes. Additional data requests are not
sent. Alternatively, with <code>mode="ajax"</code> the
<classname><rich:calendar></classname> requests portions of data
for rendering from a special data model. The data model can be defined through the
<code>dataModel</code> attribute, which points to an object that implements
the <classname>CalendarDataModel</classname> interface. If the
<code>dataModel</code> attribute is not defined or has a value of
<literal>null</literal>, the <literal>ajax</literal> mode
functions the same as the <literal>client</literal> mode.
+ </para>
+ <para>
+ The <classname><rich:calendar></classname> component is
presented as a pop-up by default, appearing as a text field with a button to expand the
full pop-up calendar. Specifying <code>popup="false</code> will render
the calendar in-line on the page instead, which displays the full calendar without the
text field or display button. The appearance of the display button can be altered from the
standard calendar icon by defining the <code>buttonIcon</code> and
<code>buttonIconDisabled</code> attributes to replace the icon with a
specified file, or by defining the <code>buttonLabel</code> attribute to
display text on the button without an icon. If <code>buttonLabel</code> is
specified then both <code>buttonIcon</code> and
<code>buttonIconDisabled</code> attributes are ignored. The text field box can
also be hidden by setting <code>showInput="false"</code>.
+ </para>
+ <para>
+ The position at which the pop-up calendar displays relative to the text field and
button can be configured using the <code>jointPoint</code> and
<code>direction</code> attributes. The <code>jointPoint</code>
attribute refers to the corner of the text field and button with which the calendar will
be aligned and the <code>direction</code> specifies which direction the pop-up
calendar will span relative to the joint point. The default settings are
<code>jointPoint="bottom-left"</code> and
<code>direction="bottom-right"</code>, causing the pop-up calendar
to align with the bottom-left corner of the text field and span to the bottom-right,
underneath the text field and button. The diagram shows the joint points and directions
that can be used. Alternatively, both <code>jointPoint</code> and
<code>direction</code> can be set to <literal>auto</literal> to
allow smart pop-up positioning.
+ </para>
+ <para>
+ The calendar features a <guibutton>Today</guibutton> button for
locating today's date on the calendar. This can be set to three different values
using the <code>todayControlMode</code> attribute:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>hidden</literal>, which does not display the button;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>select</literal>, the default setting, which scrolls the
calendar to the current month and selects today's date; and
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>scroll</literal>, which scrolls the calendar to the current
month but does not select today's date.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <classname><rich:calendar></classname> component can
additionally allow a time of day to be specified with the date. After selecting a date the
option to set a time becomes available. The default time can be set with the
<code>defaultTime</code> attribute. If the time is altered and a new date is
selected, it will not reset unless
<code>resetTimeOnDateSelect="true"</code> is specified.
+ </para>
+ <para>
+ There are several event handlers that are unique to the
<classname><rich:calendar></classname> component.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>ondateselect</code> is triggered when the date is selected by
the user, before the update request is sent.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>ondateselected</code> is triggered after the date is selected
by the user.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>oncurrentdateselect</code> is triggered when any of the year-
or month-changing buttons are pressed, before the update request is sent.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>oncurrentdateselected</code> is triggered after any of the
year- or month-changing buttons are pressed.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>ontimeselect</code> is triggered when the time is set by the
user, before the update request is sent.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>ontimeselected</code> is triggered after the time has been set
by the user.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The entire calendar can be set as read-only with
<code>readonly="true"</code>. This allows months and years to be
browsed through with the arrow controls, but dates and times cannot be selected.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Rich_inputs-richcolorPicker">
+ <title><rich:colorPicker></title>
+ <para>
+ The <classname><rich:colorPicker></classname> component
allows the selection of a color, either by picking the color from the spectrum, defining
it through decimal or hexadecimal <acronym>RGB</acronym> (red-green-blue)
values, or defining it through <acronym>HSB</acronym>
(hue-saturation-brightness) values. The
<classname><rich:colorPicker></classname> component can appear
either in-line with a pop-up or flat, and the look and feel can be highly customized.
+ </para>
+ <para>
+ The <code>value</code> attribute stores the currently selected color.
The <code>colorMode</code> attribute defines whether the
<code>value</code> is saved as <literal>hex</literal>
(hexadecimal) or <literal>rgb</literal> (red-green-blue).
+ </para>
+ <para>
+ The <classname><rich:colorPicker></classname> appears
in-line by default, where the color picker spectrum is only shown once the component is
clicked on. The component can appear "flat", where the whole color picker is
shown, by setting <code>flat="true"</code>.
+ </para>
+ <para>
+ The <classname><rich:colorPicker></classname> component
has the unique event handler <code>onbeforeshow</code>, which is triggered
immediately before the color picker is opened. The <code>showEvent</code>
attribute can be used to bind the opening of the color picker to a specific event; it is
bound to the <code>onclick</code> event by default.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Rich_inputs-richcomboBox">
+ <title><rich:comboBox></title>
+ <para>
+ The <classname><rich:comboBox></classname> component is a
typical combo-box with built-in Ajax capabilities. It supports client-side suggestions,
browser-like selection, Seam entity converter support, and customization of the look and
feel.
+ </para>
+ <para>
+ The <code>value</code> attribute stores the selected value for the
combo-box. Suggestions shown in the drop-down list for the combo-box can be specified in
one of two ways:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Using the <code>suggestionValues</code> attribute, and defining a
collection of suggestions:
+ </para>
+ <example
id="exam-Component_Reference-richcomboBox-Defining_suggestion_values">
+ <title>Defining suggestion values</title>
+
<programlisting language="XML">
<rich:comboBox value="#{bean.state}"
suggestionValues="#{bean.suggestions}"
</programlisting>
- </example>
- </listitem>
- <listitem>
- <para>
- Using the JSF components <classname><f:selectItem
/></classname> and <classname><f:selectItems
/></classname> to define a list of items:
- </para>
- <example
id="exam-Component_Reference-richcomboBox-Defining_list_items_for_richinplaceSelect">
- <title>Defining list items for
<rich:inplaceSelect></title>
-
+ </example>
+ </listitem>
+ <listitem>
+ <para>
+ Using the JSF components <classname><f:selectItem
/></classname> and <classname><f:selectItems
/></classname> to define a list of items:
+ </para>
+ <example
id="exam-Component_Reference-richcomboBox-Defining_list_items_for_richinplaceSelect">
+ <title>Defining list items for
<rich:inplaceSelect></title>
+
<programlisting language="XML">
<rich:comboBox value="#{bean.item}"
valueChangeListener="#{bean.selectionChanged}" >
<f:selectItems value="#{bean.selectItems}" />
@@ -441,176 +437,176 @@
<f.selectItem itemValue="Item 4" />
</rich:comboBox>
</programlisting>
- </example>
- </listitem>
- </itemizedlist>
- <para>
- Users can type into the combo-box's text field to enter a value, which also
searches through the suggestion items in the drop-down box. By default, the first
suggestion item is selected as the user types. This behavior can be deactivated by setting
<code>selectFirstOnUpdate="false"</code>. Setting
<code>directInputSuggestions="true"</code> causes the combo-box to
fill the text field box with a matching suggestion as the user types. Alternatively, the
text field can be disabled by setting
<code>enableManualInput="false"</code>, which forces the users to
pick from items in the drop-down box.
- </para>
- <para>
- The <classname><rich:comboBox></classname> component has two
unique event handlers:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>onlistcall</code> triggers before the drop-down list is shown,
allowing the operation to be canceled.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onselect</code> triggers when a suggestion is selected from the
drop-down list, before the update request is sent.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richeditor">
- <title><rich:editor></title>
- <para>
- The <classname><rich:editor></classname> component provides
a fully-featured word processor. It features manageable global configurations, and support
for Seam text, custom plug-ins, and a customized look and feel. The editor is fully based
on the TinyMCE JavaScript editor control, supporting all TinyMCE's parameters, and is
adapted for the <acronym>JSF</acronym> environment with some additional
capabilities.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richfileUpload">
- <title><rich:fileUpload></title>
- <para>
- The <classname><rich:fileUpload></classname> component
allows the user to upload files to a server. It features multiple uploads, automatic
uploads, progress bars, restrictions on file types and sizes to be uploaded, and an
embedded flash module.
- </para>
- <para>
- Files are uploaded to either the temporary folder (different for each operating
system) or to <acronym>RAM</acronym> (random-access memory), depending on the
value of the <code>createTempFile</code> parameter of the Ajax4jsf Filter
section in the <filename>web.xml</filename> for the project.
- </para>
- <para>
- Basic usage requires the <code>uploadData</code> attribute, pointing to
the collection of uploaded files.
- </para>
- <example
id="exam-Component_Reference-richfileUpload-Basic_usage_of_richfileUpload">
- <title>Basic usage of <rich:fileUpload></title>
-
+ </example>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Users can type into the combo-box's text field to enter a value, which also
searches through the suggestion items in the drop-down box. By default, the first
suggestion item is selected as the user types. This behavior can be deactivated by setting
<code>selectFirstOnUpdate="false"</code>. Setting
<code>directInputSuggestions="true"</code> causes the combo-box to
fill the text field box with a matching suggestion as the user types. Alternatively, the
text field can be disabled by setting
<code>enableManualInput="false"</code>, which forces the users to
pick from items in the drop-down box.
+ </para>
+ <para>
+ The <classname><rich:comboBox></classname> component has
two unique event handlers:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>onlistcall</code> triggers before the drop-down list is shown,
allowing the operation to be canceled.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onselect</code> triggers when a suggestion is selected from the
drop-down list, before the update request is sent.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="sect-Component_Reference-Rich_inputs-richeditor">
+ <title><rich:editor></title>
+ <para>
+ The <classname><rich:editor></classname> component
provides a fully-featured word processor. It features manageable global configurations,
and support for Seam text, custom plug-ins, and a customized look and feel. The editor is
fully based on the TinyMCE JavaScript editor control, supporting all TinyMCE's
parameters, and is adapted for the <acronym>JSF</acronym> environment with
some additional capabilities.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Rich_inputs-richfileUpload">
+ <title><rich:fileUpload></title>
+ <para>
+ The <classname><rich:fileUpload></classname> component
allows the user to upload files to a server. It features multiple uploads, automatic
uploads, progress bars, restrictions on file types and sizes to be uploaded, and an
embedded flash module.
+ </para>
+ <para>
+ Files are uploaded to either the temporary folder (different for each operating
system) or to <acronym>RAM</acronym> (random-access memory), depending on the
value of the <code>createTempFile</code> parameter of the Ajax4jsf Filter
section in the <filename>web.xml</filename> for the project.
+ </para>
+ <para>
+ Basic usage requires the <code>uploadData</code> attribute, pointing to
the collection of uploaded files.
+ </para>
+ <example
id="exam-Component_Reference-richfileUpload-Basic_usage_of_richfileUpload">
+ <title>Basic usage of <rich:fileUpload></title>
+
<programlisting language="XML">
<rich:fileUpload uploadData="#{bean.data}" />
</programlisting>
- </example>
- <para>
- The <code>fileUploadListener</code> attribute can be used to call a
function on the server side after each file is uploaded.
- </para>
- <para>
- The <code>immediateUpload</code> attribute can be set to
<literal>true</literal> to upload files as soon as they are added to the list,
rather than waiting for the user to press the <guibutton>Upload</guibutton>.
The <code>autoclear</code> attribute can be set to
<code>true</code> to automatically remove files from the list once they have
been successfully uploaded.
- </para>
- <para>
- The <classname><rich:fileUpload></classname> component can
place restrictions on the files that can be uploaded. The
<code>acceptedTypes</code> attribute restricts the file types to just those
listed. The <code>maxFilesQuantity</code> attribute restricts the maximum
number of files that can be uploaded. Size restrictions can be placed on individual files
by setting the <code>maxRequestSize</code> parameter of the Ajax4jsf Filter
section in the <filename>web.xml</filename> file for the project.
- </para>
- <para>
- There are a number of event handlers specifc to the
<classname><rich:fileUpload></classname> component:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>onadd</code> is triggered before a file is added to the list.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onupload</code> is triggered before a file is uploaded.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onuploadcomplete</code> is triggered after all files in the list
have finished uploading.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onuploadcanceled</code> is triggered after an upload has been
canceled.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onerror</code> is triggered when an error occurs during the upload
process.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <classname><rich:fileUpload></classname> component has
an embedded Flash module that adds extra functionality. To enable the Flash module, set
<code>allowFlash="true"</code>. The Flash module adds additional
features to file selection, such as the ability to choose multiple files at once and the
filtering of files by their type. Additionally, the Flash module provides a smoother
animation of the progress bar during the upload process, as the progress polling is
performed by Flash rather than Ajax.
- </para>
- <para>
- The text labels used in the component can be completely customized. Labels for the
various controls of the component can be set using
<code>addControlLabel</code>, <code>clearAllControlLabel</code>,
<code>clearControlLabel</code>,
<code>stopEntryControlLabel</code>, and
<code>uploadControlLabel</code>. The status label for the upload can be set
using the <code>label</code> attribute and the following wildcards:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>{B} {KB} {MB}</code>: the full size of the file to be uploaded,
measured in bytes, kilobytes and megabytes respectively.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>{_B} {_KB} {_MB}</code>: the amount of data uploaded so far,
measured in bytes, kilobytes and megabytes respectively.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>{ss} {mm} {hh}</code>: the elapsed time in seconds, minutes and
hours respectively.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richinplaceInput">
- <title><rich:inplaceInput></title>
- <para>
- The <classname><rich:inplaceInput></classname> component
allows information to be entered in-line in blocks of text, improving readability of the
text. Changes can be rendered either in-line or for the whole block, and inputs can be
focused with keyboard navigation. The component has three functional states: the
"view" state, where the component displays its initial setting, such as
"click to edit"; the "edit" state, where the user can input text; and
the "changed" state, where the new value for the component has been confirmed
but can be edited again if required.
- </para>
- <para>
- When in the initial "view" state, the starting label can be set using the
<code>defaultLabel</code> attribute, such as
<code>defaultLabel="click to edit"</code>.
- </para>
- <para>
- Basic usage requires the <code>value</code> attribute to point to the
expression for the current value of the component.
- </para>
- <para>
- By default, the event to switch the component to the "edit" state is a
single mouse click. This can be changed using the <code>editEvent</code>
attribute to specify a different event. When switching to "edit" mode, the
existing text can be automatically highlighted to make editing easier by setting
<code>selectOnEdit="true"</code>.
- </para>
- <para>
- The user can confirm and save their input by pressing the
<keycap>Enter</keycap> key or cancel by pressing the
<keycap>Esc</keycap> key. Alternatively, buttons for confirming or canceling
can be added to the component by setting
<code>showControls="true"</code>. These buttons can be positioned
using the <code>controlsHorizontalPosition</code> attribute with settings of
<literal>left</literal>, <literal>right</literal>, or
<literal>center</literal>, and the
<code>controlsVerticalPosition</code> attribute with settings
<literal>bottom</literal>, <literal>center</literal>, or
<literal>top</literal>. The confirmation control icons can be altered using
the <code>saveControlIcon</code> and
<code>cancelControlIcon</code>. Further customization is possible through the
use of facets.
- </para>
- <para>
- There are several event handlers that are specific to the
<classname><rich:inplaceInput></classname> component:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>oneditactivation</code> is triggered before the "edit"
state is activated.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>oneditactivated</code> is triggered after the "edit"
state is activated.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onviewactivation</code> is triggered before the "view"
or "changed" state is activated.
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onviewactivated</code> is triggered after the "view" or
"changed" state is activated.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richinplaceSelect">
- <title><rich:inplaceSelect></title>
- <para>
- The <classname><rich:inplaceSelect></classname> component is
similar to the <classname><rich:inplaceInput></classname>
component, but the uses a drop-down selection box to enter text instead of a regular text
field. Changes can be rendered either in-line or for the whole block, and inputs can be
focused with keyboard navigation. The component has three functional states: the
"view" state, where the component displays its initial setting, such as
"click to edit"; the "edit" state, where the user can select a value
from a drop-down list; and the "changed" state, where the new value for the
component has been confirmed but can be edited again if required.
- </para>
- <para>
- When in the initial "view" state, the starting label can be set using the
<code>defaultLabel</code> attribute, such as
<code>defaultLabel="click to edit"</code>.
- </para>
- <para>
- Basic usage requires the <code>value</code> attribute to point to the
expression for the current value of the component and a list of items. The list of items
can be defined using the JSF components
<classname><f:selectItem/></classname> and
<classname><f:selectItems/></classname>.
- </para>
- <example
id="exam-Component_Reference-richinplaceSelect-Defining_list_items_for_richinplaceSelect">
- <title>Defining list items for <rich:inplaceSelect></title>
-
+ </example>
+ <para>
+ The <code>fileUploadListener</code> attribute can be used to call a
function on the server side after each file is uploaded.
+ </para>
+ <para>
+ The <code>immediateUpload</code> attribute can be set to
<literal>true</literal> to upload files as soon as they are added to the list,
rather than waiting for the user to press the <guibutton>Upload</guibutton>.
The <code>autoclear</code> attribute can be set to
<code>true</code> to automatically remove files from the list once they have
been successfully uploaded.
+ </para>
+ <para>
+ The <classname><rich:fileUpload></classname> component
can place restrictions on the files that can be uploaded. The
<code>acceptedTypes</code> attribute restricts the file types to just those
listed. The <code>maxFilesQuantity</code> attribute restricts the maximum
number of files that can be uploaded. Size restrictions can be placed on individual files
by setting the <code>maxRequestSize</code> parameter of the Ajax4jsf Filter
section in the <filename>web.xml</filename> file for the project.
+ </para>
+ <para>
+ There are a number of event handlers specifc to the
<classname><rich:fileUpload></classname> component:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>onadd</code> is triggered before a file is added to the list.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onupload</code> is triggered before a file is uploaded.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onuploadcomplete</code> is triggered after all files in the
list have finished uploading.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onuploadcanceled</code> is triggered after an upload has been
canceled.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onerror</code> is triggered when an error occurs during the
upload process.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <classname><rich:fileUpload></classname> component
has an embedded Flash module that adds extra functionality. To enable the Flash module,
set <code>allowFlash="true"</code>. The Flash module adds additional
features to file selection, such as the ability to choose multiple files at once and the
filtering of files by their type. Additionally, the Flash module provides a smoother
animation of the progress bar during the upload process, as the progress polling is
performed by Flash rather than Ajax.
+ </para>
+ <para>
+ The text labels used in the component can be completely customized. Labels for the
various controls of the component can be set using
<code>addControlLabel</code>, <code>clearAllControlLabel</code>,
<code>clearControlLabel</code>,
<code>stopEntryControlLabel</code>, and
<code>uploadControlLabel</code>. The status label for the upload can be set
using the <code>label</code> attribute and the following wildcards:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>{B} {KB} {MB}</code>: the full size of the file to be uploaded,
measured in bytes, kilobytes and megabytes respectively.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{_B} {_KB} {_MB}</code>: the amount of data uploaded so far,
measured in bytes, kilobytes and megabytes respectively.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{ss} {mm} {hh}</code>: the elapsed time in seconds, minutes and
hours respectively.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="sect-Component_Reference-Rich_inputs-richinplaceInput">
+ <title><rich:inplaceInput></title>
+ <para>
+ The <classname><rich:inplaceInput></classname> component
allows information to be entered in-line in blocks of text, improving readability of the
text. Changes can be rendered either in-line or for the whole block, and inputs can be
focused with keyboard navigation. The component has three functional states: the
"view" state, where the component displays its initial setting, such as
"click to edit"; the "edit" state, where the user can input text; and
the "changed" state, where the new value for the component has been confirmed
but can be edited again if required.
+ </para>
+ <para>
+ When in the initial "view" state, the starting label can be set using the
<code>defaultLabel</code> attribute, such as
<code>defaultLabel="click to edit"</code>.
+ </para>
+ <para>
+ Basic usage requires the <code>value</code> attribute to point to the
expression for the current value of the component.
+ </para>
+ <para>
+ By default, the event to switch the component to the "edit" state is a
single mouse click. This can be changed using the <code>editEvent</code>
attribute to specify a different event. When switching to "edit" mode, the
existing text can be automatically highlighted to make editing easier by setting
<code>selectOnEdit="true"</code>.
+ </para>
+ <para>
+ The user can confirm and save their input by pressing the
<keycap>Enter</keycap> key or cancel by pressing the
<keycap>Esc</keycap> key. Alternatively, buttons for confirming or canceling
can be added to the component by setting
<code>showControls="true"</code>. These buttons can be positioned
using the <code>controlsHorizontalPosition</code> attribute with settings of
<literal>left</literal>, <literal>right</literal>, or
<literal>center</literal>, and the
<code>controlsVerticalPosition</code> attribute with settings
<literal>bottom</literal>, <literal>center</literal>, or
<literal>top</literal>. The confirmation control icons can be altered using
the <code>saveControlIcon</code> and
<code>cancelControlIcon</code>. Further customization is possible through the
use of facets.
+ </para>
+ <para>
+ There are several event handlers that are specific to the
<classname><rich:inplaceInput></classname> component:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>oneditactivation</code> is triggered before the
"edit" state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>oneditactivated</code> is triggered after the "edit"
state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onviewactivation</code> is triggered before the
"view" or "changed" state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onviewactivated</code> is triggered after the "view"
or "changed" state is activated.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
id="sect-Component_Reference-Rich_inputs-richinplaceSelect">
+ <title><rich:inplaceSelect></title>
+ <para>
+ The <classname><rich:inplaceSelect></classname> component
is similar to the <classname><rich:inplaceInput></classname>
component, but the uses a drop-down selection box to enter text instead of a regular text
field. Changes can be rendered either in-line or for the whole block, and inputs can be
focused with keyboard navigation. The component has three functional states: the
"view" state, where the component displays its initial setting, such as
"click to edit"; the "edit" state, where the user can select a value
from a drop-down list; and the "changed" state, where the new value for the
component has been confirmed but can be edited again if required.
+ </para>
+ <para>
+ When in the initial "view" state, the starting label can be set using the
<code>defaultLabel</code> attribute, such as
<code>defaultLabel="click to edit"</code>.
+ </para>
+ <para>
+ Basic usage requires the <code>value</code> attribute to point to the
expression for the current value of the component and a list of items. The list of items
can be defined using the JSF components
<classname><f:selectItem/></classname> and
<classname><f:selectItems/></classname>.
+ </para>
+ <example
id="exam-Component_Reference-richinplaceSelect-Defining_list_items_for_richinplaceSelect">
+ <title>Defining list items for
<rich:inplaceSelect></title>
+
<programlisting language="XML">
<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="click
to edit" >
<f:selectItems value="#{bean.selectItems}" />
@@ -620,918 +616,919 @@
<f.selectItem itemValue="4" itemLabel="Item 4" />
</rich:comboBox>
</programlisting>
- </example>
- <para>
- By default, the event to switch the component to the "edit" state is a
single mouse click. This can be changed using the <code>editEvent</code>
attribute to specify a different event. When switching to "edit" mode, the
drop-down list of possible values will automatically be displayed; this can be deactivated
by setting <code>openOnEdit="false"</code>.
- </para>
- <para>
- Once the user selects an option from the drop-down list, the item becomes the new
value for the component and the state is switched to the "changed" state.
Alternatively, buttons for confirming or canceling can be added to the component by
setting <code>showControls="true"</code>. These buttons can be
positioned using the <code>controlsHorizontalPosition</code> attribute with
settings of <literal>left</literal>, <literal>right</literal>, or
<literal>center</literal>, and the
<code>controlsVerticalPosition</code> attribute with settings
<literal>bottom</literal>, <literal>center</literal>, or
<literal>top</literal>. The confirmation control icons can be altered using
the <code>saveControlIcon</code> and
<code>cancelControlIcon</code>. Further customization is possible through the
use of facets.
- </para>
- <para>
- There are several event handlers that are specific to the
<classname><rich:inplaceSelect></classname> component:
- </para>
- <itemizedlist>
- <listitem>
+ </example>
+ <para>
+ By default, the event to switch the component to the "edit" state is a
single mouse click. This can be changed using the <code>editEvent</code>
attribute to specify a different event. When switching to "edit" mode, the
drop-down list of possible values will automatically be displayed; this can be deactivated
by setting <code>openOnEdit="false"</code>.
+ </para>
+ <para>
+ Once the user selects an option from the drop-down list, the item becomes the new
value for the component and the state is switched to the "changed" state.
Alternatively, buttons for confirming or canceling can be added to the component by
setting <code>showControls="true"</code>. These buttons can be
positioned using the <code>controlsHorizontalPosition</code> attribute with
settings of <literal>left</literal>, <literal>right</literal>, or
<literal>center</literal>, and the
<code>controlsVerticalPosition</code> attribute with settings
<literal>bottom</literal>, <literal>center</literal>, or
<literal>top</literal>. The confirmation control icons can be altered using
the <code>saveControlIcon</code> and
<code>cancelControlIcon</code>. Further customization is possible through the
use of facets.
+ </para>
+ <para>
+ There are several event handlers that are specific to the
<classname><rich:inplaceSelect></classname> component:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>oneditactivation</code> is triggered before the
"edit" state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>oneditactivated</code> is triggered after the "edit"
state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onviewactivation</code> is triggered before the
"view" or "changed" state is activated.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onviewactivated</code> is triggered after the "view"
or "changed" state is activated.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
id="sect-Component_Reference-Rich_inputs-richinputNumberSlider">
+ <title><rich:inputNumberSlider></title>
+ <para>
+ The <classname><rich:inputNumberSlider></classname>
component provides a slider for changing numerical values. Optional features include a
tool-tip to display the value while sliding, and a text field for typing the numerical
value which can then be validated against the slider's range.
+ </para>
+ <para>
+ Basic use of the component with no attributes specified will render a slider with a
minimum value of 0, a maximum of 100, and a gradient step of 1, together with a text field
for typing the desired numerical value. The text field can be removed by setting
<code>showInput="false"</code>, and the properties of the slider can
be set with the attributes <code>minValue</code>,
<code>maxValue</code>, and <code>step</code>. The slider is
labeled with the minimum and maximum boundary values, and a tool-tip showing the current
value is shown while sliding the slider; these items can be turned off by setting
<code>showBoundaryValues="false"</code> and
<code>showToolTip="false"</code> respectively.
+ </para>
+ <para>
+ Arrow controls can be added to either side of the slider to adjust the value
incrementally by setting <code>showArrows="true"</code>. Clicking
the arrows move the slider indicator in that direction by the gradient step, and clicking
and holding the arrows moves the indicator continuously. The time delay for each step when
updating continuously can be defined using the <code>delay</code> attribute.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Rich_inputs-richinputNumberSpinner">
+ <title><rich:inputNumberSpinner></title>
+ <para>
+ The <classname><rich:inputNumberSpinner></classname>
component is a single-line input field with buttons to increase and decrease a numerical
value. The value can be changed using the corresponding directional keys on a keyboard, or
by typing into the field.
+ </para>
+ <para>
+ Basic use of the component with no attributes specified will render a number
spinner with a minimum value of 1, a maximum value of 100, and a gradient step of 1. These
default properties can be re-defined with the attributes
<code>minValue</code>, <code>maxValue</code>, and
<code>step</code> respectively. The starting value of the spinner is the
minimum value unless otherwise specified with the <code>value</code>
attribute.
+ </para>
+ <para>
+ When changing the value using the buttons, raising the value above the maximum or
cause the spinner to restart at the minimum value. Likewise, when lowering below the
minimum value the spinner will reset to the maximum value. This behavior can be
deactivated by setting <code>cycled="false"</code>, which will cause
the buttons to stop responding when the reach the maximum or minimum value.
+ </para>
+ <para>
+ The ability to change the value by typing into the text field can be disabled by
setting <code>enableManualInput="false"</code>.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Rich_inputs-richsuggestionBox">
+ <title><rich:suggestionBox></title>
+ <para>
+ The <classname><rich:suggestionBox></classname> component
adds a feature-rich drop-down list of suggestions to any text input component.
+ </para>
+ <para>
+ The <classname><rich:suggestionBox></classname> component
needs the attributes defined for basic use: <code>for</code>, which identifies
the component to attach the suggestion box to; <code>suggestionAction</code>,
which defines the method for getting the collection of suggestion data; and
<code>var</code>, which defines a collection name for access to the currently
highlighted row. Typically the suggestions are presented as a list with one or more
columns of suggestion data; the layout of these columns is defined inside the
<classname><rich:suggestionBox></classname> tags using
<classname><h:column></classname> and other
<acronym>JSF</acronym> components.
+ </para>
+ <para>
+ For suggestion lists with multiple columns, the <code>fetchValue</code>
attribute can be used to specify which column is used when selecting the value for the
input component.
+ </para>
+ <para>
+ The <code>tokens</code> attribute can be used to define separator
characters, which are used when multiple values need to be entered and a new suggestion
made for each value. For example, <code>tokens=","</code> (a comma)
will begin a new suggestion query each time a comma is typed. Multiple separators can be
defined with spaces in between (<code>tokens=", . ; [ ]"</code>) or
linking to a bean property that holds the collection of separator tokens.
+ </para>
+ <para>
+ The <code>minChars</code> attribute can be used to limit sending the
Ajax request until a certain amount of characters has been entered. If the query returns
no results, an appropriate message to display can be set with the
<code>nothingLabel</code> attribute.
+ </para>
+ <para>
+ Instead of returning just one value from an object, the entire object can be
returned to the client and handled appropriately. This is done by specifying
<code>usingSuggestObjects="true"</code> and setting the
<code>onobjectchange</code> attribute to a JavaScript method to handle the
object, passing the <literal>suggestion</literal> object as a parameter.
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Panels_and_containers"
lang="en-US">
+ <title>Panels and containers</title>
<para>
- <code>oneditactivation</code> is triggered before the "edit"
state is activated.
+ This chapter details those components which act as panels and containers to hold
groups of other components.
</para>
- </listitem>
- <listitem>
+ <section
id="sect-Component_Reference-Panels_and_containers-a4jform">
+ <title><a4j:form></title>
+ <para>
+ The <classname><a4j:form></classname> builds on the
functionality of the JavaServer Faces (<acronym>JSF</acronym>) component
<classname><h:form></classname>, adding Ajax capabilities to the
form.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ The <acronym>JSF</acronym> component
<classname><h:form></classname>, on which the
<classname><a4j:form></classname> component is based, had an
issue whereby the <classname><h:commandLink></classname>
component could not be re-rendered without re-rendering the entire form.
<classname><a4j:form></classname> and
<classname><a4j:commandLink></classname> fix this issue.
+ </para>
+ </note>
+ <para>
+ The <classname><a4j:form></classname> component can add
indirect Ajax support to non-Ajax components on the form by setting
<code>ajaxSubmit="true"</code>. It then uses the standard Ajax
component attributes and updates components specified with the
<code>render</code> attribute.
+ </para>
+ <important>
+ <title>Important</title>
+ <para>
+ <classname><a4j:form></classname> should not use
<code>ajaxSubmit="true"</code> if it contains other Ajax-capable
components.
+ </para>
+ <para>
+ Additionally, due to security reasons the file upload form element cannot be
indirectly made Ajax-capable with
<classname><a4j:form></classname>.
+ </para>
+ </important>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-a4joutputPanel">
+ <title><a4j:outputPanel></title>
+ <para>
+ The <classname><a4j:outputPanel></classname> component is
used to group together components in to update them as a whole, rather than having to
specify the components individually.
+ </para>
+ <para>
+ The <code>layout</code> attribute can be used to determine how the
component is rendered in <acronym>HTML</acronym>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>layout="inline"</code> is the default behavior, which
will render the component as a pair of <code><span></code> tags
containing the child components.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>layout="block"</code> will render the component as a
pair of <code><div></code> tags containing the child components,
which will use any defined <code><div></code> element styles.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>layout="none"</code> will render the component as a
pair of <code><span></code> tags with an identifier equal to
that of a child component. If the child component is rendered then the
<code><span></code> are not included, leaving no markup
representing the <classname><a4j:outputPanel></classname> in
<acronym>HTML</acronym>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Setting <code>ajaxRendered="true"</code> will cause the
<classname><a4j:outputPanel></classname> to be updated with each
Ajax response for the page, even when not listed explicitly by the requesting component.
This can in turn be overridden by specific attributes on any requesting components.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-a4jregion">
+ <title><a4j:region></title>
+ <para>
+ The <classname><a4j:region></classname> component
specifies a part of the document object model (<acronym>DOM</acronym>) tree to
be processed on the server. The processing includes data handling during decoding,
conversion, validation, and model updating. When not using
<classname><a4j:region></classname>, the entire view functions
as a region.
+ </para>
+ <para>
+ The whole form is still submitted to the server, but only the specified region is
processed. Regions can be nested, in which case only the immediate region of the component
initiating the request will be processed.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richmodalPanel">
+ <title><rich:modalPanel></title>
+ <para>
+ The <classname><rich:modalPanel></classname> component
provides a modal panel or window that blocks interaction with the rest of the application
while active. It can be easily positioned on the screen, dragged to a new position by the
user, and re-sized.
+ </para>
+ <important>
+ <title>Important</title>
+ <para>
+ The <classname><rich:modalPanel></classname> component
should always be placed outside the original
<classname><h:form></classname>, and must include its own
<classname><h:form></classname> if performing submits.
+ </para>
+ </important>
+ <para>
+ By default, the modal panel can be both re-sized and re-positioned by the user. The
minimum possible size for the panel can be set with the These abilities can be deactivated
by setting <code>resizable</code> or <code>movable</code> to
<literal>false</literal> as necessary. The state of the modal panel, including
size and position on screen, can be maintained and restored after submitting and reloading
by setting <code>keepVisualState="true"</code>.
+ </para>
+ <para>
+ If <code>showWhenRendered="true"</code> then the modal panel
will display when the page is first loaded.
+ </para>
+ <example
id="exam-Component_Reference-richmodalPanel-richmodalPanel_example">
+ <title><rich:modalPanel> example</title>
+
+<programlisting language="xml">
+<a onclick="Richfaces.showModalPanel('pnl');"
href="#">Show ModalPanel</a>
+<a4j:form>
+ <rich:modalPanel id="pnl" >
+ <a onclick="Richfaces.hideModalPanel('pnl');"
href="#">Hide ModalPanel</a>
+ </rich:modalPanel>
+</a4j:form>
+</programlisting>
+ </example>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanel">
+ <title><rich:panel></title>
+ <para>
+ The <classname><rich:panel></classname> component is a
bordered panel with an optional header.
+ </para>
+ <para>
+ No attributes need to be listed for basic usage. To add a header to the panel, use
the <code>header</code> attribute to specify the text to appear in the header.
Alternatively the header can be constructed using a header facet.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanelBar">
+ <title><rich:panelBar></title>
+ <para>
+ The <classname><rich:panelBar></classname> is a series of
panels stacked on top of each other, each collapsed such that only the header of the panel
is showing. When the header of a panel is clicked, it is expanded to show the content of
the panel. Clicking on a different header will collapse the previous panel and epand the
selected one. Another name for the component is "accordion". Each panel in
contained in a <classname><rich:panelBar></classname> component
is a <classname><rich:panelBarItem></classname> component.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanelBarItem">
+ <title><rich:panelBarItem></title>
+ <para>
+ The <classname><rich:panelBarItem></classname> component
is a panel for use with the
<classname><rich:panelBar></classname> component.
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenu">
+ <title><rich:panelMenu></title>
+ <para>
+ The <classname><rich:panelMenu></classname> component can
be used in conjunction with
<classname><rich:panelMenuItem></classname> and
<classname><rich:panelMenuGroup></classname> to create an
expanding, hierarchical menu. The
<classname><rich:panelMenu></classname> component's
appearance can be highly customized, and the hierarchy can stretch to any number of
sub-levels.
+ </para>
+ <para>
+ The <code>selectedChild</code> attribute is used to point to the name
of the currently selected menu item.
+ </para>
+ <para>
+ By default, the event to expand the menu is a mouse click. This can be changed by
setting <code>event</code> to specify the preferred event. Several sub-menus
can be expanded a once unless the <code>expandSingle</code> is set to
<literal>true</literal>, which only allows one sub-menu at a time to be
expanded.
+ </para>
+ <para>
+ The <code>mode</code> attribute defines the submission mode for normal
menu items, and the <code>expandMode</code> attribute defines the submission
mode for menu items that expand and collapse. The settings for these attributes apply to
the entire menu unless a menu item defines its own individual
<code>mode</code> or <code>expandMode</code>. The values for
<code>mode</code> and <code>expandMode</code> are:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>server</literal>, the default setting, which submits the
form normally and completely refreshes the page;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>ajax</literal>, which performs an Ajax form submission, and
re-renders elements specified with the <code>render</code> attribute; and
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>none</literal>, which causes the
<code>action</code> and <code>actionListener</code> items to be
ignored, and the behavior is fully defined by the nested components instead of responses
from submissions.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenuGroup">
+ <title><rich:panelMenuGroup></title>
+ <para>
+ The <classname><rich:panelMenuGroup></classname>
component defines a group of
<classname><rich:panelMenuItem></classname> components inside a
<classname><rich:panelMenu></classname>.
+ </para>
+ <para>
+ If the <code>expandMode</code> is unspecified, the submission behavior
for the group is inherited from the parent
<classname><rich:panelMenu></classname>. Otherwise, the
<code>expandMode</code> setting is used instead of the parent's
behavior.
+ </para>
+ <para>
+ Icons for menu items can be chosen from a set of standard icons. There are three
attributes that relate to the different menu states that the icon represents:
<code>iconExpanded</code>, <code>iconCollapsed</code>, and
<code>iconDisabled</code>. The standard icons are shown in <xref
linkend="figu-Component_Reference-richpanelMenuGroup-Standard_icons" />.
+ </para>
+ <figure
id="figu-Component_Reference-richpanelMenuGroup-Standard_icons">
+ <title>Standard icons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuGroupIcons.png"
format="PNG" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenuItem">
+ <title><rich:panelMenuItem></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richsimpleTogglePanel">
+ <title><rich:simpleTogglePanel></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richtabPanel">
+ <title><rich:tabPanel></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richtab">
+ <title><rich:tab></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richtogglePanel">
+ <title><rich:togglePanel></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Panels_and_containers-richtoggleControl">
+ <title><rich:toggleControl></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Tables_and_grids"
lang="en-US">
+ <title>Tables and grids</title>
<para>
- <code>oneditactivated</code> is triggered after the "edit"
state is activated.
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section id="sect-Component_Reference-Tables_and_grids-richcolumn">
+ <title>rich:column</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richcolumnGroup">
+ <title>rich:columnGroup</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Tables_and_grids-richcolumns">
+ <title>rich:columns</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richdataFilterSlider">
+ <title>rich:dataFilterSlider</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richdataGrid">
+ <title>rich:dataGrid</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richdataScroller">
+ <title>rich:dataScroller</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richdataTable">
+ <title>rich:dataTable</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richextendedDataTable">
+ <title>rich:extendedDataTable</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Tables_and_grids-richrepeat">
+ <title>rich:repeat</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richscrollableDataTable">
+ <title>rich:scrollableDataTable</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-richsubTable">
+ <title>rich:subTable</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-Table_filtering">
+ <title>Table filtering</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Tables_and_grids-Table_sorting">
+ <title>Table sorting</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Lists_and_trees"
lang="en-US">
+ <title>Lists and trees</title>
<para>
- <code>onviewactivation</code> is triggered before the "view"
or "changed" state is activated.
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section
id="sect-Component_Reference-Lists_and_trees-richdataDefinitionList">
+ <title>rich:dataDefinitionList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Lists_and_trees-richdataList">
+ <title>rich:dataList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richdataOrderedList">
+ <title>rich:dataOrderedList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richlistShuttle">
+ <title>rich:listShuttle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richorderingList">
+ <title>rich:orderingList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Lists_and_trees-richpickList">
+ <title>rich:pickList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richchangeExpandListener">
+ <title>rich:changeExpandListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richnodeSelectListener">
+ <title>rich:nodeSelectListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richrecursiveTreeNodesAdapter">
+ <title>rich:recursiveTreeNodesAdapter</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Lists_and_trees-richtree">
+ <title>rich:tree</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Lists_and_trees-richtreeNode">
+ <title>rich:treeNode</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Lists_and_trees-richtreeNodesAdapter">
+ <title>rich:treeNodesAdapter</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Menus_and_toolbars"
lang="en-US">
+ <title>Menus and toolbars</title>
<para>
- <code>onviewactivated</code> is triggered after the "view" or
"changed" state is activated.
+ Incomplete
</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section
id="sect-Component_Reference-Rich_inputs-richinputNumberSlider">
- <title><rich:inputNumberSlider></title>
- <para>
- The <classname><rich:inputNumberSlider></classname>
component provides a slider for changing numerical values. Optional features include a
tool-tip to display the value while sliding, and a text field for typing the numerical
value which can then be validated against the slider's range.
- </para>
- <para>
- Basic use of the component with no attributes specified will render a slider with a
minimum value of 0, a maximum of 100, and a gradient step of 1, together with a text field
for typing the desired numerical value. The text field can be removed by setting
<code>showInput="false"</code>, and the properties of the slider can
be set with the attributes <code>minValue</code>,
<code>maxValue</code>, and <code>step</code>. The slider is
labeled with the minimum and maximum boundary values, and a tool-tip showing the current
value is shown while sliding the slider; these items can be turned off by setting
<code>showBoundaryValues="false"</code> and
<code>showToolTip="false"</code> respectively.
- </para>
- <para>
- Arrow controls can be added to either side of the slider to adjust the value
incrementally by setting <code>showArrows="true"</code>. Clicking
the arrows move the slider indicator in that direction by the gradient step, and clicking
and holding the arrows moves the indicator continuously. The time delay for each step when
updating continuously can be defined using the <code>delay</code> attribute.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Rich_inputs-richinputNumberSpinner">
- <title><rich:inputNumberSpinner></title>
- <para>
- The <classname><rich:inputNumberSpinner></classname>
component is a single-line input field with buttons to increase and decrease a numerical
value. The value can be changed using the corresponding directional keys on a keyboard, or
by typing into the field.
- </para>
- <para>
- Basic use of the component with no attributes specified will render a number spinner
with a minimum value of 1, a maximum value of 100, and a gradient step of 1. These default
properties can be re-defined with the attributes <code>minValue</code>,
<code>maxValue</code>, and <code>step</code> respectively. The
starting value of the spinner is the minimum value unless otherwise specified with the
<code>value</code> attribute.
- </para>
- <para>
- When changing the value using the buttons, raising the value above the maximum or
cause the spinner to restart at the minimum value. Likewise, when lowering below the
minimum value the spinner will reset to the maximum value. This behavior can be
deactivated by setting <code>cycled="false"</code>, which will cause
the buttons to stop responding when the reach the maximum or minimum value.
- </para>
- <para>
- The ability to change the value by typing into the text field can be disabled by
setting <code>enableManualInput="false"</code>.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Rich_inputs-richsuggestionBox">
- <title><rich:suggestionBox></title>
- <para>
- The <classname><rich:suggestionBox></classname> component
adds a feature-rich drop-down list of suggestions to any text input component.
- </para>
- <para>
- The <classname><rich:suggestionBox></classname> component
needs the attributes defined for basic use: <code>for</code>, which identifies
the component to attach the suggestion box to; <code>suggestionAction</code>,
which defines the method for getting the collection of suggestion data; and
<code>var</code>, which defines a collection name for access to the currently
highlighted row. Typically the suggestions are presented as a list with one or more
columns of suggestion data; the layout of these columns is defined inside the
<classname><rich:suggestionBox></classname> tags using
<classname><h:column></classname> and other
<acronym>JSF</acronym> components.
- </para>
- <para>
- For suggestion lists with multiple columns, the <code>fetchValue</code>
attribute can be used to specify which column is used when selecting the value for the
input component.
- </para>
- <para>
- The <code>tokens</code> attribute can be used to define separator
characters, which are used when multiple values need to be entered and a new suggestion
made for each value. For example, <code>tokens=","</code> (a comma)
will begin a new suggestion query each time a comma is typed. Multiple separators can be
defined with spaces in between (<code>tokens=", . ; [ ]"</code>) or
linking to a bean property that holds the collection of separator tokens.
- </para>
- <para>
- The <code>minChars</code> attribute can be used to limit sending the Ajax
request until a certain amount of characters has been entered. If the query returns no
results, an appropriate message to display can be set with the
<code>nothingLabel</code> attribute.
- </para>
- <para>
- Instead of returning just one value from an object, the entire object can be returned
to the client and handled appropriately. This is done by specifying
<code>usingSuggestObjects="true"</code> and setting the
<code>onobjectchange</code> attribute to a JavaScript method to handle the
object, passing the <literal>suggestion</literal> object as a parameter.
- </para>
- </section>
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richcontextMenu">
+ <title>rich:contextMenu</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richdropDownMenu">
+ <title>rich:dropDownMenu</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richmenuGroup">
+ <title>rich:menuGroup</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richmenuItem">
+ <title>rich:menuItem</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richmenuSeparator">
+ <title>rich:menuSeparator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richtoolBar">
+ <title>rich:toolBar</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Menus_and_toolbars-richtoolBarGroup">
+ <title>rich:toolBarGroup</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Panels_and_containers"
lang="en-US">
- <title>Panels and containers</title>
- <para>
- This chapter details those components which act as panels and containers to hold groups
of other components.
- </para>
- <section id="sect-Component_Reference-Panels_and_containers-a4jform">
- <title><a4j:form></title>
- <para>
- The <classname><a4j:form></classname> builds on the
functionality of the JavaServer Faces (<acronym>JSF</acronym>) component
<classname><h:form></classname>, adding Ajax capabilities to the
form.
- </para>
- <note>
- <title>Note</title>
- <para>
- The <acronym>JSF</acronym> component
<classname><h:form></classname>, on which the
<classname><a4j:form></classname> component is based, had an
issue whereby the <classname><h:commandLink></classname>
component could not be re-rendered without re-rendering the entire form.
<classname><a4j:form></classname> and
<classname><a4j:commandLink></classname> fix this issue.
- </para>
- </note>
- <para>
- The <classname><a4j:form></classname> component can add
indirect Ajax support to non-Ajax components on the form by setting
<code>ajaxSubmit="true"</code>. It then uses the standard Ajax
component attributes and updates components specified with the
<code>render</code> attribute.
- </para>
- <important>
- <title>Important</title>
- <para>
- <classname><a4j:form></classname> should not use
<code>ajaxSubmit="true"</code> if it contains other Ajax-capable
components.
- </para>
- <para>
- Additionally, due to security reasons the file upload form element cannot be
indirectly made Ajax-capable with
<classname><a4j:form></classname>.
- </para>
- </important>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-a4joutputPanel">
- <title><a4j:outputPanel></title>
- <para>
- The <classname><a4j:outputPanel></classname> component is
used to group together components in to update them as a whole, rather than having to
specify the components individually.
- </para>
- <para>
- The <code>layout</code> attribute can be used to determine how the
component is rendered in <acronym>HTML</acronym>:
- </para>
- <itemizedlist>
- <listitem>
+ </chapter>
+ <chapter id="chap-Component_Reference-Messages"
lang="en-US">
+ <title>Messages</title>
<para>
- <code>layout="inline"</code> is the default behavior, which
will render the component as a pair of <code><span></code> tags
containing the child components.
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section id="sect-Component_Reference-Messages-richmessage">
+ <title>rich:message</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Messages-richmessages">
+ <title>rich:messages</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Messages-richprogressBar">
+ <title>rich:progressBar</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Messages-richtoolTip">
+ <title>rich:toolTip</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Drag_and_drop"
lang="en-US">
+ <title>Drag and drop</title>
<para>
- <code>layout="block"</code> will render the component as a
pair of <code><div></code> tags containing the child components,
which will use any defined <code><div></code> element styles.
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section
id="sect-Component_Reference-Drag_and_drop-richdragIndicator">
+ <title>rich:dragIndicator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Drag_and_drop-richdragSupport">
+ <title>rich:dragSupport</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Drag_and_drop-richdropSupport">
+ <title>rich:dropSupport</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Drag_and_drop-richdragListener">
+ <title>rich:dragListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Drag_and_drop-richdropListener">
+ <title>rich:dropListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Drag_and_drop-richdndParam">
+ <title>rich:dndParam</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Layout_and_appearance"
lang="en-US">
+ <title>Layout and appearance</title>
<para>
- <code>layout="none"</code> will render the component as a pair
of <code><span></code> tags with an identifier equal to that of
a child component. If the child component is rendered then the
<code><span></code> are not included, leaving no markup
representing the <classname><a4j:outputPanel></classname> in
<acronym>HTML</acronym>.
+ Incomplete
</para>
- </listitem>
- </itemizedlist>
- <para>
- Setting <code>ajaxRendered="true"</code> will cause the
<classname><a4j:outputPanel></classname> to be updated with each
Ajax response for the page, even when not listed explicitly by the requesting component.
This can in turn be overridden by specific attributes on any requesting components.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Panels_and_containers-a4jregion">
- <title><a4j:region></title>
- <para>
- The <classname><a4j:region></classname> component specifies
a part of the document object model (<acronym>DOM</acronym>) tree to be
processed on the server. The processing includes data handling during decoding,
conversion, validation, and model updating. When not using
<classname><a4j:region></classname>, the entire view functions
as a region.
- </para>
- <para>
- The whole form is still submitted to the server, but only the specified region is
processed. Regions can be nested, in which case only the immediate region of the component
initiating the request will be processed.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richmodalPanel">
- <title><rich:modalPanel></title>
- <para>
- The <classname><rich:modalPanel></classname> component
provides a modal panel or window that blocks interaction with the rest of the application
while active. It can be easily positioned on the screen, dragged to a new position by the
user, and re-sized.
- </para>
- <important>
- <title>Important</title>
- <para>
- The <classname><rich:modalPanel></classname> component
should always be placed outside the original
<classname><h:form></classname>, and must include its own
<classname><h:form></classname> if performing submits.
- </para>
- </important>
- <para>
- By default, the modal panel can be both re-sized and re-positioned by the user. The
minimum possible size for the panel can be set with the These abilities can be deactivated
by setting <code>resizable</code> or <code>movable</code> to
<literal>false</literal> as necessary. The state of the modal panel, including
size and position on screen, can be maintained and restored after submitting and reloading
by setting <code>keepVisualState="true"</code>.
- </para>
- <para>
- If <code>showWhenRendered="true"</code> then the modal panel
will display when the page is first loaded.
- </para>
- <example
id="exam-Component_Reference-richmodalPanel-richmodalPanel_example">
- <title><rich:modalPanel> example</title>
-
-<programlisting language="xml">
-<a onclick="Richfaces.showModalPanel('pnl');"
href="#">Show ModalPanel</a>
-<a4j:form>
- <rich:modalPanel id="pnl" >
- <a onclick="Richfaces.hideModalPanel('pnl');"
href="#">Hide ModalPanel</a>
- </rich:modalPanel>
-</a4j:form>
-</programlisting>
- </example>
- </section>
-
- <section id="sect-Component_Reference-Panels_and_containers-richpanel">
- <title><rich:panel></title>
- <para>
- The <classname><rich:panel></classname> component is a
bordered panel with an optional header.
- </para>
- <para>
- No attributes need to be listed for basic usage. To add a header to the panel, use the
<code>header</code> attribute to specify the text to appear in the header.
Alternatively the header can be constructed using a header facet.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richpanelBar">
- <title><rich:panelBar></title>
- <para>
- The <classname><rich:panelBar></classname> is a series of
panels stacked on top of each other, each collapsed such that only the header of the panel
is showing. When the header of a panel is clicked, it is expanded to show the content of
the panel. Clicking on a different header will collapse the previous panel and epand the
selected one. Another name for the component is "accordion". Each panel in
contained in a <classname><rich:panelBar></classname> component
is a <classname><rich:panelBarItem></classname> component.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richpanelBarItem">
- <title><rich:panelBarItem></title>
- <para>
- The <classname><rich:panelBarItem></classname> component is
a panel for use with the <classname><rich:panelBar></classname>
component.
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenu">
- <title><rich:panelMenu></title>
- <para>
- The <classname><rich:panelMenu></classname> component can be
used in conjunction with
<classname><rich:panelMenuItem></classname> and
<classname><rich:panelMenuGroup></classname> to create an
expanding, hierarchical menu. The
<classname><rich:panelMenu></classname> component's
appearance can be highly customized, and the hierarchy can stretch to any number of
sub-levels.
- </para>
- <para>
- The <code>selectedChild</code> attribute is used to point to the name of
the currently selected menu item.
- </para>
- <para>
- By default, the event to expand the menu is a mouse click. This can be changed by
setting <code>event</code> to specify the preferred event. Several sub-menus
can be expanded a once unless the <code>expandSingle</code> is set to
<literal>true</literal>, which only allows one sub-menu at a time to be
expanded.
- </para>
- <para>
- The <code>mode</code> attribute defines the submission mode for normal
menu items, and the <code>expandMode</code> attribute defines the submission
mode for menu items that expand and collapse. The settings for these attributes apply to
the entire menu unless a menu item defines its own individual
<code>mode</code> or <code>expandMode</code>. The values for
<code>mode</code> and <code>expandMode</code> are:
- </para>
- <itemizedlist>
- <listitem>
+ <section
id="sect-Component_Reference-Layout_and_appearance-a4jloadStyle">
+ <title>a4j:loadStyle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richeffect">
+ <title>rich:effect</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richjQuery">
+ <title>rich:jQuery</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richseparator">
+ <title>rich:separator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richspacer">
+ <title>rich:spacer</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richpage">
+ <title>rich:page</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richlayout">
+ <title>rich:layout</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Layout_and_appearance-richlayoutPanel">
+ <title>rich:layoutPanel</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Resource_handling"
lang="en-US">
+ <title>Resource handling</title>
<para>
- <literal>server</literal>, the default setting, which submits the form
normally and completely refreshes the page;
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section
id="sect-Component_Reference-Resource_handling-a4jloadBundle">
+ <title>a4j:loadBundle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Resource_handling-a4jkeepAlive">
+ <title>a4j:keepAlive</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resource_handling-a4jpoll">
+ <title>a4j:poll</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resource_handling-a4jpush">
+ <title>a4j:push</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resource_handling-a4jqueue">
+ <title>a4j:queue</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resource_handling-a4jstatus">
+ <title>a4j:status</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Validation"
lang="en-US">
+ <title>Validation</title>
<para>
- <literal>ajax</literal>, which performs an Ajax form submission, and
re-renders elements specified with the <code>render</code> attribute; and
+ Incomplete
</para>
- </listitem>
- <listitem>
+ <section id="sect-Component_Reference-Validation-richajaxValidator">
+ <title>rich:ajaxValidator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Validation-richgraphValidator">
+ <title>rich:graphValidator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Validation-richbeanValidator">
+ <title>rich:beanValidator</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ </chapter>
+ <chapter id="chap-Component_Reference-Portals"
lang="en-US">
+ <title>Portals</title>
<para>
- <literal>none</literal>, which causes the
<code>action</code> and <code>actionListener</code> items to be
ignored, and the behavior is fully defined by the nested components instead of responses
from submissions.
+ Incomplete
</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenuGroup">
- <title><rich:panelMenuGroup></title>
- <para>
- The <classname><rich:panelMenuGroup></classname> component
defines a group of <classname><rich:panelMenuItem></classname>
components inside a <classname><rich:panelMenu></classname>.
- </para>
- <para>
- If the <code>expandMode</code> is unspecified, the submission behavior for
the group is inherited from the parent
<classname><rich:panelMenu></classname>. Otherwise, the
<code>expandMode</code> setting is used instead of the parent's behavior.
- </para>
- <para>
- Icons for menu items can be chosen from a set of standard icons. There are three
attributes that relate to the different menu states that the icon represents:
<code>iconExpanded</code>, <code>iconCollapsed</code>, and
<code>iconDisabled</code>. The standard icons are shown in <xref
linkend="figu-Component_Reference-richpanelMenuGroup-Standard_icons"/>.
- </para>
- <figure
id="figu-Component_Reference-richpanelMenuGroup-Standard_icons">
- <title>Standard icons</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroupIcons.png"
format="PNG"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richpanelMenuItem">
- <title><rich:panelMenuItem></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richsimpleTogglePanel">
- <title><rich:simpleTogglePanel></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richtabPanel">
- <title><rich:tabPanel></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Panels_and_containers-richtab">
- <title><rich:tab></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richtogglePanel">
- <title><rich:togglePanel></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Panels_and_containers-richtoggleControl">
- <title><rich:toggleControl></title>
- <para>
- Incomplete
- </para>
- </section>
+ <section id="sect-Component_Reference-Portals-a4jportlet">
+ <title>a4j:portlet</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Tables_and_grids"
lang="en-US">
- <title>Tables and grids</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Tables_and_grids-richcolumn">
- <title>rich:column</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-richcolumnGroup">
- <title>rich:columnGroup</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-richcolumns">
- <title>rich:columns</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-richdataFilterSlider">
- <title>rich:dataFilterSlider</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-richdataGrid">
- <title>rich:dataGrid</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-richdataScroller">
- <title>rich:dataScroller</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-richdataTable">
- <title>rich:dataTable</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-richextendedDataTable">
- <title>rich:extendedDataTable</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-richrepeat">
- <title>rich:repeat</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-richscrollableDataTable">
- <title>rich:scrollableDataTable</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-richsubTable">
- <title>rich:subTable</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Tables_and_grids-Table_filtering">
- <title>Table filtering</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Tables_and_grids-Table_sorting">
- <title>Table sorting</title>
- <para>
- Incomplete
- </para>
- </section>
+ </chapter>
+ <chapter id="chap-Component_Reference-Functionality_extension"
lang="en-US">
+ <title>Functionality extension</title>
+ <para>
+ Incomplete
+ </para>
+ <section
id="sect-Component_Reference-Functionality_extension-a4jactionParam">
+ <title>a4j:actionParam</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jajax">
+ <title>a4j:ajax</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jajaxListener">
+ <title>a4j:ajaxListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jinclude">
+ <title>a4j:include</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jjsFunction">
+ <title>a4j:jsFunction</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jloadScript">
+ <title>a4j:loadScript</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-a4jlog">
+ <title>a4j:log</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Functionality_extension-richcomponentControl">
+ <title>rich:componentControl</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Lists_and_trees"
lang="en-US">
- <title>Lists and trees</title>
- <para>
- Incomplete
- </para>
- <section
id="sect-Component_Reference-Lists_and_trees-richdataDefinitionList">
- <title>rich:dataDefinitionList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Lists_and_trees-richdataList">
- <title>rich:dataList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richdataOrderedList">
- <title>rich:dataOrderedList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Lists_and_trees-richlistShuttle">
- <title>rich:listShuttle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richorderingList">
- <title>rich:orderingList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Lists_and_trees-richpickList">
- <title>rich:pickList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richchangeExpandListener">
- <title>rich:changeExpandListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richnodeSelectListener">
- <title>rich:nodeSelectListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richrecursiveTreeNodesAdapter">
- <title>rich:recursiveTreeNodesAdapter</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Lists_and_trees-richtree">
- <title>rich:tree</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Lists_and_trees-richtreeNode">
- <title>rich:treeNode</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Lists_and_trees-richtreeNodesAdapter">
- <title>rich:treeNodesAdapter</title>
- <para>
- Incomplete
- </para>
- </section>
+ </chapter>
+ <chapter id="chap-Component_Reference-Other_components"
lang="en-US">
+ <title>Other components</title>
+ <para>
+ Incomplete
+ </para>
+ <section
id="sect-Component_Reference-Other_components-a4jmediaOutput">
+ <title>a4j:mediaOutput</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Other_components-richhotkey">
+ <title>rich:hotkey</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Other_components-richinsert">
+ <title>rich:insert</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Other_components-richpaint2D">
+ <title>rich:paint2D</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Other_components-richgmap">
+ <title>rich:gmap</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section
id="sect-Component_Reference-Other_components-richvirtualEarth">
+ <title>rich:virtualEarth</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
-</chapter>
- <chapter id="chap-Component_Reference-Menus_and_toolbars"
lang="en-US">
- <title>Menus and toolbars</title>
- <para>
- Incomplete
- </para>
- <section
id="sect-Component_Reference-Menus_and_toolbars-richcontextMenu">
- <title>rich:contextMenu</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Menus_and_toolbars-richdropDownMenu">
- <title>rich:dropDownMenu</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Menus_and_toolbars-richmenuGroup">
- <title>rich:menuGroup</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Menus_and_toolbars-richmenuItem">
- <title>rich:menuItem</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Menus_and_toolbars-richmenuSeparator">
- <title>rich:menuSeparator</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Menus_and_toolbars-richtoolBar">
- <title>rich:toolBar</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Menus_and_toolbars-richtoolBarGroup">
- <title>rich:toolBarGroup</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Messages" lang="en-US">
- <title>Messages</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Messages-richmessage">
- <title>rich:message</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Messages-richmessages">
- <title>rich:messages</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Messages-richprogressBar">
- <title>rich:progressBar</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Messages-richtoolTip">
- <title>rich:toolTip</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Drag_and_drop"
lang="en-US">
- <title>Drag and drop</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Drag_and_drop-richdragIndicator">
- <title>rich:dragIndicator</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Drag_and_drop-richdragSupport">
- <title>rich:dragSupport</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Drag_and_drop-richdropSupport">
- <title>rich:dropSupport</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Drag_and_drop-richdragListener">
- <title>rich:dragListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Drag_and_drop-richdropListener">
- <title>rich:dropListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Drag_and_drop-richdndParam">
- <title>rich:dndParam</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Layout_and_appearance"
lang="en-US">
- <title>Layout and appearance</title>
- <para>
- Incomplete
- </para>
- <section
id="sect-Component_Reference-Layout_and_appearance-a4jloadStyle">
- <title>a4j:loadStyle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richeffect">
- <title>rich:effect</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richjQuery">
- <title>rich:jQuery</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richseparator">
- <title>rich:separator</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richspacer">
- <title>rich:spacer</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Layout_and_appearance-richpage">
- <title>rich:page</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richlayout">
- <title>rich:layout</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Layout_and_appearance-richlayoutPanel">
- <title>rich:layoutPanel</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Resource_handling"
lang="en-US">
- <title>Resource handling</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Resource_handling-a4jloadBundle">
- <title>a4j:loadBundle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resource_handling-a4jkeepAlive">
- <title>a4j:keepAlive</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resource_handling-a4jpoll">
- <title>a4j:poll</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resource_handling-a4jpush">
- <title>a4j:push</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resource_handling-a4jqueue">
- <title>a4j:queue</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resource_handling-a4jstatus">
- <title>a4j:status</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Validation"
lang="en-US">
- <title>Validation</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Validation-richajaxValidator">
- <title>rich:ajaxValidator</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Validation-richgraphValidator">
- <title>rich:graphValidator</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Validation-richbeanValidator">
- <title>rich:beanValidator</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Portals" lang="en-US">
- <title>Portals</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Portals-a4jportlet">
- <title>a4j:portlet</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Functionality_extension"
lang="en-US">
- <title>Functionality extension</title>
- <para>
- Incomplete
- </para>
- <section
id="sect-Component_Reference-Functionality_extension-a4jactionParam">
- <title>a4j:actionParam</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functionality_extension-a4jajax">
- <title>a4j:ajax</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Functionality_extension-a4jajaxListener">
- <title>a4j:ajaxListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Functionality_extension-a4jinclude">
- <title>a4j:include</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Functionality_extension-a4jjsFunction">
- <title>a4j:jsFunction</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Functionality_extension-a4jloadScript">
- <title>a4j:loadScript</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functionality_extension-a4jlog">
- <title>a4j:log</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Functionality_extension-richcomponentControl">
- <title>rich:componentControl</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <chapter id="chap-Component_Reference-Other_components"
lang="en-US">
- <title>Other components</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Other_components-a4jmediaOutput">
- <title>a4j:mediaOutput</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Other_components-richhotkey">
- <title>rich:hotkey</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Other_components-richinsert">
- <title>rich:insert</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Other_components-richpaint2D">
- <title>rich:paint2D</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Other_components-richgmap">
- <title>rich:gmap</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section
id="sect-Component_Reference-Other_components-richvirtualEarth">
- <title>rich:virtualEarth</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
- <appendix id="appe-Component_Reference-Revision_History"
lang="en-US">
- <title>Revision History</title>
- <simpara>
- <revhistory>
- <revision>
- <revnumber>1.0</revnumber>
- <date/>
- <author>
- <firstname/>
- <surname/>
- <email/>
- </author>
- <revdescription>
- <simplelist>
- <member/>
- </simplelist>
- </revdescription>
- </revision>
- </revhistory>
- </simpara>
-</appendix>
- <index/>
-</book>
+ </chapter>
+ <appendix id="appe-Component_Reference-Revision_History"
lang="en-US">
+ <title>Revision History</title>
+ <simpara>
+ <revhistory>
+ <revision>
+ <revnumber>1.0</revnumber>
+ <date></date>
+ <author>
+ <firstname></firstname>
+ <surname></surname>
+ <email></email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member></member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ </revhistory>
+ </simpara>
+ </appendix>
+ <index />
+ </book>
+