JBoss Rich Faces SVN: r16035 - branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-02 07:26:10 -0500 (Wed, 02 Dec 2009)
New Revision: 16035
Modified:
branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/SeleniumLoggingTestListener.java
Log:
- catching any throwable inside SeleniumLoggingTestListener.logStatus prevents selenium errors to knock down all of the following tests
- added frame selection before logging (getEval)
Modified: branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/SeleniumLoggingTestListener.java
===================================================================
--- branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/SeleniumLoggingTestListener.java 2009-12-02 12:14:25 UTC (rev 16034)
+++ branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/SeleniumLoggingTestListener.java 2009-12-02 12:26:10 UTC (rev 16035)
@@ -97,7 +97,12 @@
if (selenium != null) {
String eval = String.format("/*\n%s\n%s\n%s\n*/", line, message, line);
- selenium.getEval(eval);
+ try {
+ selenium.selectFrame("relative=top");
+ selenium.getEval(eval);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
}
}
14 years, 5 months
JBoss Rich Faces SVN: r16034 - in branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium: waiting and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-02 07:14:25 -0500 (Wed, 02 Dec 2009)
New Revision: 16034
Modified:
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java
branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java
Log:
* selenium-testing-lib
- Wait.until() - javadoc completition and modification of Wait method to test conditions on the start of the waiting loop
- getTextOrNull() - will throw original RuntimeException instead of nesting that exception inside SeleniumException
Modified: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java 2009-12-02 07:41:13 UTC (rev 16033)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/AbstractSeleniumTestCase.java 2009-12-02 12:14:25 UTC (rev 16034)
@@ -811,11 +811,11 @@
public String getTextOrNull(String locator) {
try {
return selenium.getEval(format("selenium.getTextOrNull(\"{0}\")", locator));
- } catch (Exception e) {
+ } catch (RuntimeException e) {
if ("ERROR: Threw an exception: element is not found".equals(e.getMessage())) {
return null;
}
- throw new SeleniumException(e);
+ throw e;
}
}
Modified: branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java
===================================================================
--- branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java 2009-12-02 07:41:13 UTC (rev 16033)
+++ branches/community/3.3.X/test-applications/selenium-testing-lib/src/main/java/org/jboss/test/selenium/waiting/Wait.java 2009-12-02 12:14:25 UTC (rev 16034)
@@ -373,8 +373,28 @@
}
/**
- * Stars loop waiting to satisfy condition.
+ * <p>Stars loop waiting to satisfy condition.</p>
*
+ * <p>The condition will be tested</p>
+ *
+ * <ul>
+ * <li>on the start,</li>
+ * <li>every time interval after last try</li>
+ * <li>and also once after timeout when finishes interval since last try before timeout.</li>
+ * </ul>
+ *
+ * <p>Scheme:</p>
+ *
+ * <p><pre>S ..int.. T ..int.. T ..int1..timeout..int2.. L</pre></p>
+ *
+ * <p>
+ * <div>S - starting try</div>
+ * <div>T - try within intervals</div>
+ * <div>L - last try after timeout</div>
+ * <div>int - one interval</div>
+ * <div>int = int1 + int2</div>
+ * </p>
+ *
* @param condition
* what wait for to be satisfied
*/
@@ -382,13 +402,17 @@
long start = System.currentTimeMillis();
long end = start + timeout;
while (System.currentTimeMillis() < end) {
+ if (condition.isTrue())
+ return;
try {
Thread.sleep(interval);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- if (condition.isTrue())
- return;
+ if (System.currentTimeMillis() >= end) {
+ if (condition.isTrue())
+ return;
+ }
}
fail();
}
14 years, 5 months
JBoss Rich Faces SVN: r16033 - branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-02 02:41:13 -0500 (Wed, 02 Dec 2009)
New Revision: 16033
Modified:
branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java
Log:
- RichfacesSelenium modified to throw AssertionError instead of SeleniumException (and removed modifications of stacktrace)
Modified: branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java
===================================================================
--- branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java 2009-12-02 01:39:54 UTC (rev 16032)
+++ branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java 2009-12-02 07:41:13 UTC (rev 16033)
@@ -38,22 +38,22 @@
"ERROR: Threw an exception: Object doesn't support this property or method" };
private <T> T doAjax(final Command<T> command) {
+ final AssertionError fail = new AssertionError("Fails with Permission denied when trying to execute jQuery");
+
final T start = null;
- final SeleniumException fail = new SeleniumException(
- "Fails with Permission denied when trying to execute jQuery");
-
- return Wait.timeout(Wait.DEFAULT_TIMEOUT).interval(25).failWith(fail).waitForChangeAndReturn(start,
+ return Wait.timeout(Wait.DEFAULT_TIMEOUT).interval(1000).failWith(fail).waitForChangeAndReturn(start,
new Retrieve<T>() {
public T retrieve() {
try {
return command.command();
} catch (SeleniumException e) {
final String message = StringUtils.defaultString(e.getMessage());
+
if (ArrayUtils.contains(PERMISSION_DENIED, message)) {
- fail.setStackTrace((StackTraceElement[]) ArrayUtils.add(fail.getStackTrace(), e
- .getStackTrace()[0]));
+ System.err.println(message);
return null;
}
+
throw e;
}
}
14 years, 5 months
JBoss Rich Faces SVN: r16032 - in root/cdk/trunk/plugins: generator/src/main/java/org/richfaces/cdk/model and 4 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-12-01 20:39:54 -0500 (Tue, 01 Dec 2009)
New Revision: 16032
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/config/faces-config.xml
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/templates/testPanel.xml
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/verify.bsh
Log:
build two components and renderer in IT test
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java 2009-12-02 01:39:54 UTC (rev 16032)
@@ -76,7 +76,7 @@
@Override
public Boolean visit(Visitable c, P param) throws CdkException {
if (isMyComponent(c)) {
- return processComponent((C) c, param);
+ processComponent((C) c, param);
}
return null;
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java 2009-12-02 01:39:54 UTC (rev 16032)
@@ -28,7 +28,7 @@
/**
* <p class="changed_added_4_0">Is that component c</p>
*/
- private boolean generate = true;
+ private boolean generate = false;
/**
* <p class="changed_added_4_0">
Modified: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.ftl 2009-12-02 01:39:54 UTC (rev 16032)
@@ -60,9 +60,9 @@
</#if>
<#if (eventNames?size > 0)>
- private static final Collection<String> EVENT_NAMES = Collections.unmodifiableCollection(
+ private static final Collection<String> EVENT_NAMES = Collections.unmodifiableCollection(Arrays.asList(
<@concat seq=eventNames ; event>"${event.name}"</@concat>
- );
+ ));
public Collection<String> getEventNames() {
return EVENT_NAMES; }
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/config/faces-config.xml
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/config/faces-config.xml 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/config/faces-config.xml 2009-12-02 01:39:54 UTC (rev 16032)
@@ -44,10 +44,12 @@
xpointer="xmlns(cdk=http://richfaces.org/cdk/extensions)xpointer(/cdk:properties/*)"
href="urn:attributes:events-props.xml" />
<property>
- <property-name>onclick</property-name>
+ <property-name>onheaderclick</property-name>
+ <property-class>java.lang.String</property-class>
<property-extension>
<cdk:generate>true</cdk:generate>
- <cdk:event default="true">action</cdk:event>
+ <cdk:event-name>headerclick</cdk:event-name>
+ <cdk:event-name default="true">action</cdk:event-name>
</property-extension>
</property>
<component-extension>
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/templates/testPanel.xml
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/templates/testPanel.xml 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/src/main/templates/testPanel.xml 2009-12-02 01:39:54 UTC (rev 16032)
@@ -5,7 +5,7 @@
<cdk:class>org.richfaces.cdk.renderkit.html.TestPanelRenderer</cdk:class>
<cdk:superclass>org.richfaces.cdk.renderkit.AbstractTestPanelRenderer</cdk:superclass>
<cdk:component-family>org.richfaces.cdk.TestPanel</cdk:component-family>
- <cdk:component-type>org.richfaces.cdk.HtmlTestPanel</cdk:component-type>
+ <!-- cdk:component-type>org.richfaces.cdk.HtmlTestPanel</cdk:component-type -->
<cdk:renderer-type>org.richfaces.cdk.TestPanelRenderer</cdk:renderer-type>
<cdk:renderkit-id>HTML_BASIC</cdk:renderkit-id>
<cdk:renders-children>true</cdk:renders-children>
@@ -31,18 +31,15 @@
</cc:interface>
<cc:implementation>
- start
- <c:if test="#{cc.attributes['ifTest'] != null}">if content</c:if>
- <c:choose>
- <c:when test="#{cc.attributes['anotherTest'] != null}">when content</c:when>
- <c:when test="#{cc.attributes['coolTest'] != null}">
- <c:if test="#{cc.attributes['nestedIfTest'] != null}">nested if content</c:if>
- </c:when>
- <c:otherwise>otherwise content</c:otherwise>
- </c:choose>
+ <div>
+ <c:if test="#{cc.facets['header'] != null}">
+ <div class="tpHeader">
+ <cdk:call expression='cc.getFacet("header").encodeAll(facesContext)'/>
+ </div>
+ </c:if>
<c:forEach items="#{cc.children}" var="iterationVar">
- forEach content
+ <cdk:call expression='((javax.faces.component.UIComponent)iterationVar).encodeAll(facesContext)'/>
</c:forEach>
- finish
+ </div>
</cc:implementation>
</cdk:root>
\ No newline at end of file
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/verify.bsh
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/verify.bsh 2009-12-02 00:49:46 UTC (rev 16031)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/xml-configured-component/verify.bsh 2009-12-02 01:39:54 UTC (rev 16032)
@@ -14,7 +14,7 @@
File classesDirectory = new File( basedir, "target/classes" );
- String[] classes = { "org/richfaces/cdk/component/UITestPanel","org/richfaces/cdk/renderkit/html/TestPanelRenderer" };
+ String[] classes = { "org/richfaces/cdk/component/UITestPanel","org/richfaces/cdk/component/html/HtmlTestPanel","org/richfaces/cdk/renderkit/html/TestPanelRenderer" };
for ( String generatedClass : classes )
{
File generatedClassFile = new File( generatedPackage, generatedClass + ".java" );
14 years, 5 months
JBoss Rich Faces SVN: r16030 - root/docs/trunk/Component_Reference/en-US.
by richfaces-svn-commits@lists.jboss.org
Author: SeanRogers
Date: 2009-12-01 19:25:46 -0500 (Tue, 01 Dec 2009)
New Revision: 16030
Added:
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Actions.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_Ajax_attributes.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_features.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Containers.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Drag_and_drop.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functionality_extension.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functions.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Introduction.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Layout_and_appearance.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Menus_and_toolbars.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Output_and_messages.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Panels_and_containers.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Portals.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Processing_management.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Resources.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Rich_inputs.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Tables_and_grids.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Trees.xml
root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Validation.xml
Removed:
root/docs/trunk/Component_Reference/en-US/Actions.xml
root/docs/trunk/Component_Reference/en-US/Common_Ajax_attributes.xml
root/docs/trunk/Component_Reference/en-US/Common_features.xml
root/docs/trunk/Component_Reference/en-US/Containers.xml
root/docs/trunk/Component_Reference/en-US/Drag_and_drop.xml
root/docs/trunk/Component_Reference/en-US/Functionality_extension.xml
root/docs/trunk/Component_Reference/en-US/Functions.xml
root/docs/trunk/Component_Reference/en-US/Introduction.xml
root/docs/trunk/Component_Reference/en-US/Layout_and_appearance.xml
root/docs/trunk/Component_Reference/en-US/Menus_and_toolbars.xml
root/docs/trunk/Component_Reference/en-US/Output_and_messages.xml
root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml
root/docs/trunk/Component_Reference/en-US/Portals.xml
root/docs/trunk/Component_Reference/en-US/Processing_management.xml
root/docs/trunk/Component_Reference/en-US/Resources.xml
root/docs/trunk/Component_Reference/en-US/Rich_inputs.xml
root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml
root/docs/trunk/Component_Reference/en-US/Trees.xml
root/docs/trunk/Component_Reference/en-US/Validation.xml
Modified:
root/docs/trunk/Component_Reference/en-US/Component_Reference.xml
Log:
Standardized naming
Deleted: root/docs/trunk/Component_Reference/en-US/Actions.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Actions.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Actions.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,232 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Actions">
- <title>Actions</title>
- <para>
- This chapter details the basic components that respond to a user action and submit an Ajax request.
- </para>
- <section id="sect-Component_Reference-Actions-a4jactionParam">
- <title>a4j:actionParam</title>
- <para>
- The <classname><a4j:actionParam></classname> behavior combines the functionality of the JavaServer Faces (<acronym>JSF</acronym>) components <classname><f:param></classname> and <classname><f:actionListener></classname>.
- </para>
- <para>
- Basic usage of the <classname><a4j:actionParam></classname> requires three main attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>name</code>, for the name of the parameter;
- </para>
- </listitem>
- <listitem>
- <para>
- <code>value</code>, for the initial value of the parameter; and
- </para>
- </listitem>
- <listitem>
- <para>
- <code>assignTo</code>, for defining the bean property. The property will be updated if the parent command component performs an action event during the <emphasis>Process Request</emphasis> phase.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <xref linkend="exam-Component_Reference-a4jactionParam-a4jactionParam_example" /> shows a simple implementation along with the accompanying managed bean. When the <guibutton>Set name to Alex</guibutton> button is pressed, the application sets the <code>name</code> parameter of the bean to <literal>Alex</literal>, and displays the name in the output field.
- </para>
- <example id="exam-Component_Reference-a4jactionParam-a4jactionParam_example">
- <title><a4j:actionParam> example</title>
-<programlisting language="XML" role="XML">
-<xi:include parse="text" href="extras/exam-Component_Reference-a4jactionParam-a4jactionParam_example.xmlt" xmlns:xi="http://www.w3.org/2001/XInclude" />
-</programlisting>
-<programlisting language="Java" role="JAVA">
-<xi:include parse="text" href="extras/exam-Component_Reference-a4jactionParam-a4jactionParam_example.js" xmlns:xi="http://www.w3.org/2001/XInclude" />
-</programlisting>
- </example>
- <para>
- The <classname><a4j:actionParam></classname> behavior can be used with non-Ajax components in addition to Ajax components. In this way, data model values can be updated without an JavaScript code on the server side.
- </para>
- <para>
- The <code>converter</code> attribute can be used to specify how to convert the value before it is submitted to the data model. The property is assigned the new value during the <emphasis>Update Model</emphasis> phase.
- </para>
- <note>
- <title>Note</title>
- <para>
- If the validation of the form fails the <emphasis>Update Model</emphasis> phase will be skipped and the property will not be updated.
- </para>
- </note>
- <para>
- Variables from JavaScript functions can be used for the <code>value</code> attribute. In such an implementation, the <code>noEscape</code> attribute should be set to <literal>true</literal>. Using <code>noEscape="true"</code>, the <code>value</code> attribute can contain any JavaScript expression or JavaScript function invocation, and the result will be sent to the server as the <code>value</code> attribute.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jajax">
- <title>a4j:ajax</title>
- <para>
- The <classname><a4j:ajax></classname> component allows Ajax capability to be added to any non-Ajax component. It is placed as a direct child to the component that requires Ajax support. The <classname><a4j:ajax></classname> component uses the common attributes listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
- </para>
- <note>
- <title>Note</title>
- <para>
- When attaching the <classname><a4j:ajax></classname> component to non-Ajax JavaServer Faces command components, such as <classname><h:commandButton></classname> and <classname><h:commandLink></classname>, it is important to set <code>disabledDefault="true"</code>. If this attribute is not set, a non-Ajax request is sent after the Ajax request and the page is refreshed unexpectedly.
- </para>
- </note>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jajaxListener">
- <title>a4j:ajaxListener</title>
- <para>
- The <classname><a4j:ajaxListener></classname> component adds an action listener to a parent component. It works similar to the JavaServer Faces <classname><f:actionListener></classname> or <classname><f:valueChangeListener></classname> components, except that the invocation of <classname><a4j:ajaxListener></classname> is not canceled if validation of the <emphasis>Update Model</emphasis> phase fails. The <classname><a4j:ajaxListener></classname> component is guaranteed to be invoked with each Ajax response.
- </para>
- <para>
- Baasic usage requires only the <code>type</code> attribute, which defines the fully-qualified Java class name for the listener. This Java class should implement the <classname>org.ajax4jsf.event.AjaxListener</classname> interface, which is a base listener for all listeners and is capable of receiving Ajax events. The object from which the event originated could be accessed using the <methodname>java.util.EventObject.getSource()</methodname> method.
- </para>
- <para>
- The <classname><a4j:ajaxListener></classname> component is not invoked for non-Ajax requests, or when the RichFaces works in the <emphasis>Ajax request generates non-Ajax response</emphasis> mode, so the <classname><a4j:ajaxListener></classname> invocation is a good indicator that an Ajax response is going to be processed.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jcommandButton">
- <title><a4j:commandButton></title>
- <itemizedlist>
- <listitem>
- <para>
- component-type: <classname>org.ajax4jsf.CommandButton</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-family: <classname>javax.faces.Command</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-class: <classname>org.ajax4jsf.component.html.HtmlAjaxCommandButton</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- renderer-type: <classname>org.ajax4jsf.components.AjaxCommandButtonRenderer</classname>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <classname><a4j:commandButton></classname> is similar to the JavaServer Faces (<acronym>JSF</acronym>) component <classname><h:commandButton></classname>, but additionally includes Ajax support. When the command button is clicked it generates an Ajax form submit, and when a response is received the command button can be dynamically rendered.
- </para>
- <para>
- The <classname><a4j:commandButton></classname> requires only the <code>value</code> and <code>render</code> attributes to function. The <code>value</code> attribute specifies the text of the button and the <code>render</code> attribute specifies which areas are to be updated. The <classname><a4j:commandButton></classname> uses the <code>onclick</code> event instead of the <code>onsubmit</code> event, but otherwise uses all common Ajax attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
- </para>
- <note>
- <title>Note</title>
- <para>
- When attaching a JavaScript function to a <classname><a4j:commandButton></classname> with the help of a <classname><rich:componentControl></classname>, do not use the <code>attachTo</code> attribute of <classname><rich:componentControl></classname>. The attribute adds event handlers using <classname>Event.observe</classname> but <classname><a4j:commandButton></classname> does not include this event.
- </para>
- </note>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jcommandLink">
- <title><a4j:commandLink></title>
- <itemizedlist>
- <listitem>
- <para>
- component-type: <classname>org.ajax4jsf.CommandLink</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-family: <classname>javax.faces.Command</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-class: <classname>org.ajax4jsf.component.html.HtmlAjaxCommandLink</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- renderer-type: <classname>org.ajax4jsf.components.AjaxCommandLinkRenderer</classname>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <classname><a4j:commandLink></classname> is similar to the JavaServer Faces (<acronym>JSF</acronym>) component <classname><h:commandLink></classname>, but additionally includes Ajax support. When the command link is clicked it generates an Ajax form submit, and when a response is received the command link can be dynamically rendered.
- </para>
- <para>
- The <classname><a4j:commandLink></classname> requires only the <code>value</code> and <code>render</code> attributes to function. The <code>value</code> attribute specifies the text of the link and the <code>render</code> attribute specifies which areas are to be updated. The <classname><a4j:commandLink></classname> uses the <code>onclick</code> event instead of the <code>onsubmit</code> event, but otherwise uses all common Ajax attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jhtmlCommandLink">
- <title><a4j:htmlCommandLink></title>
- <itemizedlist>
- <listitem>
- <para>
- component-type: <classname>org.ajax4jsf.HtmlCommandLink</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-family: <classname>javax.faces.Command</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- component-class: <classname>org.ajax4jsf.component.html.HtmlCommandLink</classname>
- </para>
- </listitem>
- <listitem>
- <para>
- renderer-type: <classname>org.ajax4jsf.HtmlCommandLinkRenderer</classname>
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jjsFunction">
- <title><a4j:jsFunction></title>
- <para>
- The <classname><a4j:jsFunction></classname> component allows Ajax requests to be performed directly from JavaScript code, and server-side data to be invoked and returned in JavaScript Object Notation (<acronym>JSON</acronym>) format to use in client-side JavaScript calls.
- </para>
- <para>
- The <classname><a4j:jsFunction></classname> component has all the common Ajax action attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />; the <code>action</code> and <code>actionListener</code> attributes can be invoked and parts of the page can be re-rendered after a successful call to the JavaScript function. <xref linkend="exam-Component_Reference-a4jjsFunction-a4jjsFunction_example" /> shows how an Ajax request can be initiated from the JavaScript and a partial page update performed. The JavaScript function can be invoked with the data returned by the Ajax response.
- </para>
- <example id="exam-Component_Reference-a4jjsFunction-a4jjsFunction_example">
- <title><a4j:jsFunction> example</title>
-
-<programlisting language="XML" role="XML">
-<xi:include href="extras/exam-Component_Reference-a4jjsFunction-a4jjsFunction_example.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
-</programlisting>
- </example>
- <para>
- The <classname><a4j:jsFunction></classname> component allows the use of the <classname><a4j:actionParam></classname> component or the JavaServer Faces <classname><f:param></classname> component to pass any number of parameters for the JavaScript function.
- </para>
- <para>
- The <classname><a4j:jsFunction></classname> component is similar to the <classname><a4j:commandButton></classname> component, but it can be activated from the JavaScript code. This allows some server-side functionality to be invoked and the returned data to subsequently be used in a JavaScript function invoked by the <code>oncomplete</code> event attribute. In this way, the <classname><a4j:jsFunction></classname> component can be used instead of the <classname><a4j:commandButton></classname> component.
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jpoll">
- <title><a4j:poll></title>
- <para>
- The <classname><a4j:poll></classname> component allows periodical sending of Ajax requests to the server. It is used for repeatedly updating a page at specific time intervals.
- </para>
- <para>
- The <code>interval</code> attribute specifies the time in milliseconds to between requests. The default for this value is 1000 ms (1 second).
- </para>
- </section>
-
- <section id="sect-Component_Reference-Actions-a4jpush">
- <title><a4j:push></title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Common_Ajax_attributes.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Common_Ajax_attributes.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Common_Ajax_attributes.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,240 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Common_Ajax_attributes">
- <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" role="XML">
-<h:form id="form1">
- <a4j:commandButton value="Basic reference" render="infoBlock, infoBlock2" />
- <a4j:commandButton value="Specific reference" render=":infoBlock,:sv:infoBlock2" />
-</h:form>
-
-<h:panelGrid id="infoBlock">
- ...
-</h:panelGrid>
-
-<f:subview id="sv">
- <h:panelGrid id="infoBlock2">
- ...
- </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>
-
-<programlisting language="XML" role="XML">
-<h:form id="form1">
- <a4j:commandButton value="Normal rendering" render="infoBlock" />
- <a4j:commandButton value="Limited rendering" render="infoBlock" limitRender="true" />
-</h:form>
-
-<h:panelGrid id="infoBlock">
- ...
-</h:panelGrid>
-
-<a4j:outputPanel ajaxRendered="true">
- <h:messages />
-</a4j:outputPanel>
-</programlisting>
- </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-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-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" role="XML">
-<a4j:commandButton value="Update" data="#{userBean.name}" oncomplete="showTheName(data.name)" />
-</programlisting>
- </example>
- </section>
-
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Common_features.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Common_features.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Common_features.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,34 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Common_features">
- <title>Common features</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Common_features-Positioning_in_popup_components">
- <title>Positioning in popup components</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Common_features-Calling_available_JavaScript_methods">
- <title>Calling available JavaScript methods</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Common_features-Client_side_macro_substitution">
- <title>Client-side macro-substitution</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Modified: root/docs/trunk/Component_Reference/en-US/Component_Reference.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Component_Reference.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Component_Reference.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -13,24 +13,24 @@
<xi:include href="Common_features.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
<part id="part-Component_Reference-a4j_tag_library">
<title>a4j tag library</title>
- <xi:include href="Actions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Resources.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Containers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Validation.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Processing_management.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Actions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Resources.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Containers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Validation.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Processing_management.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</part>
<part id="part-Component_Reference-rich_tag_library">
<title>rich tag library</title>
- <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>
- <xi:include href="Trees.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Menus_and_toolbars.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Output_and_messages.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Drag_and_drop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Layout_and_appearance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Functions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Functionality_extension.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Rich_inputs.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Panels_and_containers.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Tables_and_grids.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Trees.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Menus_and_toolbars.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Output_and_messages.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Drag_and_drop.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Layout_and_appearance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Functions.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+ <xi:include href="chap-Component_Reference-Functionality_extension.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</part>
<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
</book>
Deleted: root/docs/trunk/Component_Reference/en-US/Containers.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Containers.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Containers.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,85 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Containers">
- <title>Containers</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-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-Containers-a4jinclude">
- <title>a4j:include</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-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-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>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Drag_and_drop.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Drag_and_drop.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Drag_and_drop.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,55 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Drag_and_drop">
- <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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Functionality_extension.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Functionality_extension.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Functionality_extension.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,41 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Functionality_extension">
- <title>Functionality extension</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Functionality_extension-richcomponentControl">
- <title>rich:componentControl</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functionality_extension-richgmap">
- <title>rich:gmap</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functionality_extension-richhotkey">
- <title>rich:hotkey</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functionality_extension-richvirtualEarth">
- <title>rich:virtualEarth</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Functions.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Functions.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Functions.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,48 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Functions">
- <title>Functions</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Functions-richclientID">
- <title><rich:clientID></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functions-richcomponent">
- <title><rich:component></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functions-richelement">
- <title><rich:element></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functions-richfindComponent">
- <title><rich:findComponent></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Functions-richisUserInRole">
- <title><rich:isUserInRole></title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Introduction.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Introduction.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Introduction.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,29 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Introduction">
- <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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Layout_and_appearance.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Layout_and_appearance.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Layout_and_appearance.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,62 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Layout_and_appearance">
- <title>Layout and appearance</title>
- <para>
- Incomplete
- </para>
- <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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Menus_and_toolbars.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Menus_and_toolbars.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Menus_and_toolbars.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,165 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Menus_and_toolbars">
- <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-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 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>
- <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-Menus_and_toolbars-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 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/figu-Component_Reference-richpanelMenuGroup-Standard_icons.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" role="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-Menus_and_toolbars-richpanelMenuItem">
- <title><rich:panelMenuItem></title>
- <para>
- 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/figu-Component_Reference-richpanelMenuItem-Standard_icons.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" role="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-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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Output_and_messages.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Output_and_messages.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Output_and_messages.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,48 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Output_and_messages">
- <title>Output and messages</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Output_and_messages-richmessage">
- <title>rich:message</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Output_and_messages-richmessages">
- <title>rich:messages</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Output_and_messages-richpaint2D">
- <title>rich:paint2D</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Output_and_messages-richprogressBar">
- <title>rich:progressBar</title>
- <para>
- 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>
-
- <section id="sect-Component_Reference-Output_and_messages-richtoolTip">
- <title>rich:toolTip</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,234 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Panels_and_containers">
- <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-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 submissions.
- </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" role="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-richsimpleTogglePanel">
- <title><rich:simpleTogglePanel></title>
- <para>
- 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>
- 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>
- 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>
- 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" role="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>
- 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" role="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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Portals.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Portals.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Portals.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,20 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Portals">
- <title>Portals</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Portals-a4jportlet">
- <title>a4j:portlet</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Processing_management.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Processing_management.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Processing_management.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,34 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Processing_management">
- <title>Processing management</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Processing_management-a4jqueue">
- <title><a4j:queue></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Processing_management-a4jlog">
- <title><a4j:log></title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Processing_management-a4jstatus">
- <title><a4j:status></title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Resources.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Resources.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Resources.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,48 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Resources">
- <title>Resources</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Resources-a4jloadBundle">
- <title>a4j:loadBundle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resources-a4jloadScript">
- <title>a4j:loadScript</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resources-a4jloadStyle">
- <title>a4j:loadStyle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resources-a4jkeepAlive">
- <title>a4j:keepAlive</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Resources-a4jmediaOutput">
- <title>a4j:mediaOutput</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Rich_inputs.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Rich_inputs.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Rich_inputs.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,407 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Rich_inputs">
- <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>
- <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" role="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>
-
-<programlisting language="XML" role="XML">
-<rich:comboBox value="#{bean.item}" valueChangeListener="#{bean.selectionChanged}" >
- <f:selectItems value="#{bean.selectItems}" />
- <f.selectItem itemValue="Item 1" />
- <f.selectItem itemValue="Item 2" />
- <f.selectItem itemValue="Item 3" />
- <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>
-
-<programlisting language="XML" role="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>
-
-<programlisting language="XML" role="XML">
-<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="click to edit" >
- <f:selectItems value="#{bean.selectItems}" />
- <f.selectItem itemValue="1" itemLabel="Item 1" />
- <f.selectItem itemValue="2" itemLabel="Item 2" />
- <f.selectItem itemValue="3" itemLabel="Item 3" />
- <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>
- <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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,281 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Tables_and_grids">
- <title>Tables and grids</title>
- <para>
- 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>
- 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" role="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" role="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" role="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>
- 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" role="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>
- 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-Basic_columns_example">
- <title>Basic columns example</title>
-
-<programlisting language="XML" role="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>
- The <classname><rich:dataFilterSlider></classname> components is a slider control that can be used for filtering data in a table.
- </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>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Trees.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Trees.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Trees.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,97 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Trees">
- <title>Trees</title>
- <para>
- Incomplete
- </para>
- <section id="sect-Component_Reference-Trees-richdataDefinitionList">
- <title>rich:dataDefinitionList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richdataList">
- <title>rich:dataList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richdataOrderedList">
- <title>rich:dataOrderedList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richlistShuttle">
- <title>rich:listShuttle</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richorderingList">
- <title>rich:orderingList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richpickList">
- <title>rich:pickList</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richchangeExpandListener">
- <title>rich:changeExpandListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richnodeSelectListener">
- <title>rich:nodeSelectListener</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richrecursiveTreeNodesAdapter">
- <title>rich:recursiveTreeNodesAdapter</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richtree">
- <title>rich:tree</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richtreeNode">
- <title>rich:treeNode</title>
- <para>
- Incomplete
- </para>
- </section>
-
- <section id="sect-Component_Reference-Trees-richtreeNodesAdapter">
- <title>rich:treeNodesAdapter</title>
- <para>
- Incomplete
- </para>
- </section>
-
-</chapter>
-
Deleted: root/docs/trunk/Component_Reference/en-US/Validation.xml
===================================================================
--- root/docs/trunk/Component_Reference/en-US/Validation.xml 2009-12-02 00:22:35 UTC (rev 16029)
+++ root/docs/trunk/Component_Reference/en-US/Validation.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -1,34 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-<!DOCTYPE chapter 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">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Component_Reference-Validation">
- <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>
-
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Actions.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Actions.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Actions.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Actions.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,232 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Actions">
+ <title>Actions</title>
+ <para>
+ This chapter details the basic components that respond to a user action and submit an Ajax request.
+ </para>
+ <section id="sect-Component_Reference-Actions-a4jactionParam">
+ <title>a4j:actionParam</title>
+ <para>
+ The <classname><a4j:actionParam></classname> behavior combines the functionality of the JavaServer Faces (<acronym>JSF</acronym>) components <classname><f:param></classname> and <classname><f:actionListener></classname>.
+ </para>
+ <para>
+ Basic usage of the <classname><a4j:actionParam></classname> requires three main attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>name</code>, for the name of the parameter;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>value</code>, for the initial value of the parameter; and
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>assignTo</code>, for defining the bean property. The property will be updated if the parent command component performs an action event during the <emphasis>Process Request</emphasis> phase.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <xref linkend="exam-Component_Reference-a4jactionParam-a4jactionParam_example" /> shows a simple implementation along with the accompanying managed bean. When the <guibutton>Set name to Alex</guibutton> button is pressed, the application sets the <code>name</code> parameter of the bean to <literal>Alex</literal>, and displays the name in the output field.
+ </para>
+ <example id="exam-Component_Reference-a4jactionParam-a4jactionParam_example">
+ <title><a4j:actionParam> example</title>
+<programlisting language="XML" role="XML">
+<xi:include parse="text" href="extras/exam-Component_Reference-a4jactionParam-a4jactionParam_example.xmlt" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</programlisting>
+<programlisting language="Java" role="JAVA">
+<xi:include parse="text" href="extras/exam-Component_Reference-a4jactionParam-a4jactionParam_example.js" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</programlisting>
+ </example>
+ <para>
+ The <classname><a4j:actionParam></classname> behavior can be used with non-Ajax components in addition to Ajax components. In this way, data model values can be updated without an JavaScript code on the server side.
+ </para>
+ <para>
+ The <code>converter</code> attribute can be used to specify how to convert the value before it is submitted to the data model. The property is assigned the new value during the <emphasis>Update Model</emphasis> phase.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ If the validation of the form fails the <emphasis>Update Model</emphasis> phase will be skipped and the property will not be updated.
+ </para>
+ </note>
+ <para>
+ Variables from JavaScript functions can be used for the <code>value</code> attribute. In such an implementation, the <code>noEscape</code> attribute should be set to <literal>true</literal>. Using <code>noEscape="true"</code>, the <code>value</code> attribute can contain any JavaScript expression or JavaScript function invocation, and the result will be sent to the server as the <code>value</code> attribute.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jajax">
+ <title>a4j:ajax</title>
+ <para>
+ The <classname><a4j:ajax></classname> component allows Ajax capability to be added to any non-Ajax component. It is placed as a direct child to the component that requires Ajax support. The <classname><a4j:ajax></classname> component uses the common attributes listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ When attaching the <classname><a4j:ajax></classname> component to non-Ajax JavaServer Faces command components, such as <classname><h:commandButton></classname> and <classname><h:commandLink></classname>, it is important to set <code>disabledDefault="true"</code>. If this attribute is not set, a non-Ajax request is sent after the Ajax request and the page is refreshed unexpectedly.
+ </para>
+ </note>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jajaxListener">
+ <title>a4j:ajaxListener</title>
+ <para>
+ The <classname><a4j:ajaxListener></classname> component adds an action listener to a parent component. It works similar to the JavaServer Faces <classname><f:actionListener></classname> or <classname><f:valueChangeListener></classname> components, except that the invocation of <classname><a4j:ajaxListener></classname> is not canceled if validation of the <emphasis>Update Model</emphasis> phase fails. The <classname><a4j:ajaxListener></classname> component is guaranteed to be invoked with each Ajax response.
+ </para>
+ <para>
+ Baasic usage requires only the <code>type</code> attribute, which defines the fully-qualified Java class name for the listener. This Java class should implement the <classname>org.ajax4jsf.event.AjaxListener</classname> interface, which is a base listener for all listeners and is capable of receiving Ajax events. The object from which the event originated could be accessed using the <methodname>java.util.EventObject.getSource()</methodname> method.
+ </para>
+ <para>
+ The <classname><a4j:ajaxListener></classname> component is not invoked for non-Ajax requests, or when the RichFaces works in the <emphasis>Ajax request generates non-Ajax response</emphasis> mode, so the <classname><a4j:ajaxListener></classname> invocation is a good indicator that an Ajax response is going to be processed.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jcommandButton">
+ <title><a4j:commandButton></title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ component-type: <classname>org.ajax4jsf.CommandButton</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-family: <classname>javax.faces.Command</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-class: <classname>org.ajax4jsf.component.html.HtmlAjaxCommandButton</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ renderer-type: <classname>org.ajax4jsf.components.AjaxCommandButtonRenderer</classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <classname><a4j:commandButton></classname> is similar to the JavaServer Faces (<acronym>JSF</acronym>) component <classname><h:commandButton></classname>, but additionally includes Ajax support. When the command button is clicked it generates an Ajax form submit, and when a response is received the command button can be dynamically rendered.
+ </para>
+ <para>
+ The <classname><a4j:commandButton></classname> requires only the <code>value</code> and <code>render</code> attributes to function. The <code>value</code> attribute specifies the text of the button and the <code>render</code> attribute specifies which areas are to be updated. The <classname><a4j:commandButton></classname> uses the <code>onclick</code> event instead of the <code>onsubmit</code> event, but otherwise uses all common Ajax attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
+ </para>
+ <note>
+ <title>Note</title>
+ <para>
+ When attaching a JavaScript function to a <classname><a4j:commandButton></classname> with the help of a <classname><rich:componentControl></classname>, do not use the <code>attachTo</code> attribute of <classname><rich:componentControl></classname>. The attribute adds event handlers using <classname>Event.observe</classname> but <classname><a4j:commandButton></classname> does not include this event.
+ </para>
+ </note>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jcommandLink">
+ <title><a4j:commandLink></title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ component-type: <classname>org.ajax4jsf.CommandLink</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-family: <classname>javax.faces.Command</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-class: <classname>org.ajax4jsf.component.html.HtmlAjaxCommandLink</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ renderer-type: <classname>org.ajax4jsf.components.AjaxCommandLinkRenderer</classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <classname><a4j:commandLink></classname> is similar to the JavaServer Faces (<acronym>JSF</acronym>) component <classname><h:commandLink></classname>, but additionally includes Ajax support. When the command link is clicked it generates an Ajax form submit, and when a response is received the command link can be dynamically rendered.
+ </para>
+ <para>
+ The <classname><a4j:commandLink></classname> requires only the <code>value</code> and <code>render</code> attributes to function. The <code>value</code> attribute specifies the text of the link and the <code>render</code> attribute specifies which areas are to be updated. The <classname><a4j:commandLink></classname> uses the <code>onclick</code> event instead of the <code>onsubmit</code> event, but otherwise uses all common Ajax attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jhtmlCommandLink">
+ <title><a4j:htmlCommandLink></title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ component-type: <classname>org.ajax4jsf.HtmlCommandLink</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-family: <classname>javax.faces.Command</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ component-class: <classname>org.ajax4jsf.component.html.HtmlCommandLink</classname>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ renderer-type: <classname>org.ajax4jsf.HtmlCommandLinkRenderer</classname>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jjsFunction">
+ <title><a4j:jsFunction></title>
+ <para>
+ The <classname><a4j:jsFunction></classname> component allows Ajax requests to be performed directly from JavaScript code, and server-side data to be invoked and returned in JavaScript Object Notation (<acronym>JSON</acronym>) format to use in client-side JavaScript calls.
+ </para>
+ <para>
+ The <classname><a4j:jsFunction></classname> component has all the common Ajax action attributes as listed in <xref linkend="chap-Component_Reference-Common_Ajax_attributes" />; the <code>action</code> and <code>actionListener</code> attributes can be invoked and parts of the page can be re-rendered after a successful call to the JavaScript function. <xref linkend="exam-Component_Reference-a4jjsFunction-a4jjsFunction_example" /> shows how an Ajax request can be initiated from the JavaScript and a partial page update performed. The JavaScript function can be invoked with the data returned by the Ajax response.
+ </para>
+ <example id="exam-Component_Reference-a4jjsFunction-a4jjsFunction_example">
+ <title><a4j:jsFunction> example</title>
+
+<programlisting language="XML" role="XML">
+<xi:include href="extras/exam-Component_Reference-a4jjsFunction-a4jjsFunction_example.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</programlisting>
+ </example>
+ <para>
+ The <classname><a4j:jsFunction></classname> component allows the use of the <classname><a4j:actionParam></classname> component or the JavaServer Faces <classname><f:param></classname> component to pass any number of parameters for the JavaScript function.
+ </para>
+ <para>
+ The <classname><a4j:jsFunction></classname> component is similar to the <classname><a4j:commandButton></classname> component, but it can be activated from the JavaScript code. This allows some server-side functionality to be invoked and the returned data to subsequently be used in a JavaScript function invoked by the <code>oncomplete</code> event attribute. In this way, the <classname><a4j:jsFunction></classname> component can be used instead of the <classname><a4j:commandButton></classname> component.
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jpoll">
+ <title><a4j:poll></title>
+ <para>
+ The <classname><a4j:poll></classname> component allows periodical sending of Ajax requests to the server. It is used for repeatedly updating a page at specific time intervals.
+ </para>
+ <para>
+ The <code>interval</code> attribute specifies the time in milliseconds to between requests. The default for this value is 1000 ms (1 second).
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Actions-a4jpush">
+ <title><a4j:push></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_Ajax_attributes.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Common_Ajax_attributes.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_Ajax_attributes.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_Ajax_attributes.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,240 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Common_Ajax_attributes">
+ <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" role="XML">
+<h:form id="form1">
+ <a4j:commandButton value="Basic reference" render="infoBlock, infoBlock2" />
+ <a4j:commandButton value="Specific reference" render=":infoBlock,:sv:infoBlock2" />
+</h:form>
+
+<h:panelGrid id="infoBlock">
+ ...
+</h:panelGrid>
+
+<f:subview id="sv">
+ <h:panelGrid id="infoBlock2">
+ ...
+ </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>
+
+<programlisting language="XML" role="XML">
+<h:form id="form1">
+ <a4j:commandButton value="Normal rendering" render="infoBlock" />
+ <a4j:commandButton value="Limited rendering" render="infoBlock" limitRender="true" />
+</h:form>
+
+<h:panelGrid id="infoBlock">
+ ...
+</h:panelGrid>
+
+<a4j:outputPanel ajaxRendered="true">
+ <h:messages />
+</a4j:outputPanel>
+</programlisting>
+ </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-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-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" role="XML">
+<a4j:commandButton value="Update" data="#{userBean.name}" oncomplete="showTheName(data.name)" />
+</programlisting>
+ </example>
+ </section>
+
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_features.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Common_features.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_features.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Common_features.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Common_features">
+ <title>Common features</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Common_features-Positioning_in_popup_components">
+ <title>Positioning in popup components</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Common_features-Calling_available_JavaScript_methods">
+ <title>Calling available JavaScript methods</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Common_features-Client_side_macro_substitution">
+ <title>Client-side macro-substitution</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Containers.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Containers.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Containers.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Containers.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,85 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Containers">
+ <title>Containers</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-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-Containers-a4jinclude">
+ <title>a4j:include</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-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-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>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Drag_and_drop.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Drag_and_drop.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Drag_and_drop.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Drag_and_drop.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Drag_and_drop">
+ <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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functionality_extension.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Functionality_extension.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functionality_extension.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functionality_extension.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Functionality_extension">
+ <title>Functionality extension</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Functionality_extension-richcomponentControl">
+ <title>rich:componentControl</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functionality_extension-richgmap">
+ <title>rich:gmap</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functionality_extension-richhotkey">
+ <title>rich:hotkey</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functionality_extension-richvirtualEarth">
+ <title>rich:virtualEarth</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functions.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Functions.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functions.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Functions.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Functions">
+ <title>Functions</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Functions-richclientID">
+ <title><rich:clientID></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functions-richcomponent">
+ <title><rich:component></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functions-richelement">
+ <title><rich:element></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functions-richfindComponent">
+ <title><rich:findComponent></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Functions-richisUserInRole">
+ <title><rich:isUserInRole></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Introduction.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Introduction.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Introduction.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Introduction.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Introduction">
+ <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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Layout_and_appearance.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Layout_and_appearance.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Layout_and_appearance.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Layout_and_appearance.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Layout_and_appearance">
+ <title>Layout and appearance</title>
+ <para>
+ Incomplete
+ </para>
+ <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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Menus_and_toolbars.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Menus_and_toolbars.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Menus_and_toolbars.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Menus_and_toolbars.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Menus_and_toolbars">
+ <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-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 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>
+ <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-Menus_and_toolbars-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 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/figu-Component_Reference-richpanelMenuGroup-Standard_icons.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" role="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-Menus_and_toolbars-richpanelMenuItem">
+ <title><rich:panelMenuItem></title>
+ <para>
+ 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/figu-Component_Reference-richpanelMenuItem-Standard_icons.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" role="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-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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Output_and_messages.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Output_and_messages.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Output_and_messages.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Output_and_messages.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Output_and_messages">
+ <title>Output and messages</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Output_and_messages-richmessage">
+ <title>rich:message</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Output_and_messages-richmessages">
+ <title>rich:messages</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Output_and_messages-richpaint2D">
+ <title>rich:paint2D</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Output_and_messages-richprogressBar">
+ <title>rich:progressBar</title>
+ <para>
+ 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>
+
+ <section id="sect-Component_Reference-Output_and_messages-richtoolTip">
+ <title>rich:toolTip</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Panels_and_containers.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Panels_and_containers.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Panels_and_containers.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Panels_and_containers.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,234 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Panels_and_containers">
+ <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-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 submissions.
+ </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" role="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-richsimpleTogglePanel">
+ <title><rich:simpleTogglePanel></title>
+ <para>
+ 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>
+ 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>
+ 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>
+ 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" role="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>
+ 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" role="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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Portals.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Portals.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Portals.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Portals.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,20 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Portals">
+ <title>Portals</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Portals-a4jportlet">
+ <title>a4j:portlet</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Processing_management.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Processing_management.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Processing_management.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Processing_management.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Processing_management">
+ <title>Processing management</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Processing_management-a4jqueue">
+ <title><a4j:queue></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Processing_management-a4jlog">
+ <title><a4j:log></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Processing_management-a4jstatus">
+ <title><a4j:status></title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Resources.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Resources.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Resources.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Resources.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,48 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Resources">
+ <title>Resources</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Resources-a4jloadBundle">
+ <title>a4j:loadBundle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resources-a4jloadScript">
+ <title>a4j:loadScript</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resources-a4jloadStyle">
+ <title>a4j:loadStyle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resources-a4jkeepAlive">
+ <title>a4j:keepAlive</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Resources-a4jmediaOutput">
+ <title>a4j:mediaOutput</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Rich_inputs.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Rich_inputs.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Rich_inputs.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Rich_inputs.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,407 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Rich_inputs">
+ <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>
+ <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" role="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>
+
+<programlisting language="XML" role="XML">
+<rich:comboBox value="#{bean.item}" valueChangeListener="#{bean.selectionChanged}" >
+ <f:selectItems value="#{bean.selectItems}" />
+ <f.selectItem itemValue="Item 1" />
+ <f.selectItem itemValue="Item 2" />
+ <f.selectItem itemValue="Item 3" />
+ <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>
+
+<programlisting language="XML" role="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>
+
+<programlisting language="XML" role="XML">
+<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="click to edit" >
+ <f:selectItems value="#{bean.selectItems}" />
+ <f.selectItem itemValue="1" itemLabel="Item 1" />
+ <f.selectItem itemValue="2" itemLabel="Item 2" />
+ <f.selectItem itemValue="3" itemLabel="Item 3" />
+ <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>
+ <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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Tables_and_grids.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Tables_and_grids.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Tables_and_grids.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Tables_and_grids.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,281 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Tables_and_grids">
+ <title>Tables and grids</title>
+ <para>
+ 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>
+ 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" role="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" role="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" role="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>
+ 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" role="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>
+ 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-Basic_columns_example">
+ <title>Basic columns example</title>
+
+<programlisting language="XML" role="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>
+ The <classname><rich:dataFilterSlider></classname> components is a slider control that can be used for filtering data in a table.
+ </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>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Trees.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Trees.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Trees.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Trees.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,97 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Trees">
+ <title>Trees</title>
+ <para>
+ Incomplete
+ </para>
+ <section id="sect-Component_Reference-Trees-richdataDefinitionList">
+ <title>rich:dataDefinitionList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richdataList">
+ <title>rich:dataList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richdataOrderedList">
+ <title>rich:dataOrderedList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richlistShuttle">
+ <title>rich:listShuttle</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richorderingList">
+ <title>rich:orderingList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richpickList">
+ <title>rich:pickList</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richchangeExpandListener">
+ <title>rich:changeExpandListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richnodeSelectListener">
+ <title>rich:nodeSelectListener</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richrecursiveTreeNodesAdapter">
+ <title>rich:recursiveTreeNodesAdapter</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richtree">
+ <title>rich:tree</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richtreeNode">
+ <title>rich:treeNode</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+ <section id="sect-Component_Reference-Trees-richtreeNodesAdapter">
+ <title>rich:treeNodesAdapter</title>
+ <para>
+ Incomplete
+ </para>
+ </section>
+
+</chapter>
+
Copied: root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Validation.xml (from rev 16020, root/docs/trunk/Component_Reference/en-US/Validation.xml)
===================================================================
--- root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Validation.xml (rev 0)
+++ root/docs/trunk/Component_Reference/en-US/chap-Component_Reference-Validation.xml 2009-12-02 00:25:46 UTC (rev 16030)
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter 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">
+%BOOK_ENTITIES;
+]>
+
+<chapter id="chap-Component_Reference-Validation">
+ <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>
+
14 years, 5 months
JBoss Rich Faces SVN: r16029 - root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-12-01 19:22:35 -0500 (Tue, 01 Dec 2009)
New Revision: 16029
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
Log:
Resolve attributes in Maven plugin.
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java 2009-12-01 16:28:32 UTC (rev 16028)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java 2009-12-02 00:22:35 UTC (rev 16029)
@@ -194,8 +194,11 @@
// Standard attributes. Look for them in the satndard place via
// project classloader.
String path = systemIdInternal.substring(URN_ATTRIBUTES.length());
+ // Project classpath has precedence
InputStream inputStream = getContext().getLoader().getResourceAsStream(ATTRIBUTES_PREFIX + path);
-
+ if (null == inputStream) {
+ inputStream = getClass().getClassLoader().getResourceAsStream(ATTRIBUTES_PREFIX + path);
+ }
if (null != inputStream) {
entity = new InputSource(inputStream);
}
14 years, 5 months
JBoss Rich Faces SVN: r16028 - branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-01 11:28:32 -0500 (Tue, 01 Dec 2009)
New Revision: 16028
Added:
branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java
Modified:
branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java
Log:
- added RichfacesSelenium adapter to DefaultSelenium to catch Permission denied exceptions caused by AJAX (tries repeating the command)
Modified: branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java
===================================================================
--- branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java 2009-12-01 16:15:55 UTC (rev 16027)
+++ branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/AbstractSeleniumRichfacesTestCase.java 2009-12-01 16:28:32 UTC (rev 16028)
@@ -42,8 +42,6 @@
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
-import com.thoughtworks.selenium.DefaultSelenium;
-
/**
*
* @author <a href="mailto:lfryc@redhat.com">Lukas Fryc</a>, <a
@@ -125,14 +123,16 @@
this.mavenResourcesDir = mavenResourcesDir;
this.mavenProjectBuildDirectory = mavenProjectBuildDirectory;
- selenium = new DefaultSelenium(seleniumHost, Integer.valueOf(seleniumPort), browser, contextRoot);
+
+ selenium = RichfacesSelenium.getInstance(seleniumHost, Integer.valueOf(seleniumPort), browser,
+ contextRoot);
selenium.start();
allowInitialXpath();
loadCustomLocationStrategies();
// adding selenium-side logging facility
loggingTestListener.setSelenium(selenium);
}
-
+
/**
* Uses selenium.addLocationStrategy to implement own strategies to locate
* items in the tested page
@@ -157,16 +157,16 @@
selenium.allowNativeXpath("false");
}
- /**
- * Finalize context after each class run.
- */
- @AfterClass
- public void finalizeContext() {
- selenium.close();
- selenium.stop();
- selenium = null;
- contextPath = null;
- }
+ /**
+ * Finalize context after each class run.
+ */
+ @AfterClass
+ public void finalizeContext() {
+ selenium.close();
+ selenium.stop();
+ selenium = null;
+ contextPath = null;
+ }
/**
* Default implementation of obtaining properties for each class.
@@ -250,37 +250,37 @@
* name of component given from components' menu on the left of
* RF Live Demo application
*/
- protected void openComponent(final String componentName) {
+ protected void openComponent(final String componentName) {
final String LOC_MENU_ITEM = format("jquery=table.left_menu td.text a > span:textEquals('{0}')", componentName);
// TODO needs to open clean page, see {@link
- // https://jira.jboss.org/jira/browse/RF-7640}
- selenium.getEval("selenium.doDeleteAllVisibleCookies()");
+ // https://jira.jboss.org/jira/browse/RF-7640}
+ selenium.getEval("selenium.doDeleteAllVisibleCookies()");
- // open context path of application
+ // open context path of application
selenium.open(contextPath);
- // wait for new page is opened
- selenium.waitForPageToLoad("5000");
+ // wait for new page is opened
+ selenium.waitForPageToLoad("5000");
- Wait.until(new Condition() {
- public boolean isTrue() {
- return selenium.isElementPresent(LOC_MENU_ITEM);
- }
- });
-
- // click the menu item
- selenium.click(LOC_MENU_ITEM);
+ Wait.until(new Condition() {
+ public boolean isTrue() {
+ return selenium.isElementPresent(LOC_MENU_ITEM);
+ }
+ });
- // wait for component's page opened
- waitModelUpdate.until(new Condition() {
- public boolean isTrue() {
- return isComponentPageActive(componentName);
- }
- });
- }
+ // click the menu item
+ selenium.click(LOC_MENU_ITEM);
+ // wait for component's page opened
+ waitModelUpdate.until(new Condition() {
+ public boolean isTrue() {
+ return isComponentPageActive(componentName);
+ }
+ });
+ }
+
private boolean isComponentPageActive(String componentName) {
final String LOC_OUTPUT_COMPONENT_NAME = "jquery=body table.left_menu *.panel_documents strong";
return componentName.equals(getTextOrNull(LOC_OUTPUT_COMPONENT_NAME));
Added: branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java
===================================================================
--- branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java (rev 0)
+++ branches/sandbox/rf-demo-ftest-iexplore/src/test/java/org/jboss/richfaces/integrationTest/RichfacesSelenium.java 2009-12-01 16:28:32 UTC (rev 16028)
@@ -0,0 +1,73 @@
+package org.jboss.richfaces.integrationTest;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.StringUtils;
+import org.jboss.test.selenium.waiting.Retrieve;
+import org.jboss.test.selenium.waiting.Wait;
+
+import com.thoughtworks.selenium.CommandProcessor;
+import com.thoughtworks.selenium.DefaultSelenium;
+import com.thoughtworks.selenium.HttpCommandProcessor;
+import com.thoughtworks.selenium.SeleniumException;
+
+public class RichfacesSelenium extends DefaultSelenium {
+
+ public RichfacesSelenium(CommandProcessor processor) {
+ super(processor);
+ }
+
+ public static RichfacesSelenium getInstance(String serverHost, int serverPort, String browserStartCommand,
+ String browserURL) {
+ return new RichfacesSelenium(new RichfacesCommandProcessor(serverHost, serverPort, browserStartCommand,
+ browserURL));
+ }
+
+ public static class RichfacesCommandProcessor extends HttpCommandProcessor {
+ public RichfacesCommandProcessor(String serverHost, int serverPort, String browserStartCommand,
+ String browserURL) {
+ super(serverHost, serverPort, browserStartCommand, browserURL);
+ }
+
+ private abstract class Command<T> {
+ public abstract T command();
+ }
+
+ private static String[] PERMISSION_DENIED = new String[] {
+ "ERROR: Threw an exception: Error executing strategy function jquery: Permission denied",
+ "ERROR: Threw an exception: Permission denied",
+ "ERROR: Threw an exception: Object doesn't support this property or method" };
+
+ private <T> T doAjax(final Command<T> command) {
+ final T start = null;
+ final SeleniumException fail = new SeleniumException(
+ "Fails with Permission denied when trying to execute jQuery");
+
+ return Wait.timeout(Wait.DEFAULT_TIMEOUT).interval(25).failWith(fail).waitForChangeAndReturn(start,
+ new Retrieve<T>() {
+ public T retrieve() {
+ try {
+ return command.command();
+ } catch (SeleniumException e) {
+ final String message = StringUtils.defaultString(e.getMessage());
+ if (ArrayUtils.contains(PERMISSION_DENIED, message)) {
+ fail.setStackTrace((StackTraceElement[]) ArrayUtils.add(fail.getStackTrace(), e
+ .getStackTrace()[0]));
+ return null;
+ }
+ throw e;
+ }
+ }
+ });
+ }
+
+ @Override
+ public String doCommand(final String commandName, final String[] args) {
+ return doAjax(new Command<String>() {
+ @Override
+ public String command() {
+ return RichfacesCommandProcessor.super.doCommand(commandName, args);
+ }
+ });
+ }
+ }
+}
14 years, 5 months
JBoss Rich Faces SVN: r16027 - branches/sandbox/rf-demo-ftest-iexplore.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-01 11:15:55 -0500 (Tue, 01 Dec 2009)
New Revision: 16027
Modified:
branches/sandbox/rf-demo-ftest-iexplore/profiles.jboss-qa.xml
Log:
- modified jboss-qa profile for testing on winland
Modified: branches/sandbox/rf-demo-ftest-iexplore/profiles.jboss-qa.xml
===================================================================
--- branches/sandbox/rf-demo-ftest-iexplore/profiles.jboss-qa.xml 2009-12-01 15:48:52 UTC (rev 16026)
+++ branches/sandbox/rf-demo-ftest-iexplore/profiles.jboss-qa.xml 2009-12-01 16:15:55 UTC (rev 16027)
@@ -118,9 +118,9 @@
</property>
</activation>
<properties>
- <container.version>6.0.18</container.version>
+ <container.version>6.0.20</container.version>
<container.installer.url.unix>file:/qa/tools/src/apache/apache-tomcat-6.0.18.zip</container.installer.url.unix>
- <container.installer.url.windows>file:t:\src\apache\apache-tomcat-6.0.18.zip</container.installer.url.windows>
+ <container.installer.url.windows>file:C:\Documents and Settings\user\My Documents\distributions\apache-tomcat-6.0.20.zip</container.installer.url.windows>
</properties>
</profile>
<profile>
@@ -134,7 +134,7 @@
<properties>
<container.version>5.1.0.GA</container.version>
<container.installer.url.unix>file:/qa/tools/src/jboss/jboss-5.1.0.GA.zip</container.installer.url.unix>
- <container.installer.url.windows>file:t:\src\jboss\jboss-5.1.0.GA.zip</container.installer.url.windows>
+ <container.installer.url.windows>file:C:\Documents and Settings\user\My Documents\distributions\jboss-5.1.0.GA.zip</container.installer.url.windows>
</properties>
</profile>
<profile>
14 years, 5 months
JBoss Rich Faces SVN: r16026 - branches/sandbox.
by richfaces-svn-commits@lists.jboss.org
Author: lfryc(a)redhat.com
Date: 2009-12-01 10:48:52 -0500 (Tue, 01 Dec 2009)
New Revision: 16026
Added:
branches/sandbox/rf-demo-ftest-iexplore/
Log:
Creating branch of functional-test for richfaces-demo for purposes of Internet Explorer expansive changes to tests
Copied: branches/sandbox/rf-demo-ftest-iexplore (from rev 16025, branches/community/3.3.X/samples/richfaces-demo/functional-test)
14 years, 5 months