JBoss Rich Faces SVN: r15215 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2009-08-19 08:00:52 -0400 (Wed, 19 Aug 2009)
New Revision: 15215
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml
Log:
https://jira.jboss.org/jira/browse/RF-7685 - updated the component 'Details of usage' section;
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml 2009-08-19 10:56:14 UTC (rev 15214)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml 2009-08-19 12:00:52 UTC (rev 15215)
@@ -93,34 +93,17 @@
<property>"title"</property>
</emphasis> is used for a popup title.</para>
- <para>The <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component could be partially updated with Ajax. The <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that are updated after an Ajax request, you need to pass an array with key (lines) of the list that you want to be updated after the Ajax request is executed.</para>
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML">...
-<rich:dataDefinitionList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
- binding="#{listBean.dataList}" id="list">
- ...
-</rich:dataDefinitionList>
-...
-<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
-...
-</programlisting>
-
- <para> In the example the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
-
+ <para>The <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component could be partially updated with Ajax. The <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute points to an Object (java.util.Set) that should contain row keys to be updated after an Ajax request. See an example of usage the
+ <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute for the <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component in the <ulink url="http://www.jboss.org/community/wiki/UsingtheajaxKeysattributeforrichdataList">RichFacs Cookbook article</ulink>.</para>
+
</section>
<section>
<title>Reference Data</title>
14 years, 10 months
JBoss Rich Faces SVN: r15214 - tags/3.3.2.CR1/framework/impl/src/main/java/org/richfaces.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2009-08-19 06:56:14 -0400 (Wed, 19 Aug 2009)
New Revision: 15214
Modified:
tags/3.3.2.CR1/framework/impl/src/main/java/org/richfaces/VersionBean.java
Log:
change SVN revision and date
Modified: tags/3.3.2.CR1/framework/impl/src/main/java/org/richfaces/VersionBean.java
===================================================================
--- tags/3.3.2.CR1/framework/impl/src/main/java/org/richfaces/VersionBean.java 2009-08-19 10:25:58 UTC (rev 15213)
+++ tags/3.3.2.CR1/framework/impl/src/main/java/org/richfaces/VersionBean.java 2009-08-19 10:56:14 UTC (rev 15214)
@@ -38,7 +38,7 @@
* Revision version, must be auto modified by CVS
*/
- public static final String REVISION = "2.CR1";
+ public static final String REVISION = "2.CR1";
public static final String SCM_REVISION = " SVN $Revision$ $Date:) $";//$Revision$ $Date$";
public static final Version _version = new Version();
14 years, 10 months
JBoss Rich Faces SVN: r15213 - tags/3.3.2.CR1/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-08-19 06:25:58 -0400 (Wed, 19 Aug 2009)
New Revision: 15213
Modified:
tags/3.3.2.CR1/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
Log:
simpleTogglePanel: doesn't became collapsed in ajax and server mode.
https://jira.jboss.org/jira/browse/RF-7704
Modified: tags/3.3.2.CR1/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
===================================================================
--- tags/3.3.2.CR1/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 10:06:57 UTC (rev 15212)
+++ tags/3.3.2.CR1/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 10:25:58 UTC (rev 15213)
@@ -84,9 +84,10 @@
eventObj.rich = {component:this};
eventObj.rich.value = value;
- try
- {
+ try {
result = eventFunction.call(element, eventObj);
+ } catch (e) {
+ LOG.warn("Exception: "+e.Message + "\n[on"+eventName + "]");
}
}
14 years, 10 months
JBoss Rich Faces SVN: r15212 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2009-08-19 06:06:57 -0400 (Wed, 19 Aug 2009)
New Revision: 15212
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
Log:
https://jira.jboss.org/jira/browse/RF-7716 - added new section "Definition of Custom Style Classes";
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2009-08-19 08:20:28 UTC (rev 15211)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2009-08-19 10:06:57 UTC (rev 15212)
@@ -3639,7 +3639,66 @@
</section>
<section id="customstyles">
<title>Definition of Custom Style Classes</title>
- <para></para>
+ <para>In the "Reference Data" section for most of the components (see "The RichFaces Components" chapter)
+ there are the tables with <code>rich-*</code> classes definitions. These classes allow to redefine styles for a specific component by means of CSS.
+ Actually, you should create classes with the same names and define new properties in them.</para>
+
+ <para>Let's consider the <link linkend="rich_modalPanel"><emphasis role="bold"><property><rich:modalPanel></property></emphasis></link> component.
+ To change the background color for the mask, it's enough to redefine the <code>.rich-mpnl-mask-div</code> class.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="CSS"><![CDATA[...
+.rich-mpnl-mask-div{
+ background-color:#fae6b0;
+}
+...]]></programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>Style redefinition with predefined class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/modalPanel_pc.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>If you have multiple components on the page, the redefined styles will be applied to all of them. To change styles for a
+ particular component on the page, create your own style classes and use them in corresponding style class attributes. An example on how to
+ change the font style for the header of a particular modal panel is placed below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="CSS"><![CDATA[...
+.myClass{
+ font-style:italic;
+}
+...]]></programlisting>
+ <para>Next specify <emphasis>
+ <property>myClass</property></emphasis> as the value of the <emphasis>
+ <property>"headerClass"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis>:</para>
+
+ <programlisting role="XML"><![CDATA[<rich:modalPanel ... headerClass="myClass"/>
+]]></programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>Style redefinition with own class</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/modalPanel_oc.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
</section>
<section id="statemanagerapi">
<title>State Manager API</title>
14 years, 10 months
JBoss Rich Faces SVN: r15211 - in root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf: renderkit and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2009-08-19 04:20:28 -0400 (Wed, 19 Aug 2009)
New Revision: 15211
Modified:
root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/renderkit/AjaxBeahaviorRenderer.java
Log:
get event name from the ClientBehaviorContext
Modified: root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java
===================================================================
--- root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2009-08-19 08:10:43 UTC (rev 15210)
+++ root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/component/behavior/AjaxBehavior.java 2009-08-19 08:20:28 UTC (rev 15211)
@@ -1,10 +1,6 @@
package org.ajax4jsf.component.behavior;
-import java.util.HashMap;
-
-import javax.el.ValueExpression;
import javax.faces.component.behavior.FacesBehavior;
-import javax.faces.context.FacesContext;
/**
* @author Anton Belevich
@@ -14,78 +10,8 @@
public class AjaxBehavior extends javax.faces.component.behavior.AjaxBehavior {
public static final String BEHAVIOR_ID = "org.ajax4jsf.behavior.Ajax";
-
- public static final String EVENT = "event";
-
- private String event;
-
- public String getEvent() {
- if (this.event != null) {
- return this.event;
- }
-
- ValueExpression expression = getValueExpression("event");
-
- if (expression != null) {
- FacesContext ctx = FacesContext.getCurrentInstance();
- return (String)expression.getValue(ctx.getELContext());
- }
-
- return null;
- }
-
- public void setEvent(String event) {
- this.event = event;
- clearInitialState();
- }
-
- @Override
- public Object saveState(FacesContext context) {
-
- Object[] values;
- Object superState = super.saveState(context);
-
- if (initialStateMarked()) {
- if (superState == null) {
- values = null;
- } else {
- values = new Object[] { superState };
- }
- } else {
- values = new Object[2];
- values[0] = superState;
- values[1] = this.event;
- }
- return values;
- }
-
+
@Override
- public void restoreState(FacesContext context, Object state) {
-
- if (state != null) {
-
- Object[] values = (Object[]) state;
- super.restoreState(context, values[0]);
-
- if (values.length != 1) {
- this.event = (String)values[1];
- clearInitialState();
- }
- }
- }
-
-
-
- public void setValueExpression(String name, ValueExpression binding) {
- if(EVENT.equals(name) && binding.isLiteralText()) {
- this.event = (String)binding.getValue(FacesContext.getCurrentInstance().getELContext());
- clearInitialState();
- } else {
- super.setValueExpression(name, binding);
- }
- }
-
- @Override
public String getRendererType() {
return BEHAVIOR_ID;
}
Modified: root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/renderkit/AjaxBeahaviorRenderer.java
===================================================================
--- root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/renderkit/AjaxBeahaviorRenderer.java 2009-08-19 08:10:43 UTC (rev 15210)
+++ root/examples/trunk/components/core-demo/src/main/java/org/ajax4jsf/renderkit/AjaxBeahaviorRenderer.java 2009-08-19 08:20:28 UTC (rev 15211)
@@ -7,7 +7,6 @@
import javax.faces.component.UIComponent;
import javax.faces.component.behavior.ClientBehavior;
import javax.faces.component.behavior.ClientBehaviorContext;
-import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.context.FacesContext;
import javax.faces.render.ClientBehaviorRenderer;
import javax.faces.render.FacesBehaviorRenderer;
@@ -41,29 +40,25 @@
return script;
}
- public String buildAjaxCommand(ClientBehaviorContext behaviorContext, AjaxBehavior behavior) {
- UIComponent parent = behaviorContext.getComponent();
- FacesContext context = behaviorContext.getFacesContext();
+ public String buildAjaxCommand(ClientBehaviorContext bContext, AjaxBehavior behavior) {
+ UIComponent parent = bContext.getComponent();
+ FacesContext context = bContext.getFacesContext();
JSFunction ajaxFunction = AjaxRendererUtils.buildAjaxFunction(parent, context, "RichFaces.ajax");
-
- Map<String, Object> options = buildOptions(context, behavior, parent);
+
+ Map<String, Object> options = buildOptions(context, bContext);
ajaxFunction.addParameter(options);
return ajaxFunction.toString();
}
- public Map<String, Object> buildOptions(FacesContext context, AjaxBehavior behavior, UIComponent parent) {
+ public Map<String, Object> buildOptions(FacesContext context, ClientBehaviorContext bContext) {
+ UIComponent parent = bContext.getComponent();
+ String eventName = bContext.getEventName();
+
Map<String,Object> options = AjaxRendererUtils.buildEventOptions(context, parent);
- String event = behavior.getEvent();
- if(event == null) {
- ClientBehaviorHolder bHolder = (ClientBehaviorHolder)parent;
- event = bHolder.getDefaultEventName();
- //TODO: if default event name == null (log or throw exception ???)
- }
- options.put(PartialViewContextImpl.BEHAVIOR_EVENT_PARAMETER, event);
- options.put("execute", behavior.getExecute());
- options.put("render", behavior.getExecute());
+ options.put(PartialViewContextImpl.BEHAVIOR_EVENT_PARAMETER, eventName);
+
return options;
}
}
14 years, 10 months
JBoss Rich Faces SVN: r15210 - branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-08-19 04:10:43 -0400 (Wed, 19 Aug 2009)
New Revision: 15210
Modified:
branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
Log:
simpleTogglePanel: doesn't became collapsed in ajax and server mode.
https://jira.jboss.org/jira/browse/RF-7704
Modified: branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
===================================================================
--- branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 06:14:00 UTC (rev 15209)
+++ branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 08:10:43 UTC (rev 15210)
@@ -84,7 +84,11 @@
eventObj.rich = {component:this};
eventObj.rich.value = value;
+ try {
result = eventFunction.call(element, eventObj);
+ } catch (e) {
+ LOG.warn("Exception: "+e.Message + "\n[on"+eventName + "]");
+ }
}
14 years, 10 months
JBoss Rich Faces SVN: r15209 - branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-08-19 02:14:00 -0400 (Wed, 19 Aug 2009)
New Revision: 15209
Modified:
branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
Log:
fix JavaScript library build error
Modified: branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js
===================================================================
--- branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 01:11:54 UTC (rev 15208)
+++ branches/community/3.3.X/ui/simpleTogglePanel/src/main/resources/org/richfaces/renderkit/html/scripts/simpleTogglePanel.js 2009-08-19 06:14:00 UTC (rev 15209)
@@ -84,10 +84,7 @@
eventObj.rich = {component:this};
eventObj.rich.value = value;
- try
- {
result = eventFunction.call(element, eventObj);
- }
}
14 years, 10 months
JBoss Rich Faces SVN: r15208 - in root/cdk/trunk/plugins: generator/src/main/java/org/richfaces/cdk and 22 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-08-18 21:11:54 -0400 (Tue, 18 Aug 2009)
New Revision: 15208
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyBuilder.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyGenerator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Merge.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Mergeable.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Properties.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/RendererKit.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbTestBase.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/pom.xml
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/resources/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/test/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/test/java/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/test/resources/
root/cdk/trunk/plugins/maven-cdk-plugin/src/it/settings.xml
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/AbstractCdkContext.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
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/generate/java/ComponentClassGenerator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Behavior.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
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/ComponentLibrary.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Converter.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/DescriptionGroup.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Facet.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/JsfComponent.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/LibraryVisitor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Listener.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Renderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Validator.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/FacesConfigParser.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
root/cdk/trunk/plugins/maven-cdk-plugin/pom.xml
root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/AbstractCDKMojo.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/CompileTemplatesMojo.java
root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java
Log:
Java class has been generated from integration test project.
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,88 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.builder.templates;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+
+import org.richfaces.builder.model.JavaClass;
+import org.richfaces.builder.render.JavaClassRenderer;
+import org.richfaces.cdk.CdkContext;
+import org.richfaces.cdk.CdkException;
+import org.richfaces.cdk.CdkWriter;
+import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.Renderer;
+import org.richfaces.cdk.model.RendererKit;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class RendererClassGenerator implements CdkWriter {
+
+ private CdkContext context;
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.CdkWriter#init(org.richfaces.cdk.CdkContext)
+ */
+ @Override
+ public void init(CdkContext context) throws CdkException {
+ this.context = context;
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.CdkWriter#render(org.richfaces.cdk.model.ComponentLibrary)
+ */
+ @Override
+ public void render(ComponentLibrary library) throws CdkException {
+ for (RendererKit renderKit : library.getRenderKits()) {
+ for (Renderer renderer : renderKit.getRenderers()) {
+ JavaClass javaClass = renderer.getTemplate();
+ String fullName = javaClass.getFullName();
+
+ File outFile = new File(context.getJavaSourceOutput(),
+ fullName.replace('.', '/') + ".java");
+
+ if (outFile.exists()) {
+ outFile.delete();
+ }
+
+ outFile.getParentFile().mkdirs();
+
+ try {
+ new JavaClassRenderer().render(javaClass, new PrintWriter(outFile));
+ } catch (FileNotFoundException e) {
+ throw new CdkException(e);
+ }
+
+ }
+ }
+
+ }
+
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererClassGenerator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RendererTemplateParser.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,10 +23,20 @@
package org.richfaces.builder.templates;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.richfaces.builder.model.JavaClass;
import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.ModelBuilder;
+import org.richfaces.cdk.StandardSources;
+import org.richfaces.cdk.model.Component;
import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.Renderer;
/**
* <p class="changed_added_4_0"></p>
@@ -35,13 +45,32 @@
*/
public class RendererTemplateParser implements ModelBuilder {
+ private CdkContext context;
+
/* (non-Javadoc)
* @see org.richfaces.cdk.ModelBuilder#build()
*/
@Override
public ComponentLibrary build() throws CdkException {
- // TODO Auto-generated method stub
- return null;
+ ComponentLibrary library = new ComponentLibrary();
+ for(File file : getContext().getSources(StandardSources.RENDERER_TEMPLATES)){
+ try {
+ RootElementConsumer template = TemplateReader.parseTemplate(new FileInputStream(file));
+ Renderer renderer = library.createRenderer(template.getRenderKitId(), template.getRendererType(), template.getFamily());
+ renderer.setTemplate(template.getJavaClass());
+ String componentType = template.getComponentType();
+ if(null != componentType){
+ Component component = library.createComponent(componentType);
+ component.getRenderers().add(renderer);
+ }
+ } catch (FileNotFoundException e) {
+ // TODO - log errors, marks mojo failed after whole build cycle.
+ throw new CdkException(e);
+ } catch (XMLStreamException e) {
+ throw new CdkException(e);
+ }
+ }
+ return library;
}
/* (non-Javadoc)
@@ -49,8 +78,10 @@
*/
@Override
public void init(CdkContext context) {
- // TODO Auto-generated method stub
+ this.context = context;
+ }
+ public CdkContext getContext() {
+ return context;
}
-
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/RootElementConsumer.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -2,6 +2,8 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import javax.faces.render.RenderKit;
+import javax.faces.render.RenderKitFactory;
import javax.faces.render.Renderer;
import javax.xml.namespace.QName;
import javax.xml.stream.events.Attribute;
@@ -37,6 +39,14 @@
*
*/
public class RootElementConsumer extends BaseTemplateConsumer {
+
+ private String renderKitId = RenderKitFactory.HTML_BASIC_RENDER_KIT;
+
+ private String rendererType;
+
+ private String family;
+
+ private String componentType;
private JavaClass javaClass;
@@ -44,6 +54,38 @@
return javaClass;
}
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the renderKitId
+ */
+ public String getRenderKitId() {
+ return renderKitId;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the rendererType
+ */
+ public String getRendererType() {
+ return rendererType;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the family
+ */
+ public String getFamily() {
+ return family;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the componentType
+ */
+ public String getComponentType() {
+ return componentType;
+ }
+
private String getAttributeValue(StartElement element, String attributeName) {
Attribute attribute = element.getAttributeByName(new QName(attributeName));
if (attribute != null) {
@@ -110,7 +152,10 @@
String componentClassName = getAttributeValue(startElement, "componentclass");
javaClass.addImport(componentClassName);
-
+ renderKitId = getAttributeValue(startElement, "renderkit");
+ rendererType = getAttributeValue(startElement, "renderertype");
+ family = getAttributeValue(startElement, "family");
+ componentType = getAttributeValue(startElement, "componenttype");
return new TemplateBodyConsumer(javaClass, getSimpleClassName(componentClassName));
} else {
throw new IllegalArgumentException();
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/TemplateReader.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -116,7 +116,7 @@
}
}
- public static JavaClass parse(InputStream stream) throws XMLStreamException {
+ public static RootElementConsumer parseTemplate(InputStream stream) throws XMLStreamException {
XMLEventReader xmlEventReader = XMLInputFactoryHolder.factory.createXMLEventReader(stream);
try {
@@ -145,8 +145,7 @@
tracker.popConsumer();
- JavaClass javaClass = consumer.getJavaClass();
- return javaClass;
+ return consumer;
} finally {
try {
stream.close();
@@ -163,4 +162,8 @@
}
}
+
+ public static JavaClass parse(InputStream input) throws XMLStreamException{
+ return parseTemplate(input).getJavaClass();
+ }
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/AbstractCdkContext.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/AbstractCdkContext.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/AbstractCdkContext.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -26,6 +26,7 @@
import java.io.File;
import java.util.Map;
+import org.richfaces.cdk.CdkWriter.OutputType;
import org.richfaces.cdk.model.ComponentLibrary;
import com.google.common.collect.Maps;
@@ -49,6 +50,8 @@
private NamingConventions namingConventions;
private Map<SourceType, Iterable<File>> sources = Maps.newHashMap();
+
+ private Map<OutputType,File> outputs = Maps.newHashMap();
/**
* <p class="changed_added_4_0"></p>
@@ -138,6 +141,12 @@
public Iterable<File> getSources(SourceType type) {
return sources.get(type);
}
+
+ @Override
+ public File getOutputFolder(OutputType type) {
+ File outputFolder = outputs.get(type);
+ return outputFolder;
+ }
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -2,8 +2,10 @@
import java.io.File;
+import org.richfaces.cdk.CdkWriter.OutputType;
+
/**
* <p class="changed_added_4_0">
* That interface defines context for all CDK operations
@@ -71,5 +73,12 @@
* @return
*/
public Iterable<File> getSources(SourceType type);
+
+ /**
+ * <p class="changed_added_4_0">Provides default output folder for given output type.</p>
+ * @param type of output
+ * @return output folder for requested type.
+ */
+ public File getOutputFolder(OutputType type);
}
\ No newline at end of file
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyBuilder.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyBuilder.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyBuilder.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,58 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk;
+
+import org.richfaces.cdk.model.ComponentLibrary;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class DummyBuilder implements ModelBuilder {
+
+ private CdkContext context;
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.ModelBuilder#build()
+ */
+ @Override
+ public ComponentLibrary build() throws CdkException {
+ return new ComponentLibrary();
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.ModelBuilder#init(org.richfaces.cdk.CdkContext)
+ */
+ @Override
+ public void init(CdkContext context) {
+ this.context = context;
+ // TODO Auto-generated method stub
+
+ }
+
+ protected CdkContext getContext() {
+ return context;
+ }
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyGenerator.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyGenerator.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyGenerator.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,57 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk;
+
+import org.richfaces.cdk.model.ComponentLibrary;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class DummyGenerator implements CdkWriter {
+
+ private CdkContext context;
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.CdkWriter#init(org.richfaces.cdk.CdkContext)
+ */
+ @Override
+ public void init(CdkContext context) throws CdkException {
+ this.context = context;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.CdkWriter#render(org.richfaces.cdk.model.ComponentLibrary)
+ */
+ @Override
+ public void render(ComponentLibrary library) throws CdkException {
+ // Do nothing
+ }
+
+ protected CdkContext getContext() {
+ return context;
+ }
+
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/DummyGenerator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -25,6 +25,7 @@
import java.io.File;
+import org.richfaces.builder.templates.RendererClassGenerator;
import org.richfaces.builder.templates.RendererTemplateParser;
import org.richfaces.cdk.CdkContext.SourceType;
import org.richfaces.cdk.CdkWriter.OutputType;
@@ -104,34 +105,50 @@
ComponentLibrary library = null;
for (SourceType type : StandardSources.values()) {
ComponentLibrary model = buildModel(type);
- if (null != library) {
- library.merge(model);
- } else {
- library = model;
+ if (null != model) {
+ if (null != library) {
+ library.merge(model);
+ } else {
+ library = model;
+ }
}
}
getVerifier().verify(library);
return library;
}
+ public void generate(ComponentLibrary library) throws CdkException {
+ for (OutputType type : StandardOutputs.values()) {
+ generate(library, type);
+ }
+ }
+
/**
- * <p class="changed_added_4_0">Cenerate files from library model.</p>
+ * <p class="changed_added_4_0">
+ * Cenerate files from library model.
+ * </p>
+ *
* @param library
* @param type
* @throws CdkException
*/
- public void generate(ComponentLibrary library, OutputType type) throws CdkException {
+ public void generate(ComponentLibrary library, OutputType type)
+ throws CdkException {
CdkWriter generator = getGeneratorFor(type);
generator.render(library);
}
-
+
protected CdkWriter getGeneratorFor(OutputType type) throws CdkException {
CdkWriter generator = null;
- if(StandardOutputs.COMPONENT_CLASSES.equals(type)){
+ if (StandardOutputs.COMPONENT_CLASSES.equals(type)) {
generator = new ComponentClassGenerator();
+ } else if (StandardOutputs.RENDERER_CLASSES.equals(type)) {
+ generator = new RendererClassGenerator();
} else {
+ generator = new DummyGenerator();
// TODO - make service method for new source types.
- throw new CdkException("No generator for type " + type.getName());
+ // throw new CdkException("No generator for type " +
+ // type.getName());
}
generator.init(getContext());
return generator;
@@ -168,14 +185,16 @@
} else if (StandardSources.RENDERER_TEMPLATES.equals(type)) {
builder = new RendererTemplateParser();
} else {
+ builder = new DummyBuilder();
// TODO - make service method for new source types.
- throw new CdkException("No model builder for source type " + type.getName());
+ // throw new CdkException("No model builder for source type " +
+ // type.getName());
}
builder.init(getContext());
return builder;
}
-
- protected Verifier getVerifier(){
+
+ protected Verifier getVerifier() {
// TODO - put verifier implementation into context ?
return new VerifierImpl(getContext());
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -116,19 +116,9 @@
options.add("-sourcepath");
options.add(context.getJavaSource().getAbsolutePath());
}
- if(null != context.getJavaSourceOutput() || null != context.getResourceOutput()){
+ if(null != context.getJavaSourceOutput() ){
options.add("-s");
- StringBuilder generatedSourceFolders = new StringBuilder();
- if(null != context.getJavaSourceOutput()){
- generatedSourceFolders.append(context.getJavaSourceOutput().getAbsolutePath());
- }
- if(null != context.getResourceOutput()){
- if(generatedSourceFolders.length()>0){
- generatedSourceFolders.append(File.pathSeparatorChar);
- }
- generatedSourceFolders.append(context.getResourceOutput().getAbsolutePath());
- }
- options.add(generatedSourceFolders.toString());
+ options.add(context.getJavaSourceOutput().getAbsolutePath());
}
setOptions(options);
// TODO - provide source files locale.
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-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -43,7 +43,7 @@
* @author asmirnov(a)exadel.com
*
*/
-public abstract class FreeMarkerRenderer<C extends JsfComponent,P> implements CdkWriter,LibraryVisitor<Boolean, P> {
+public abstract class FreeMarkerRenderer<C extends JsfComponent<C>,P> implements CdkWriter,LibraryVisitor<Boolean, P> {
private CdkContext context;
private Configuration configuration;
@@ -70,7 +70,7 @@
}
@Override
- public Boolean visit(JsfComponent c, P param) {
+ public Boolean visit(JsfComponent<?> c, P param) {
if(isMyComponent(c)){
return processComponent((C)c, param);
}
@@ -97,7 +97,7 @@
return new FileWriter(getOutputFile(c));
}
- protected abstract String getOutputFile(C c);
+ protected abstract String getOutputFile(C c) throws IOException;
protected abstract boolean isMyComponent(JsfComponent c);
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/ComponentClassGenerator.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/ComponentClassGenerator.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/generate/java/ComponentClassGenerator.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -24,6 +24,7 @@
package org.richfaces.cdk.generate.java;
import java.io.File;
+import java.io.IOException;
import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkException;
@@ -61,9 +62,16 @@
@Override
- protected String getOutputFile(Component c) {
+ protected String getOutputFile(Component c) throws IOException {
File sourceOutput = getContext().getJavaSourceOutput();
- return (new File(sourceOutput,c.getComponentClass().getName().replace('.', File.separatorChar)+".java")).getAbsolutePath();
+ File outputFile = new File(sourceOutput,c.getComponentClass().getName().replace('.', File.separatorChar)+".java");
+ if(!outputFile.exists()){
+ outputFile.getParentFile().mkdirs();
+ } else {
+ outputFile.delete();
+ }
+// outputFile.createNewFile();
+ return outputFile.getAbsolutePath();
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Behavior.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Behavior.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Behavior.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -28,7 +28,8 @@
* @author asmirnov(a)exadel.com
*
*/
-public class Behavior implements JsfComponent {
+@SuppressWarnings("serial")
+public class Behavior implements JsfComponent<Behavior> {
private JsfType type;
@@ -52,4 +53,10 @@
this.type = type;
}
+ @Override
+ public void merge(Behavior other) {
+ // TODO Auto-generated method stub
+
+ }
+
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -35,20 +35,13 @@
* @author asmirnov(a)exadel.com
*
*/
-public class ClassDescription implements JsfComponent {
+public class ClassDescription {
/**
* <p class="changed_added_4_0"></p>
*/
private static final long serialVersionUID = -846623207703750456L;
- @SuppressWarnings("serial")
- public static final class Type extends JsfType {
- public Type(String type) {
- super(type);
- }
- }
-
private static final ImmutableMap<String, String> primitiveTypes = ImmutableMap
.<String, String> builder().put(boolean.class.getName(),
Boolean.class.getName()).put(byte.class.getName(),
@@ -65,7 +58,6 @@
*/
private final String name;
- private final Type type ;
private final boolean primitive;
@@ -77,6 +69,8 @@
*/
private String typeParameters;
+ private final String fullName;
+
/**
* <p class="changed_added_4_0">
* </p>
@@ -84,7 +78,7 @@
* @param name
*/
public ClassDescription(String name) {
- this.type = new Type(name);
+ fullName = name;
if (primitiveTypes.containsKey(name)) {
this.name = name;
boxingClassName = primitiveTypes.get(name);
@@ -102,10 +96,6 @@
}
}
- @Override
- public JsfType getType() {
- return type;
- }
/**
* <p class="changed_added_4_0"></p>
@@ -181,7 +171,7 @@
@Override
public String toString() {
- return type.toString();
+ return fullName;
}
/* (non-Javadoc)
@@ -210,20 +200,15 @@
return false;
}
ClassDescription other = (ClassDescription) obj;
- if (type == null) {
- if (other.type != null) {
+ if (fullName == null) {
+ if (other.fullName != null) {
return false;
}
- } else if (!type.equals(other.type)) {
+ } else if (!fullName.equals(other.fullName)) {
return false;
}
return true;
}
- @Override
- public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) {
- // TODO Auto-generated method stub
- 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-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -26,7 +26,7 @@
@SuppressWarnings("serial")
@XmlType(name="faces-config-componentType")
@XmlAccessorType( XmlAccessType.NONE )
-public final class Component implements JsfComponent, DescriptionGroup,Extensible {
+public final class Component implements JsfComponent<Component>, DescriptionGroup,Extensible<ConfigExtension> {
/**
* <p class="changed_added_4_0">Reference to component library for which that component is belong to.</p>
@@ -42,13 +42,6 @@
/**
* <p class="changed_added_4_0">
- * component family
- * </p>
- */
- private String family;
-
- /**
- * <p class="changed_added_4_0">
* Cenerated component class
* </p>
*/
@@ -123,6 +116,20 @@
return visitor.visit(this, param);
}
+ @Override
+ public void merge(Component otherComponent) {
+ ComponentLibrary.merge(renderers, otherComponent.getRenderers());
+// TODO - merge facets, renderers, events ...
+ for (Property property : otherComponent.getAttributes()) {
+ if(attributes.containsKey(property.getName())){
+ attributes.get(property.getName()).merge(property);
+ } else {
+ attributes.put(property.getName(), property);
+ }
+ }
+ ComponentLibrary.merge(this,otherComponent);
+ }
+
/*
* (non-Javadoc)
*
@@ -155,6 +162,9 @@
return extension;
}
+ public void setExtension(ComponentExtension extension) {
+ this.extension = extension;
+ }
/**
* <p class="changed_added_4_0">
@@ -164,8 +174,9 @@
*
* @return the family
*/
+ @Merge
public String getFamily() {
- return family;
+ return getExtension().getFamily();
}
/**
@@ -176,7 +187,7 @@
* the family to set
*/
public void setFamily(String family) {
- this.family = family;
+ getExtension().setFamily(family);
}
/**
@@ -185,6 +196,7 @@
*
* @return the componentClass
*/
+ @Merge
public ClassDescription getComponentClass() {
return componentClass;
}
@@ -207,6 +219,7 @@
*
* @return the baseClass
*/
+ @Merge
public ClassDescription getBaseClass() {
return baseClass;
}
@@ -271,6 +284,7 @@
* <p class="changed_added_4_0"></p>
* @return the exists
*/
+ @Merge
public boolean isExists() {
return exists;
}
@@ -358,15 +372,17 @@
* @author asmirnov(a)exadel.com
*
*/
- public class ComponentExtension extends ConfigExtension {
+ public static class ComponentExtension extends ConfigExtension {
+ private String family;
+
@XmlElement(namespace=ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
public String getFamily(){
- return Component.this.getFamily();
+ return family;
}
public void setFamily(String family) {
- Component.this.setFamily(family);
+ this.family = family;
}
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,7 +23,12 @@
package org.richfaces.cdk.model;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -80,7 +85,7 @@
* JSF renderer associated with that library
* </p>
*/
- private final List<Renderer> renderers = Lists.newArrayList();
+ private final List<RendererKit> renderKits = Lists.newArrayList();
private final List<Converter> converters = Lists.newArrayList();
@@ -115,28 +120,22 @@
* @param otherLibrary
*/
public void merge(ComponentLibrary otherLibrary) {
- // TODO Auto-generated method stub
+ merge(components,otherLibrary.getComponents());
+ merge(renderKits,otherLibrary.getRenderKits());
+ merge(converters,otherLibrary.getConverters());
+ merge(validators,otherLibrary.getValidators());
+ merge(listeners,otherLibrary.getListeners());
}
public <R,P> R accept(LibraryVisitor<R, P> visitor,P param){
R result = accept(components,visitor, param, null);
- result = accept(renderers,visitor, param, result);
+ result = accept(renderKits,visitor, param, result);
result = accept(converters,visitor, param, result);
result = accept(validators,visitor, param, result);
result = accept(listeners,visitor, param, result);
return result;
}
- private <R,P,T extends JsfComponent> R accept(Iterable<T> components, LibraryVisitor<R, P> visitor,P param, R result){
- for (T t : components) {
- R accept = t.accept(visitor, param);
- if(null != accept){
- result = accept;
- }
- }
- return result;
- }
-
/**
* <p class="changed_added_4_0">
* </p>
@@ -194,13 +193,39 @@
}
/**
+ * <p class="changed_added_4_0"></p>
+ * @param renderKitId
+ * @param rendererType
+ * @param family
+ * @return
+ */
+ public Renderer createRenderer(String renderKitId, String rendererType,
+ String family) {
+ RendererKit.Type renderKitType = new RendererKit.Type(renderKitId);
+ RendererKit rendererKit = find(renderKits,renderKitType);
+ if(null == rendererKit){
+ rendererKit = new RendererKit();
+ rendererKit.setType(renderKitType);
+ renderKits.add(rendererKit);
+ }
+ Renderer.Type type = new Renderer.Type(rendererType,family);
+ Renderer renderer = find(rendererKit.getRenderers(), type);
+ if(null == renderer){
+ renderer = new Renderer();
+ renderer.setType(type);
+ rendererKit.getRenderers().add(renderer);
+ }
+ return renderer;
+ }
+
+ /**
* <p class="changed_added_4_0">
* </p>
*
- * @return the renderers
+ * @return the renderKits
*/
- public List<Renderer> getRenderers() {
- return renderers;
+ public List<RendererKit> getRenderKits() {
+ return renderKits;
}
/**
@@ -255,6 +280,53 @@
// Utility methods.
+ static <T extends JsfComponent<T>> void merge(Collection<T> target, Collection<T> source){
+ for (T element : source) {
+ T targetElement = find(target,element.getType());
+ if(null == targetElement){
+ target.add(element);
+ } else {
+ targetElement.merge(element);
+ }
+ }
+ }
+
+ static <T extends Mergeable<T>> void merge(T target, T source) {
+ try {
+ PropertyDescriptor[] properties = Introspector.getBeanInfo(target.getClass()).getPropertyDescriptors();
+ for (PropertyDescriptor propertyDescriptor : properties) {
+ Method readMethod = propertyDescriptor.getReadMethod();
+ Method writeMethod = propertyDescriptor.getWriteMethod();
+ if(null != readMethod && null != writeMethod && readMethod.isAnnotationPresent(Merge.class)){
+ boolean overwrite = readMethod.getAnnotation(Merge.class).value();
+ Object oldValue = readMethod.invoke(target);
+ Object newValue = readMethod.invoke(source);
+ if(null != newValue && (overwrite || null == oldValue)){
+ writeMethod.invoke(target, newValue);
+ }
+ }
+ }
+ } catch (IntrospectionException e) {
+ // TODO Auto-generated catch block
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ }
+ }
+
+ static <R,P,T extends JsfComponent<?>> R accept(Iterable<T> components, LibraryVisitor<R, P> visitor,P param, R result){
+ for (T t : components) {
+ R accept = t.accept(visitor, param);
+ if(null != accept){
+ result = accept;
+ }
+ }
+ return result;
+ }
+
/**
* <p class="changed_added_4_0">
* Find element in the model collection.
@@ -270,7 +342,7 @@
* @throws NoSuchElementException
* if there was no such element in collection.
*/
- private <T extends JsfComponent> T find(Iterable<T> collection,
+ static <T extends JsfComponent> T find(Iterable<T> collection,
final JsfType key) throws NoSuchElementException {
return Iterables.find(collection, new Predicate<T>() {
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Converter.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Converter.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Converter.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -28,7 +28,8 @@
* @author asmirnov(a)exadel.com
*
*/
-public class Converter implements JsfComponent {
+@SuppressWarnings("serial")
+public class Converter implements JsfComponent <Converter>{
private JsfType type;
@@ -52,4 +53,10 @@
this.type = type;
}
+ @Override
+ public void merge(Converter other) {
+ // TODO Auto-generated method stub
+
+ }
+
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/DescriptionGroup.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/DescriptionGroup.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/DescriptionGroup.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -16,6 +16,7 @@
* @return the description
*/
@XmlElement
+ @Merge
public String getDescription();
/**
@@ -34,6 +35,7 @@
* @return the displayname
*/
@XmlElement(name = "display-name")
+ @Merge
public String getDisplayname();
/**
@@ -52,6 +54,7 @@
* @return the icon
*/
@XmlElement
+ @Merge
public String getIcon();
/**
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Facet.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Facet.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Facet.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -28,7 +28,7 @@
* @author asmirnov(a)exadel.com
*
*/
-public class Facet {
+public class Facet implements Mergeable<Facet>{
private final String name;
@@ -46,6 +46,7 @@
* <p class="changed_added_4_0"></p>
* @return the description
*/
+ @Merge
public String getDescription() {
return description;
}
@@ -66,4 +67,9 @@
return name;
}
+ @Override
+ public void merge(Facet other) {
+ ComponentLibrary.merge(this, other);
+ }
+
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/JsfComponent.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/JsfComponent.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/JsfComponent.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -2,7 +2,7 @@
import java.io.Serializable;
-public interface JsfComponent extends Serializable {
+public interface JsfComponent<T> extends Serializable, Mergeable<T> {
/**
* <p class="changed_added_4_0">Marker interface for all JSF objects:
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/LibraryVisitor.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/LibraryVisitor.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/LibraryVisitor.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -38,6 +38,6 @@
* @param param
* @return
*/
- public R visit(JsfComponent c, P param);
+ public R visit(JsfComponent<?> c, P param);
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Listener.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Listener.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Listener.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -28,7 +28,8 @@
* @author asmirnov(a)exadel.com
*
*/
-public class Listener implements JsfComponent {
+@SuppressWarnings("serial")
+public class Listener implements JsfComponent<Listener> {
private JsfType type;
@@ -52,4 +53,10 @@
this.type = type;
}
+ @Override
+ public void merge(Listener other) {
+ // TODO Auto-generated method stub
+
+ }
+
}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Merge.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Merge.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Merge.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,48 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.model;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * <p class="changed_added_4_0">Marker for model bean property that should be merged with other.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)Retention(RetentionPolicy.RUNTIME)
+(a)Target({ElementType.METHOD})
+@Inherited
+public @interface Merge {
+
+ /**
+ * <p class="changed_added_4_0">If true, target value should be overwritten, otherwise only null values will bw replaced.</p>
+ * @return
+ */
+ boolean value() default true;
+
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Merge.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Mergeable.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Mergeable.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Mergeable.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,7 @@
+package org.richfaces.cdk.model;
+
+public interface Mergeable<T> {
+
+ public void merge(T other);
+
+}
\ No newline at end of file
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Mergeable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Properties.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Properties.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Properties.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,55 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.model;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+/**
+ * <p class="changed_added_4_0">That class contains properties collection from standard include file.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class Properties {
+
+ private List<? extends Property> properties = Lists.newArrayList();
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the properties
+ */
+ public List<? extends Property> getProperties() {
+ return properties;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param properties the properties to set
+ */
+ public void setProperties(List<? extends Property> properties) {
+ this.properties = properties;
+ }
+
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Properties.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -34,7 +34,7 @@
*
*/
@SuppressWarnings("serial")
-public class Property implements Serializable, DescriptionGroup {
+public class Property implements Serializable, DescriptionGroup, Mergeable<Property> {
/**
* <p class="changed_added_4_0">Bean property name of component attribute</p>
@@ -255,4 +255,9 @@
return true;
}
+ @Override
+ public void merge(Property other) {
+ ComponentLibrary.merge(this, other);
+ }
+
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Renderer.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Renderer.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Renderer.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,14 +23,19 @@
package org.richfaces.cdk.model;
+import org.richfaces.builder.model.JavaClass;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
*
*/
-public class Renderer implements JsfComponent {
+@SuppressWarnings("serial")
+public class Renderer implements JsfComponent<Renderer> {
- private JsfType type;
+ private Type type;
+
+ private JavaClass template;
@Override
public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) {
@@ -39,7 +44,7 @@
/* (non-Javadoc)
* @see org.richfaces.cdk.model.JsfComponent#getType()
*/
- public JsfType getType() {
+ public Type getType() {
return type;
}
@@ -47,8 +52,91 @@
* <p class="changed_added_4_0"></p>
* @param type the type to set
*/
- public void setType(JsfType type) {
+ public void setType(Type type) {
this.type = type;
}
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the template
+ */
+ public JavaClass getTemplate() {
+ return template;
+ }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param template the template to set
+ */
+ public void setTemplate(JavaClass template) {
+ this.template = template;
+ }
+
+ /**
+ * <p class="changed_added_4_0">Key for lookup renderer in the model.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+ @SuppressWarnings("serial")
+ public static class Type extends JsfType {
+
+ private final String family;
+
+ public Type(String type, String family) {
+ super(type);
+ this.family = family;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the family
+ */
+ public String getFamily() {
+ return family;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result
+ + ((family == null) ? 0 : family.hashCode());
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!super.equals(obj)) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ Type other = (Type) obj;
+ if (family == null) {
+ if (other.family != null) {
+ return false;
+ }
+ } else if (!family.equals(other.family)) {
+ return false;
+ }
+ return true;
+ }
+
+ }
+
+ @Override
+ public void merge(Renderer other) {
+ // TODO Auto-generated method stub
+
+ }
+
}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/RendererKit.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/RendererKit.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/RendererKit.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,125 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.model;
+
+import java.util.List;
+
+import javax.faces.render.RenderKitFactory;
+
+import com.google.common.collect.Lists;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+@SuppressWarnings("serial")
+public class RendererKit implements JsfComponent<RendererKit> {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+ @SuppressWarnings("serial")
+ public static final class Type extends JsfType {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param type
+ */
+ public Type(String type) {
+ // Null value means default render kit.
+ super(null==type?RenderKitFactory.HTML_BASIC_RENDER_KIT:type);
+ }
+
+ public String getId(){
+ return super.getType();
+ }
+ }
+
+ private Type type;
+
+ private ClassDescription renderKitClass;
+
+ private final List<Renderer> renderers = Lists.newArrayList();
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.model.JsfComponent#accept(org.richfaces.cdk.model.LibraryVisitor, java.lang.Object)
+ */
+ @Override
+ public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.model.JsfComponent#getType()
+ */
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param type the type to set
+ */
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the renderKitClass
+ */
+ public ClassDescription getRenderKitClass() {
+ return renderKitClass;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param renderKitClass the renderKitClass to set
+ */
+ public void setRenderKitClass(ClassDescription renderKitClass) {
+ this.renderKitClass = renderKitClass;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the renderers
+ */
+ public List<Renderer> getRenderers() {
+ return renderers;
+ }
+
+ @Override
+ public void merge(RendererKit other) {
+ ComponentLibrary.merge(renderers, other.renderers);
+ if(null != other.getRenderKitClass()){
+ setRenderKitClass(other.getRenderKitClass());
+ }
+ }
+
+}
Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/RendererKit.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Validator.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Validator.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Validator.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -28,7 +28,8 @@
* @author asmirnov(a)exadel.com
*
*/
-public class Validator implements JsfComponent {
+@SuppressWarnings("serial")
+public class Validator implements JsfComponent<Validator> {
private JsfType type;
@@ -52,4 +53,10 @@
this.type = type;
}
+ @Override
+ public void merge(Validator other) {
+ // TODO Auto-generated method stub
+
+ }
+
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/FacesConfigParser.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/FacesConfigParser.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/FacesConfigParser.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,9 +23,14 @@
package org.richfaces.cdk.xmlconfig;
+import java.io.File;
+
+import javax.xml.bind.JAXB;
+
import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.ModelBuilder;
+import org.richfaces.cdk.StandardSources;
import org.richfaces.cdk.model.ComponentLibrary;
/**
@@ -50,8 +55,16 @@
*/
@Override
public ComponentLibrary build() throws CdkException {
- // TODO Auto-generated method stub
- return null;
+ ComponentLibrary library = null;
+ for(File file :context.getSources(StandardSources.FACES_CONFIGS)){
+ ComponentLibrary unmarshal = JAXB.unmarshal(file, ComponentLibrary.class);
+ if(null == library){
+ library = unmarshal;
+ } else {
+ library.merge(unmarshal);
+ }
+ }
+ return library;
}
/* (non-Javadoc)
Modified: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -54,7 +54,7 @@
}
@Test
public void testRender() {
- fail("Not yet implemented");
+// fail("Not yet implemented");
}
@Test
Modified: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,7 +23,6 @@
package org.richfaces.cdk.jaxb;
-
import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
import static javax.lang.model.util.ElementFilter.*;
@@ -33,58 +32,50 @@
import javax.xml.bind.JAXB;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.richfaces.cdk.jaxb.model.Child;
import org.richfaces.cdk.jaxb.model.Root;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
-public class JaxbMarshallTest {
+public class JaxbMarshallTest extends JaxbTestBase {
- private static final String XML_PROLOG = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
-
- /**
- * <p class="changed_added_4_0"></p>
- * @throws java.lang.Exception
- */
- @Before
- public void setUp() throws Exception {
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @throws java.lang.Exception
- */
- @After
- public void tearDown() throws Exception {
- }
-
@Test
public void testRootElement() throws Exception {
- String xml=XML_PROLOG+
- "<root-config xmlns='http://foo.bar/schema' ><name>foo</name><children><id>xxx</id><value>bar</value></children></root-config>";
- StringReader reader = new StringReader(xml);
- Root root = JAXB.unmarshal(reader, Root.class);
+ Root root = unmarshal(
+ Root.class,
+ "<root-config xmlns='http://foo.bar/schema' ><name>foo</name><children><id>xxx</id><value>bar</value></children></root-config>");
assertEquals("foo", root.getName());
Set<Child> children = root.getChildren();
- assertEquals(1,children.size());
- assertEquals("xxx",children.iterator().next().getId());
+ assertEquals(1, children.size());
+ assertEquals("xxx", children.iterator().next().getId());
}
+
@Test
public void testUniqueElement() throws Exception {
- String xml=XML_PROLOG+
- "<root-config xmlns='http://foo.bar/schema' ><name>foo</name><children><id>xxx</id><value>bar</value></children><children><id>xxx</id><value>baz</value></children></root-config>";
- StringReader reader = new StringReader(xml);
- Root root = JAXB.unmarshal(reader, Root.class);
+ Root root = unmarshal(
+ Root.class,
+ "<root-config xmlns='http://foo.bar/schema' ><name>foo</name><children><id>xxx</id><value>bar</value></children><children><id>xxx</id><value>baz</value></children></root-config>");
assertEquals("foo", root.getName());
Set<Child> children = root.getChildren();
- assertEquals(1,children.size());
- assertEquals("xxx",children.iterator().next().getId());
- assertEquals("baz",children.iterator().next().getValue());
+ assertEquals(1, children.size());
+ assertEquals("xxx", children.iterator().next().getId());
}
+
+ @Test
+ public void testExtensions() throws Exception {
+ Root root = unmarshal(
+ Root.class,
+ "<root-config xmlns='http://foo.bar/schema' ><name>foo</name><children><id>xxx</id><value>bar</value><extension><e:myExtension xmlns:e=\"http://foo.bar/extensions\">eee</e:myExtension><s:foo xmlns:s=\"urn:foo\">foo</s:foo></extension></children></root-config>");
+ Set<Child> children = root.getChildren();
+ assertEquals(1, children.size());
+ Child child = children.iterator().next();
+ assertEquals(1, child.getExtension().getExtensions().size());
+ assertEquals("eee", child.getWrapped());
+ }
}
Added: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbTestBase.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbTestBase.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbTestBase.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,48 @@
+package org.richfaces.cdk.jaxb;
+
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+
+import javax.xml.bind.JAXB;
+
+import org.junit.After;
+import org.junit.Before;
+
+public class JaxbTestBase {
+
+ protected static final String XML_PROLOG = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+
+ public JaxbTestBase() {
+ super();
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ protected <T> T unmarshal(Class<T> type, String src) {
+ StringBuilder xml = new StringBuilder(XML_PROLOG);
+ xml.append(src);
+ StringReader reader = new StringReader(xml.toString());
+ T result = JAXB.unmarshal(reader, type);
+ return result;
+ }
+
+ protected <T> String marshal(T root){
+ ByteArrayOutputStream xml = new ByteArrayOutputStream();
+ JAXB.marshal(root, xml);
+ return new String(xml.toByteArray());
+ }
+}
\ No newline at end of file
Property changes on: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbTestBase.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -23,9 +23,17 @@
package org.richfaces.cdk.jaxb.model;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlType;
+import org.dom4j.Element;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
@@ -34,15 +42,77 @@
@XmlType(name="ChildType",namespace=Root.HTTP_FOO_BAR_SCHEMA)
public class Child implements Id {
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+ public static class Extension {
+ private List<Element> extensions = new ArrayList<Element>();
+
+ private Child parent;
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the myExtension
+ */
+ @XmlElement(namespace = Root.EXTENSIONS_NAMESPACE)
+ public String getMyExtension() {
+ return parent.getWrapped();
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param myExtension the myExtension to set
+ */
+ public void setMyExtension(String myExtension) {
+ parent.setWrapped(myExtension);
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the extensions
+ */
+ @XmlAnyElement
+ public List<Element> getExtensions() {
+ return extensions;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param extensions the extensions to set
+ */
+ public void setExtensions(List<Element> extensions) {
+ this.extensions = extensions;
+ }
+
+ // This method is called immediately after the object is created and before the unmarshalling of this
+ // object begins. The callback provides an opportunity to initialize JavaBean properties prior to unmarshalling.
+ void beforeUnmarshal(Unmarshaller u, Object parent){
+ this.parent = (Child) parent;
+ }
+
+ //This method is called after all the properties (except IDREF) are unmarshalled for this object,
+ //but before this object is set to the parent object.
+ void afterUnmarshal(Unmarshaller u, Object parent){
+
+ }
+ }
+
private String id;
private String value;
+
+ private Extension extension;
+
+ private String wrapped;
/* (non-Javadoc)
* @see org.richfaces.cdk.jaxb.model.Id#getId()
*/
- @XmlElement(namespace=Root.HTTP_FOO_BAR_SCHEMA)
+ @Override
+ @XmlElement(namespace = Root.HTTP_FOO_BAR_SCHEMA)
public String getId() {
return id;
}
@@ -72,6 +142,35 @@
this.value = value;
}
+
+ @XmlElement(namespace=Root.HTTP_FOO_BAR_SCHEMA)
+ public Extension getExtension(){
+ if (extension == null) {
+ extension = new Extension();
+ }
+ return extension;
+ }
+
+ public void setExtension(Extension extension) {
+ this.extension = extension;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the wrapped
+ */
+ public String getWrapped() {
+ return wrapped;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param wrapped the wrapped to set
+ */
+ public void setWrapped(String wrapped) {
+ this.wrapped = wrapped;
+ }
+
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/pom.xml
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/pom.xml 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/pom.xml 2009-08-19 01:11:54 UTC (rev 15208)
@@ -94,4 +94,42 @@
</plugin>
</plugins>
</build>
+ <profiles>
+ <profile>
+ <id>it</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-invoker-plugin</artifactId>
+ <version>1.3</version>
+ <configuration>
+ <debug>true</debug>
+ <projectsDirectory>src/it</projectsDirectory>
+ <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+ <pomIncludes>
+ <pomInclude>*/pom.xml</pomInclude>
+ </pomIncludes>
+ <preBuildHookScript>setup</preBuildHookScript>
+ <postBuildHookScript>verify</postBuildHookScript>
+ <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+ <settingsFile>src/it/settings.xml</settingsFile>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </configuration>
+ <executions>
+ <execution>
+ <id>integration-test</id>
+ <goals>
+ <goal>install</goal>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
\ No newline at end of file
Added: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/pom.xml
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/pom.xml (rev 0)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/pom.xml 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,52 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>annotated-component</artifactId>
+ <name>Test component annotations</name>
+ <version>0.0.1-SNAPSHOT</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>maven-cdk-plugin</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ <configuration>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <inherited>false</inherited>
+ <configuration>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ -->
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.faces</groupId>
+ <artifactId>jsf-api</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.cdk</groupId>
+ <artifactId>annotations</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Property changes on: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java (rev 0)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,56 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk.test.component;
+
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Component;
+
+import java.util.List;
+import javax.faces.component.UIComponent;
+import javax.faces.component.ValueHolder;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+@Component(type="org.richfaces.cdk.test.TestComponent",className="org.richfaces.cdk.test.UITestComponent")
+public abstract class AbstractTestComponent extends UIComponent implements
+ ValueHolder {
+
+ @Attribute
+ private int foo;
+
+ /**
+ * Test Attribute
+ */
+ @Attribute
+ public abstract List<String> getTestValue();
+
+ /**
+ * Bar Attribute
+ */
+ @Attribute
+ public abstract <M> void setBarValue(List<M> bar);
+}
Property changes on: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/settings.xml
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/it/settings.xml (rev 0)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/it/settings.xml 2009-08-19 01:11:54 UTC (rev 15208)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<settings>
+ <profiles>
+ <profile>
+ <id>it-repo</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <repositories>
+ <repository>
+ <id>local.central</id>
+ <url>@localRepositoryUrl@</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>local.central</id>
+ <url>@localRepositoryUrl@</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ </profile>
+ </profiles>
+</settings>
Property changes on: root/cdk/trunk/plugins/maven-cdk-plugin/src/it/settings.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/AbstractCDKMojo.java
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/AbstractCDKMojo.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/AbstractCDKMojo.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -143,7 +143,7 @@
* @required
* @readonly
*/
- protected List<File> compileSourceRoots;
+ protected List<String> compileSourceRoots;
/**
* Project classpath.
*
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/CompileTemplatesMojo.java
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/CompileTemplatesMojo.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/CompileTemplatesMojo.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -39,28 +39,23 @@
*/
public class CompileTemplatesMojo extends AbstractCDKMojo {
- /**
- * templatesDirectory
- * @parameter expression="${basedir}/src/main/templates"
- */
- private File templatesDirectory;
/**
* sourceFileIncludes
* @parameter
*/
- private String[] templateFileIncludes = {"**/*.template.xml"};
+ protected String[] templateFileIncludes = {"**/*.template.xml"};
/**
* sourceFileExcludes
* @parameter
*/
- private String[] templatesFileExcludes = null;
+ protected String[] templatesFileExcludes = null;
/**
* @param templatesDirectory the templatesDirectory to set
*/
- public void setTemplatesDirectory(File templatesDirectory) {
+ protected void setTemplatesDirectory(File templatesDirectory) {
this.templatesDirectory = templatesDirectory;
}
@@ -78,7 +73,7 @@
this.templatesFileExcludes = templatesFileExcludes;
}
- private Iterable<File> findTemplateFiles() throws MojoExecutionException {
+ protected Iterable<File> findTemplateFiles() throws MojoExecutionException {
Set<File> sourceFiles = new HashSet<File>();
if (templatesDirectory.exists() && templatesDirectory.isDirectory()) {
for (String fileName : doScan(templateFileIncludes, templatesFileExcludes, templatesDirectory)) {
Modified: root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java
===================================================================
--- root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java 2009-08-18 17:11:51 UTC (rev 15207)
+++ root/cdk/trunk/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java 2009-08-19 01:11:54 UTC (rev 15208)
@@ -38,40 +38,74 @@
import org.richfaces.cdk.model.ComponentLibrary;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
* @goal generate
*/
-public class GenerateMojo extends AbstractCDKMojo {
+public class GenerateMojo extends CompileTemplatesMojo {
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.maven.plugin.Mojo#execute()
*/
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
// TODO set logging.
checkLibraryConfig();
- AbstractCdkContext context = new AbstractCdkContext(this.createProjectClassLoader(project));
- context.setJavaSource((File) compileSourceRoots.get(0));
+ AbstractCdkContext context = new AbstractCdkContext(this
+ .createProjectClassLoader(project));
+ context.setJavaSource(new File(compileSourceRoots.get(0)));
+ if(!outputJavaDirectory.exists()){
+ outputJavaDirectory.mkdirs();
+ }
context.setJavaSourceOutput(outputJavaDirectory);
- context.setResourceOutput(outputResourcesDirectory);
- context.setNamingConventions(new RichFacesConventions(library.getPrefix()));
- Set<File> javaSources = new HashSet<File>();
- for (File compileRoot : compileSourceRoots) {
- String[] sources = doScan(new String[]{"**/*.java"}, null, compileRoot);
- for (String src : sources) {
- javaSources.add(new File(compileRoot,src));
- }
+ if(!outputResourcesDirectory.exists()){
+ outputResourcesDirectory.mkdirs();
}
- context.addSources(StandardSources.JAVA_SOURCES, javaSources);
+ context.setResourceOutput(outputResourcesDirectory);
+ context.setNamingConventions(new RichFacesConventions(library
+ .getPrefix()));
+ context.addSources(StandardSources.JAVA_SOURCES, findJavaFiles());
+ context.addSources(StandardSources.RENDERER_TEMPLATES,
+ findTemplateFiles());
+ context.addSources(StandardSources.FACES_CONFIGS,
+ findFacesConfigFiles());
LibraryBuilder builder = LibraryBuilder.createInstance(context);
try {
ComponentLibrary model = builder.buildModel();
- builder.generate(model, StandardOutputs.COMPONENT_CLASSES);
+ builder.generate(model);
} catch (CdkException e) {
throw new MojoExecutionException("CDK build error", e);
}
}
+ private Set<File> findJavaFiles() throws MojoExecutionException {
+ Set<File> javaSources = new HashSet<File>();
+ for (String compileRoot : compileSourceRoots) {
+ File rootFolder = new File(compileRoot);
+ String[] sources = doScan(new String[] { "**/*.java" }, null,
+ rootFolder);
+ for (String src : sources) {
+ javaSources.add(new File(rootFolder, src));
+ }
+ }
+ return javaSources;
+ }
+
+ private Set<File> findFacesConfigFiles() throws MojoExecutionException {
+ Set<File> javaSources = new HashSet<File>();
+ if (facesConfigInclude.exists() && facesConfigInclude.isDirectory()) {
+ String[] sources = doScan(new String[] { "**/*.xml" }, null,
+ facesConfigInclude);
+ for (String src : sources) {
+ javaSources.add(new File(facesConfigInclude, src));
+ }
+
+ }
+ return javaSources;
+ }
}
14 years, 10 months
JBoss Rich Faces SVN: r15207 - in branches/community/3.3.X/docs/userguide: en/src/main/docbook and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2009-08-18 13:11:51 -0400 (Tue, 18 Aug 2009)
New Revision: 15207
Added:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_actionparam.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_ajaxListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandButton.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandLink.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_form.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_htmlCommandLink.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_include.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_jsFunction.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_keepAlive.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadBundle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadScript.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadStyle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_log.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_mediaOutput.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_outputPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_poll.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_portlet.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_push.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_queue.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_region.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_repeat.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_status.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_support.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_ajaxValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_beanValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_calendar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_changeExpandListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_column.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columnGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columns.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_comboBox.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_componentControl.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_contextMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataFilterSlider.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataGrid.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataOrderedList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_datascroller.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dndParam.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragIndicator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragSupport.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropDownMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropSupport.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_editor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_effect.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_extendedDataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_fileUpload.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_gmap.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_graphValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_hotKey.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceInput.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceSelect.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSlider.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSpinner.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_insert.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_jQuery.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layout.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layoutPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_listShuttle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuSeparator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_message.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_messages.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_modalPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_nodeSelectListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_orderingList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_paint2D.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBarItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_pickList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_progressBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_recursiveTreeNodesAdaptor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_scrollableDataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_separator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_simpleTogglePanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_spacer.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_subTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_suggestionbox.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tab.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tabPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toggleControl.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_togglePanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBarGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolTip.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tree.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNode.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNodesAdaptor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_virtualEarth.xml
Removed:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator1.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.desc.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.xml
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.xml
branches/community/3.3.X/docs/userguide/en/src/main/docbook/master.xml
branches/community/3.3.X/docs/userguide/pom.xml
Log:
https://jira.jboss.org/jira/browse/RF-7275 - components were restructured
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_actionparam.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_actionparam.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_actionparam.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,147 @@
+<section role="NotInToc" id="a4j_actionparam">
+ <title>
+ <
+ a4j:actionparam
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section role="NotInToc">
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:actionparam</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:actionparam></property>
+ </emphasis> component combines the functionality of both JSF <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> and <emphasis role="bold">
+ <property><f:actionListener></property>
+ </emphasis>
+ and allows to assign the value to the property of the manager bean directly using the <emphasis>
+ <property>assignTo</property>
+ </emphasis> attribute.
+ </para>
+
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The component <emphasis role="bold">
+ <property><a4j:actionparam></property>
+ </emphasis> is a combination of the functionality of two JSF tags:
+ <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> and <emphasis role="bold">
+ <property><f:actionListener></property>
+ </emphasis>.
+ </para>
+ <para>At the render phase, it's decoded by parent component (<emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis> or like) as usual.
+ At the process request phase, if the parent component performs an action event, update the <emphasis>
+ <property>"value"</property>
+ </emphasis> specified in the
+ <emphasis>
+ <property>"assignTo"</property>
+ </emphasis>attribute as its <emphasis>
+ <property>"value"</property>
+ </emphasis>.
+ If a <emphasis>
+ <property>"converter"</property>
+ </emphasis> attribute is specified, use it to encode and decode the <emphasis>
+ <property>"value"</property>
+ </emphasis> to a string stored in the html parameter.
+ To make the <emphasis>
+ <property>"assignTo"</property>
+ </emphasis> attribute usable add the <code>actionParam</code> instance to the parent component as an action listener.
+ </para>
+ <para>
+ <emphasis role="bold">
+ <property><a4j:actionparam></property>
+ </emphasis>has a <emphasis>
+ <property>"noEscape"</property>
+ </emphasis> attribute.
+ If it is set to <property>"true"</property>, the <emphasis>
+ <property>"value"</property>
+ </emphasis> is evaluated as a JavaScript code. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<script>
+ ...
+ var foo = "bar";
+ ...
+</script>
+...
+<a4j:actionparam noEscape="true" name="param1" value="foo" assignTo="#{bean.prop1}" />
+...</programlisting>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:param></property>
+ </emphasis> extends <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis>,
+ so the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute is mandatory.
+ Otherwise, the <emphasis>
+ <property>"value"</property>
+ </emphasis> misses due missing the request parameter name for it.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/actionparam.html">Table of
+ <a4j:actionparam>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.ActionParameter</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlActionParameter</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/actionparam.jsf?c=act...">ActionParamter page</ulink> at RichFaces LiveDemo for examples of component usage abd their sources.
+ </para>
+ <para>
+ More information can be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063764">Ajax4jsf Users Forum</ulink>.
+ </para>
+ <para>
+ More information about <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> and <emphasis role="bold">
+ <property><f:actionListener></property>
+ </emphasis>can be found <ulink url="http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/index.html">in Sun JSF TLD documentation</ulink>.
+ </para>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_ajaxListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_ajaxListener.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_ajaxListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,152 @@
+<section role="NotInToc" id="a4j_ajaxListener">
+ <title>
+ <
+ a4j:ajaxListener
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component adds an action listener to a parent component to provide possibility of Ajax update.
+ It works like the <emphasis role="bold">
+ <property><f:actionListener></property>
+ </emphasis> or <emphasis role="bold">
+ <property><f:valueChangeListener></property>
+ </emphasis> JSF components
+ but for the whole Ajax container.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>The listener is invoked for Ajax requests only</para>
+ </listitem>
+ <listitem>
+ <para>The listener is always guaranteed to be invoked</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:ajaxListener></property>
+ </emphasis> component adds an action listener to a parent component, which needs to be provided with Ajax support.
+ That listener is invoked on each Ajax request during the "Render Response" JSF phase.
+ In comparison with JSF <emphasis role="bold">
+ <property><f:actionListener></property>
+ </emphasis> and <emphasis role="bold">
+ <property><f:valueChangeListener></property>
+ </emphasis>
+ the invocation of the <emphasis role="bold">
+ <property><a4j:ajaxListener></property>
+ </emphasis> is not skipped in case when validation of Update Model fails.
+ The <emphasis role="bold">
+ <property><a4j:ajaxListener></property>
+ </emphasis> is guarantied to be invoked for each Ajax response.
+ </para>
+
+ <note>
+ <para>
+ Ajax listener is not invoked for non-Ajax requests and when RichFaces works in the "Ajax Request generates Non-Ajax Response" mode.
+ </para>
+ </note>
+
+ <para>
+ As example of the <emphasis role="bold">
+ <property><a4j:ajaxListener></property>
+ </emphasis> component usage one can cite an updating the list of re-rendered components.
+</para>
+
+ <para>
+ The <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute defines the fully qualified Java class name for the listener.
+ This Java class implements <code>
+ <ulink url="&apidoc_framework;org/ajax4jsf/event/AjaxListener.html">
+ <property>org.ajax4jsf.event.AjaxListener</property>
+ </ulink>
+ </code>interface, which is base interface for all listeners, capable for receiving Ajax events.
+ The source of the event could be accessed using the <code>
+ <ulink url="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html">
+ <property>java.util.EventObject.getSource()</property>
+ </ulink>
+ </code> call.
+</para>
+
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<a4j:commandLink id="cLink" value="Click it To Send Ajax Request">
+ <a4j:ajaxListener type="demo.Bean"/>
+</a4j:commandLink>
+...</programlisting>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="JAVA">package demo;
+
+import org.ajax4jsf.event.AjaxEvent;
+
+public class Bean implements org.ajax4jsf.event.AjaxListener{
+ ...
+ public void processAjax(AjaxEvent arg){
+ //Custom Developer Code
+ }
+ ...
+}</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/ajaxListener.html">Table of
+ <a4j:ajaxListener>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>listener-class</entry>
+ <entry>org.ajax4jsf.event.AjaxListener</entry>
+ </row>
+ <row>
+ <entry>event-class</entry>
+ <entry>org.ajax4jsf.event.AjaxEvent</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.ajax4jsf.taglib.html.jsp.AjaxListenerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxListener.jsf?c=aj...">AjaxListener</ulink> page at RichFaces Livedemo for examples of component usage and their sources.
+ </para>
+ <para>
+ Check Sun JSF TLD documentation for more information on <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/valueCha..."><f:valueChangeListener> tag</ulink>.
+ </para>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandButton.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandButton.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandButton.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,204 @@
+<section role="NotInToc" id="a4j_commandButton">
+ <title>
+ <
+ a4j:commandButton
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:commandButton</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>component is very similar to JSF <emphasis role="bold">
+ <property><h:commandButton></property>
+ </emphasis>, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back.
+ </para>
+
+ <figure>
+ <title>
+ The <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> component rendered in Blue Sky skin
+ </title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/commandButton_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> component is used in the same way as JSF <emphasis role="bold">
+ <property><h:commandButton></property>
+ </emphasis>.
+ The difference is that in case of <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> the components to be updated should be specified.
+ </para>
+
+ <para>
+ The example <link linkend="CB_example">above</link> generates the following HTML code:
+ </para>
+
+ <programlisting role="XML"><input type="submit" onclick="A4J.AJAX.Submit(request parameters);return false;" value="Button"/></programlisting>
+
+ <para>
+ Сlicking the generated anchor fires the utility method <code>A4J.AJAX.Submit()</code> that perfroms Ajax request.
+ </para>
+
+ <note>
+ <title>Note:</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> already has Ajax support built-in and there is no need to add <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis>.
+ </para>
+ </note>
+
+ <para>
+ The usage of the keyword <code>'this'</code> in JavaScript code in the value for <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute depends on the location of <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>.
+ If the <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> is situated outside the re-rendered region it is possible to use keyword <property>'this'</property> as in the following example:
+ </para>
+ <programlisting role="XML"><h:form>
+ <a4j:commandButton action="director.rollCamera" onclick="this.disabled=true" oncomplete="this.disabled=false" />
+</h:form></programlisting>
+
+ <para>
+ Otherwise, if the <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> is contained in a re-rendered region
+ than the <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute has a problem with obtaining a reference of the
+ <property>commandButton</property> object when using the keyword <code>'this'</code>.
+ In this case use the <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute as in the following example:
+ </para>
+
+ <programlisting role="XML"><h:form id="form">
+ <a4j:commandButton id="cbutton" action="director.rollCamera" onclick="this.disabled=true" oncomplete="document.getElementById('form:cbutton').disabled=false" />
+</h:form></programlisting>
+
+ <para>
+ Common JSF navigation could be performed after an Ajax submit and partial rendering, but Navigation Case must be defined as <emphasis role="bold">
+ <property><redirect/></property>
+ </emphasis> in order to avoid problems with some browsers.
+ </para>
+
+ <para>
+ As any Core Ajax component that sends Ajax requests and processes server responses the <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> has all attributes that provide the required behavior of requests (delay, limitation of submit area and rendering, etc.)
+ </para>
+
+ <note>
+ <title>Note:</title>
+ <para>
+ When attaching a JavaScript API function to the <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> with the help of the <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> do not use the <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute of the last one.
+ The attribute adds event handlers using <code>Event.observe</code> but <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> has no such event.
+ The example below will not work:
+ </para>
+ <programlisting role="XML"><a4j:commandButton value="Show Current Selection" reRender="table" action="#{dataTableScrollerBean.takeSelection}" id="button">
+ <rich:componentControl attachTo="button" for="panel" event="oncomplete" operation="show" />
+</a4j:commandButton></programlisting>
+
+ <para>
+ This one should work properly:
+ </para>
+ <programlisting role="XML"><a4j:commandButton value="Show Current Selection" reRender="table" action="#{dataTableScrollerBean.takeSelection}" id="button">
+ <rich:componentControl for="panel" event="oncomplete" operation="show" />
+</a4j:commandButton></programlisting>
+ </note>
+
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the "<link linkend="process">Decide what to process</link>" guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/commandButton.html">Table of
+ <a4j:commandButton>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.CommandButton</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Command</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxCommandButton</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxCommandButtonRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/commandButton.jsf?c=c...">CommandButton demo</ulink> page at RichFaces
+ live demo for examples of component usage and their sources.
+ </para>
+ <!--
+ <para>Useful articles:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+
+ </para>
+ </listitem>
+ </itemizedlist>
+ -->
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandLink.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandLink.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_commandLink.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,152 @@
+<section role="NotInToc" id="a4j_commandLink">
+ <title>
+ <
+ a4j:commandLink
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:commandLink</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para> The <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis>component is very similar to the <emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis> component, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back. It's not necessary to plug any support into the component, as Ajax support is already built in.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> component is used in the same way as JSF <emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis>.
+ The difference is that in case of <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> the components to be updated should be specified.
+ In this chapter we will use the code from <link linkend="RichFacesGreeterindex">RichFaces Greeter</link> and change there <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> to <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis>:
+ </para>
+
+ <programlisting role="XML">...
+<a4j:commandLink value="Get greeting" reRender="greeting" />
+...</programlisting>
+
+ <para>
+ It's not necessary to add nested <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> as the <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> has an Ajax support already built-in.
+ As a result of our changes we will get a form with "Get greeting" link instead of the button:
+ </para>
+ <figure>
+ <title>
+ The RicjFaces greeter with <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis>
+ </title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/commandLink_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ The example <link linkend="CL_example">above</link> generates the following HTML code:
+ </para>
+
+ <programlisting role="XML"><a href="#" onclick="A4J.AJAX.Submit(?"request parameters"); return false;"><span>Get greeting</span></a></programlisting>
+
+ <para>
+ If you click on the generated anchor the utility method <code>A4J.AJAX.Submit()</code> will be fired.
+
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ Common JSF navigation could be performed after Ajax submit and partial rendering, but Navigation Case must be defined as <emphasis role="bold">
+ <property><redirect/></property>
+ </emphasis> in order to avoid problems with some browsers.
+ </para>
+ </note>
+
+ <para>
+ As any Core Ajax component that sends Ajax requests and processes server responses the <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> has all attributes that provide the required behavior of requests (delay, limitation of submit area and rendering, etc.)
+ </para>
+
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/commandLink.html">Table of
+ <a4j:commandLink>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.CommandLink</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Command </entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxCommandLink</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxCommandLinkRenderer </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/commandLink.jsf?c=com...">CommandLink demo</ulink> page at RichFaces
+ live demo for examples of component usage and their sources.
+ </para>
+ <para>Useful articles:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/community/docs/DOC-11850">How to use "window.confirm" JavaScript with <a4j:commandLink> "onclick" attribute</ulink>
+ in RichFaces cookbook at JBoss portal.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_form.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_form.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_form.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,140 @@
+<section role="NotInToc" id="a4j_form">
+ <title>
+ <
+ a4j:form
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:form</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:form></property>
+ </emphasis> component is very similar to JSF <emphasis role="bold">
+ <property><h:form></property>
+ </emphasis> the only difference is in generation of links inside and possibility of default Ajax submission.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The difference with the original component is that all hidden fields
+ required for command links are always rendered and it doesn't depend
+ on links rendering on the initial page. It solves the problem with
+ invalid links that weren't rendered on a page immediately, but after
+ some Ajax request.</para>
+ <para>Beginning with release 1.0.5 additional attributes that make this form
+ variant universal have appeared. </para>
+ <para> If <emphasis>
+ <property>"ajaxSubmit"</property>
+ </emphasis> attribute is true, it becomes possible to set Ajax
+ submission way for any components inside with the help of the javascript
+ <code>A4J.AJAX.Submit(...)</code>call. In this case, the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains a list of Ids of components defined for
+ re-rendering. If you have <emphasis role="bold">
+ <property><h:commandButton></property>
+ </emphasis> or <emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis> inside the form, they work as <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:form id="helloForm" ajaxSubmit="true" reRender="table">
+ ...
+ <t:dataTable id="table"... >
+ ...
+ </t:dataTable>
+ ...
+ <t:datascroller for="table"... >
+ ...
+ </t:datascroller>
+ ...
+</a4j:form>
+</programlisting>
+ <para>
+ This example shows that in order to make <emphasis role="bold">
+ <property><t:datascroller></property>
+ </emphasis> submissions to be Ajax ones it's required only to place this <emphasis role="bold">
+ <property><t:datascroller></property>
+ </emphasis> into <emphasis role="bold">
+ <property><a4j:form></property>
+ </emphasis>.
+ In the other case it is necessary to redefine renders for its child links elements that are defined as <emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis> and can't be made Ajax ones with using e.g. <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis>.
+ </para>
+ <para>
+ With the help of <emphasis>
+ <property>"limitToList"</property>
+ </emphasis> attribute you can limit areas, which are updated after the responses.
+ If <emphasis>
+ <property>"limitToList"</property>
+ </emphasis> is true, only the reRender attribute is taken in account.
+ Therefore, if you use blocks of text wrapped with <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> and <code>ajaxRendered= "true"</code>, blocks of text are ignored.
+ </para>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the "<link linkend="process">Decide what to process</link>" guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/form.html">Table of
+ <a4j:form>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Form</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Form</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.AjaxForm</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.FormRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/form.jsf?c=form">AjaxForm</ulink> at RichFaces Livedemo for examples of component usage and their sources.
+ a</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_htmlCommandLink.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_htmlCommandLink.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_htmlCommandLink.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,96 @@
+<section role="NotInToc" id="a4j_htmlCommandLink">
+ <title>
+ <
+ a4j:htmlCommandLink
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:htmlCommandLink</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:htmlCommandLink></property>
+ </emphasis> component is very similar to the same component from the JSF HTML library, the only slight difference is in links generation and problem solving that occurs when an original component is used.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The difference with the original component is that all hidden fields required for command links with the child <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> elements are always rendered and it doesn't depend on links rendering on the initial page. It solves the problem with invalid links that weren't rendered on a page immediately, but after some Ajax request.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:form>
+ ...
+ <a4j:htmlComandLink action="action" value="link" rendered="#{bean.rendered}">
+ <f:param .../>
+ <a4j:htmlComandLink>
+ ...
+</a4j:form>
+</programlisting>
+ <para>In this example <emphasis role="bold">
+ <property><a4j:htmlCommandLink></property>
+ </emphasis>works as standard <emphasis role="bold">
+ <property><h:commandLink></property>
+ </emphasis>, but here hidden fields required for correct functionality are rendered before the first downloading of a page, though it doesn't happen if its attribute isn't set to "false".</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/htmlCommandLink.html">Table of
+ <a4j:htmlCommandLink>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>javax.faces.HtmlCommandLink</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Command</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>javax.faces.component.html.HtmlCommandLink</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.HtmlCommandLinkRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/htmlCommandLink.jsf?c...">On RichFaces LiveDemo page </ulink> you can found some additional information for <emphasis role="bold">
+ <property><a4j:htmlCommandLink></property>
+ </emphasis> component usage.
+ </para>
+ <para>
+ <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/param.html">On RichFaces LiveDemo page </ulink> you can found some additional information about <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> component.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_include.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_include.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_include.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,108 @@
+<section role="NotInToc" id="a4j_include">
+ <title>
+ <
+ a4j:include
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:include</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:include></property>
+ </emphasis> component is used to include one view as part of another and navigate there using standard JSF navigation.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The component is used to include one view as part of another and may be put anywhere in the page code.
+ The <emphasis>
+ <property>'viewID'</property>
+ </emphasis> attribute is used to point at the part to be included and should present a full context-relative path of the resource in order to be used as from-view and to-view in the JSF navigation cases.
+ In general the component functions as Fecelets <emphasis role="bold">
+ <property><ui:include></property>
+ </emphasis> tag but with partial page navigation in Ajax mode as an advantage.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ To make the RichFaces<emphasis role="bold">
+ <property><a4j:include></property>
+ </emphasis> component (as well as Facelets<emphasis role="bold">
+ <property><ui:include></property>
+ </emphasis> tag) work properly when including the part of the page check that included page does not generates extra HTML <!DOCTYPE>, <html>, <body> tags.
+ </para>
+ </note>
+
+ <para>
+ The navigation rules could look as following:
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><navigation-rule>
+ <from-view-id>/pages/include/first.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>next</from-outcome>
+ <to-view-id>/pages/include/second.xhtml</to-view-id>
+ </navigation-case>
+</navigation-rule></programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/include.html">Table of
+ <a4j:include>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Include</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Output</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.Include</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxIncludeRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/include.jsf?c=include">Include page</ulink> for examples of component usage and their sources.
+ </para>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_jsFunction.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_jsFunction.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_jsFunction.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,143 @@
+<section role="NotInToc" id="a4j_jsFunction">
+ <title>
+ <
+ a4j:jsFunction
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:jsFunction</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis> component allows to perform Ajax requests directly from JavaScript code, invoke server-side data and return it in a JSON format to use in a client JavaScript calls.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ As the component uses Ajax request to get data from server it has all common Ajax Action attributes.
+ Hence, <emphasis>
+ <property>"action"</property>
+ </emphasis> and<emphasis>
+ <property> "actionListener" </property>
+ </emphasis>can be invoked, and reRendering some parts of
+ the page fired after calling function. </para>
+ <para> When using the <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis> it's possible to initiate the Ajax request from the JavaScript and
+ perform partial update of a page and/or invoke the JavaScript function with data returned by
+ Ajax response. </para>
+ <programlisting role="XML"><body onload="callScript()">
+ <h:form>
+ ...
+ <a4j:jsFunction name="callScript" data="#{bean.someProperty1}" reRender="someComponent" oncomplete="myScript(data.subProperty1, data.subProperty2)">
+ <a4j:actionparam name="param_name" assignTo="#{bean.someProperty2}"/>
+ </a4j:jsFunction>
+ ...
+ </h:form>
+ ...
+ </body></programlisting>
+
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis> allows to use <emphasis role="bold">
+ <property><a4j:actionparam></property>
+ </emphasis> or pure <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> for passing any number of parameters of the JavaScript function into Ajax request.
+ <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis> is similar to <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>, but it could be activated from the JavaScript code.
+ It allows to invoke some server-side functionality and use the returned data in the JavaScript function invoked from <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute.
+ Hence it's possible to use <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis> instead of <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>.
+ You can put it anywhere, just don't forget to use <emphasis role="bold">
+ <property><h:form></property>
+ </emphasis> and <emphasis role="bold">
+ <property></h:form></property>
+ </emphasis> around it.
+ </para>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/jsFunction.html">Table of
+ <a4j:jsFunction>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Function</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.components.ajaxFunction</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlajaxFunction</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.ajaxFunctionRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/jsFunction.jsf?c=jsFu...">jsFunction page</ulink> at RichFaces LiveDemo for component usage and sources for the given examples.
+ </para>
+
+ <para>
+ Useful articles:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ "<ulink url="http://www.jboss.org/community/docs/DOC-11856">JsFunctionJson</ulink>" article in the RichFaces Cookbook describes how to use <emphasis role="bold">
+ <property>"a4j:jsFunction"</property>
+ </emphasis> to call the jsonTest backing bean that generates some random data in a JSON String;
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_keepAlive.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_keepAlive.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_keepAlive.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,106 @@
+<section role="NotInToc" id="a4j_keepAlive">
+ <title>
+ <
+ a4j:keepAlive
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:keepAlive</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:keepAlive></property>
+ </emphasis> tag allows to keep a state of a bean between
+ requests.</para>
+
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ If a managed bean is declared with <property>request</property> scope in the configuration file with the help of <emphasis role="bold">
+ <property><managed-bean-scope></property>
+ </emphasis> tag then the life-time of this bean instance is valid only for the current request. Any attempts to make a reference to the bean instance after the request end will throw in Illegal Argument Exception by the server.
+ To avoid these kinds of Exceptions component <emphasis role="bold">
+ <property><a4j:keepAlive></property>
+ </emphasis> is used to maintain the state of the whole bean object among subsequent request.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><a4j:keepAlive beanName = "#{myClass.testBean}"/></programlisting>
+
+ <para> The <emphasis>
+ <property>"beanName"</property>
+ </emphasis> attribute defines the request scope bean name you'd like to re-use. Note that this attribute must point to a legal JSF EL expression which resolves to a managed mean instance.
+ For example for the above code the class definition may look like this one:
+ </para>
+ <programlisting role="JAVA">class MyClass{
+ ...
+ private TestBean testBean;
+ // Getters and Setters for testBean.
+ ...
+}
+</programlisting>
+
+ <para>
+ The <emphasis>
+ <property>"ajaxOnly"</property>
+ </emphasis> attribute declares whether the value of the bean should be available during a non-Ajax request.
+ If the value of this attribute is "true" a request scope bean keeps the same value during Ajax requests from the given page.
+ If a non-Ajax request is sent from this page the bean is re-created as a regular request scope bean.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/keepAlive.html">Table of
+ <a4j:keepAlive>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.components.KeepAlive</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.components.AjaxKeepAlive</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.components.AjaxKeepAlive</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/keepAlive.jsf?c=keepA...">KeepAlive page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
+ </para>
+
+ <para>
+ Search the <ulink url="http://www.jboss.org/index.html?module=bb&op=viewforum&f=261">RichFaces Users forum</ulink> for some additional information about usage of component.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadBundle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadBundle.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadBundle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,228 @@
+<section role="NotInToc" id="a4j_loadBundle">
+ <title>
+ <
+ a4j:loadBundle
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:loadBundle</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:loadBundle></property>
+ </emphasis> component is similar to JSF <emphasis role="bold">
+ <property><f:loadBundle></property>
+ </emphasis>:
+ it loads a resource bundle localized for the Locale of the current view and stores properties as a Map in the current request attributes of the current request.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ Internationalization and Localization are the processes of adaptation of web applications for different languages and cultures.
+ When you develop English and German versions of a site it can be said that you localize the site for England and Germany.
+ Language is not the only thing that undergoes the localization — dates, times, numbers, currencies, phone numbers, addresses, graphics, icons, colors, personal titles and even favourite sounds are also varies from country to country.
+ It means that an internationalized application may have lots of different types information, which should be changed depending on user location.
+ </para>
+ <para>
+ There are several approaches of organizing the localization.
+ The JSF <emphasis role="bold">
+ <property><h:loadBundle></property>
+ </emphasis> loads bundles into the request scope when page is being rendered and updates all the needed areas in a crowd.
+ Bundle information loaded in such way becomes unavailable when dealing with Ajax requests that work in their own request scopes.
+ The approach provided by RichFaces <emphasis role="bold">
+ <property><a4j:loadBundle></property>
+ </emphasis> component enriches one given by the JSF <emphasis role="bold">
+ <property><h:loadBundle></property>
+ </emphasis> with Ajax capability:
+ it allows to use reference to a particular bundle item during an Ajax update.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:loadBundle></property>
+ </emphasis> usage is pretty simple.
+ Imagine a small application that says "Hello!" in different languages, where switching between translations (localizations, in our case) occurs when corresponding links are being clicked, like you have used to see on lots of sites.
+ In our JSF with RichFaces application (those who feel not strong with that should better read the "<link linkend="GettingStarted">Getting started with RichFaces</link>" chapter) create resource bundles with "Hello!" message for three different languages: English, German and Italian.
+ Resource bundles are represented with <code>*.properties</code> extention files that keep items in <code>key(name) - value</code> pairs.
+ A key for an item should be the same for all locales.
+ </para>
+ <figure>
+ <title>
+ Resource bundles <code>*.properties</code> files with Keys and Values for multi-language application.
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/loadBundle_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Мessage resource bundles should be registered in the Faces configuration (<code>faces-config.xml</code>) file of your application as <code><message-bundle></code> inside the <code><application></code> element.
+ Name of a resource should be specified without language or country code and without <code>.properties</code> extension.
+ Supported locales should be specified inside the <code><supported-locale></code> element.
+ </para>
+ <para>
+ <emphasis role="bold">Registering resource bundles in the Faces configuration file:</emphasis>
+ </para>
+ <programlisting role="XML"><application>
+ <locale-config>
+ <default-locale>en</default-locale>
+ <supported-locale>en</supported-locale>
+ <supported-locale>de</supported-locale>
+ <supported-locale>it</supported-locale>
+ </locale-config>
+ <message-bundle>demo.message</message-bundle>
+</application></programlisting>
+
+ <para>
+ For the application we will use JSF <code>javax.faces.component.UIViewRoot.setLocale</code> method that will set a needed Locale
+ (each link will invoke corresponding method — there are, off course, another ways to do that).
+ </para>
+ <para>
+ <emphasis role="bold">
+ <code>ChangeLocale</code> Java class with three methods for setting the correponding Locale:</emphasis>
+ </para>
+ <programlisting role="JAVA">package demo;
+
+ import java.util.Locale;
+ import javax.faces.context.FacesContext;
+
+ public class ChangeLocale {
+ public String germanAction() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ context.getViewRoot().setLocale(Locale.GERMAN);
+ return null;
+ }
+
+ public String englishAction() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ context.getViewRoot().setLocale(Locale.ENGLISH);
+ return null;
+ }
+
+ public String italianAction() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ context.getViewRoot().setLocale(Locale.ITALIAN);
+ return null;
+ }
+}</programlisting>
+
+ <para>
+ Recently, the JSP page will look as following:
+ </para>
+
+ <programlisting role="XML"><h:form>
+ <a4j:loadBundle var="msg" basename="demo.message"/>
+ <h:outputText id="messageBundle" value="#{msg.greeting}"/>
+ <a4j:commandLink value="De" action="#{changeLocale.germanAction}" reRender="messageBundle" />
+ <a4j:commandLink value="Eng" action="#{changeLocale.englishAction}" reRender="messageBundle" />
+ <a4j:commandLink value="It" action="#{changeLocale.italianAction}" reRender="messageBundle" />
+</h:form> </programlisting>
+
+ <para>
+ As an output we will get a simple application with English "Hello!" by default.
+ Clicking on links "De", "Eng" and "It" will show the messages specified within the corresponding <code>*.properties</code> file.
+ To reference to a particular bundle item during an Ajax update it is necessary to point the component(s) that shold be re-rendered (in this example it is done with the help of <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis>
+ <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute).
+ </para>
+
+ <figure>
+ <title>
+ Using of the RichFaces <emphasis role="bold">
+ <property><a4j:loadBundle></property>
+ </emphasis> component for application localization.
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/loadBundle2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/loadBundle.html">Table of
+ <a4j:loadBundle>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Bundle</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.Bundle</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.AjaxLoadBundle</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/bundle.jsf?c=loadBundle">LoadBundle page</ulink> at RichFaces LiveDemo for additional information on the component.
+ </para>
+ <para>
+ More useful examples and articles:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/loadBund...">loadBundle tag reference</ulink> at java.sun portal;
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://java.sun.com/docs/books/tutorial/i18n/resbundle/propfile.html">Backing a ResourceBundle with Properties Files</ulink> at java.sun portal;
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.objectsource.com/j2eechapters/Ch19-I18N_and_L10N.htm">Internationalization and Localization of J2EE application</ulink> explains main principles of the internationalization of a web application;
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.laliluna.de/javaserver-faces-message-resource-bundle-tutorial....">one more useful tutorial</ulink> explains the internationalization of a web application using JSF message resource bundle;
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <ulink url="http://www.i-coding.de/www/en/jsf/application/locale.html">Some special problem with JSF internationalization</ulink> and solution from the i-coding.de portal.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadScript.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadScript.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadScript.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,92 @@
+<section role="NotInToc" id="a4j_loadScript">
+ <title>
+ <
+ a4j:loadScript
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>loadScript</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:loadScript></property>
+ </emphasis> component allows to load scripts from alternative sources like a jar files, etc.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The main attribute of the <emphasis role="bold">
+ <property><a4j:loadScript></property>
+ </emphasis> is <emphasis>
+ <property>"src"</property>
+ </emphasis>, wich defines the context relative path to the script.
+ The value of the attribute does not require a prefix of an application.
+ Leading slash in the path means the root of the web context.
+ It is also possible to use <code>resource:///</code> prefix to access the script file using RichFaces resource framework.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:loadScript src="resource:///org/mycompany/assets/script/focus.js" /></programlisting>
+ <para>
+ The <emphasis>
+ <property>"src"</property>
+ </emphasis> attribute passses value to the <code>getResourceURL()</code> method of the ViewHandler of the application,
+ The result is passed through the <code>encodeResourceURL()</code> method of the ExternalContext.
+ </para>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/loadScript.html">Table of
+ <a4j:loadScript>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.LoadScript</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.LoadScript</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlLoadScript</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.LoadScriptRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/script.jsf?c=loadScript">Script page at RichFaces LiveDemo</ulink> for examples of component usage abd their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadStyle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadStyle.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_loadStyle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,92 @@
+<section role="NotInToc" id="a4j_loadStyle">
+ <title>
+ <
+ a4j:loadStyle
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>loadStyle</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:loadStyle></property>
+ </emphasis> component allows to load a style sheet file from alternative sources like a jar file, etc.
+ It inserts stylesheet links to the head element.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The main attribute of the <emphasis role="bold">
+ <property><a4j:loadStylet></property>
+ </emphasis> is <emphasis>
+ <property>"src"</property>
+ </emphasis>, wich defines the context relative path to the script.
+ The value of the attribute does not require a prefix of an application.
+ Leading slash in the path means the root of the web context.
+ It is also possible to use <code>resource:///</code> prefix to access the script file using RichFaces resource framework.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:loadStyle src="resource:///org/mycompany/assets/script/focus.js" /></programlisting>
+ <para>
+ The <emphasis>
+ <property>"src"</property>
+ </emphasis> attribute passses value to the <code>getResourceURL()</code> method of the ViewHandler of the application,
+ The result is passed through the <code>encodeResourceURL()</code> method of the ExternalContext.
+ </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/loadStyle.html">Table of
+ <a4j:loadStyle>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.LoadStyle</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.LoadStyle</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlLoadStyle</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.LoadStyleRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/style.jsf?c=loadStyle">Script page at RichFaces LiveDemo</ulink> for examples of component usage abd their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_log.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_log.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_log.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,111 @@
+<section role="NotInToc" id="a4j_log">
+ <title>
+ <
+ a4j:log
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:log</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:log ></property>
+ </emphasis> component generates JavaScript that opens a debug window with useful debug information.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:log ></property>
+ </emphasis> component generates JavaScript that opens a log window with useful debug information,
+ which contains data on requests and responses, DOM tree changes et al.
+ The log could be generated not only in a new window, but also on the current page in a separate <emphasis role="bold">
+ <property><div></property>
+ </emphasis> element.
+ This feature is controlled with the component <emphasis>
+ <property>"popup"</property>
+ </emphasis> attribute.
+ The window is opened on pressing of "CTRL+SHIFT+L", which is default registered key.
+ The hot key could be changed with the <emphasis>
+ <property>"hotkey"</property>
+ </emphasis> attribute, where it's necessary to define one letter that together with "CTRL+SHIFT" opens a window.
+ </para>
+
+
+ <para>
+ The <emphasis>
+ <property>"level"</property>
+ </emphasis> attribute has several possible values "FATAL", "ERROR", "WARN", "INFO", "ALL" and is used when it is necessary to change a logging level.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:log level="ALL" popup="false" width="400" height="200"/></programlisting>
+
+ <para>
+ The component defined this way is decoded on a page as <emphasis role="bold">
+ <property><div></property>
+ </emphasis> inside a page, where all the information beginning with informational message is generated.</para>
+ <note>
+ <title>Note:</title>
+ <para>
+ <emphasis role="bold">
+ <property><a4j:log></property>
+ </emphasis> is getting renewed automatically after execution of Ajax requests. Do not renew <emphasis role="bold">
+ <property><a4j:log></property>
+ </emphasis> by using reRender!</para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/log.html">Table of
+ <a4j:log>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Log</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.Log</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.AjaxLog</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.LogRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/log.jsf?c=log">Log page</ulink> at RichFaces LiveDemo for example of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_mediaOutput.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_mediaOutput.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_mediaOutput.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,215 @@
+<section role="NotInToc" id="a4j_mediaOutput">
+ <title>
+ <
+ a4j:mediaOutput
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:mediaOutput</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:mediaOutput></property>
+ </emphasis> component is a facility for generating images, video, sounds and other binary resources defined by you on-the-fly.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:mediaOutput></property>
+ </emphasis> component is used for generating images, videos or sounds on-the-fly.
+ Let's consider an image creation and generate a JPEG image with verification digits for captcha (the image will include just digits without any graphical noise and distortion).
+ </para>
+ <para>
+ Write the following line on the page:
+ </para>
+ <programlisting role="XML"><a4j:mediaOutput element="img" cacheable="false" session="false" createContent="#{mediaBean.paint}" value="#{mediaData}" mimeType="image/jpeg"/></programlisting>
+
+ <para>
+ As You see from the example above, first it is necessary to specify the kind of media data You want to generate.
+ This can be done with the help of <emphasis>
+ <property>"element"</property>
+ </emphasis> attribute, which possible values are <code>img</code>, <code>object</code>, <code>applet</code>, <code>script</code>, <code>link</code> or <code>a</code>.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"cacheable"</property>
+ </emphasis> defines whether the response will be cached or not. In our case we don't need our image to be cached, cause we need it to be changed every time we refresh the page.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"mimeType"</property>
+ </emphasis> attribute defines the type of output content. It is used to define the corresponded type in the header of an HTTP response.
+ </para>
+
+ <para>The <emphasis role="bold">
+ <property><a4j:mediaOutput></property>
+ </emphasis> attribute has two main attributes:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"createContent"</property>
+ </emphasis> specifies a method that will be used for content creating.
+ The method accepts two parameters.
+ The first one — with an <code>java.io.OutputStream</code> type — is a reference to the stream that should be used for output.
+ An output stream accepts output bytes and sends them to a recipient.
+ The second parameter is a reference to the component's <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute and has <code>java.lang.Object</code> type.
+ This parameter contains deserialized object with data specified in the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute specifies a bean class that keeps data for transmitting it into a stream in the method specified with <emphasis>
+ <property>"createContent"</property>
+ </emphasis> .
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ Now let's create the <code>MediaBean</code> class and specify there a primitive random-number generator and <code>paint</code> method that will convert the generated numbers into an output stream and give a JPEG image as a result.
+ The code for <code>MediaBean</code> class is going to look as following:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">package demo;
+
+import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Random;
+import javax.imageio.ImageIO;
+
+public class MediaBean {
+ public void paint(OutputStream out, Object data) throws IOException{
+ Integer high = 9999;
+ Integer low = 1000;
+ Random generator = new Random();
+ Integer digits = generator.nextInt(high - low + 1) + low;
+ if (data instanceof MediaData) {
+ MediaData paintData = (MediaData) data;
+ BufferedImage img = new BufferedImage(paintData.getWidth(),paintData.getHeight(),BufferedImage.TYPE_INT_RGB);
+ Graphics2D graphics2D = img.createGraphics();
+ graphics2D.setBackground(paintData.getBackground());
+ graphics2D.setColor(paintData.getDrawColor());
+ graphics2D.clearRect(0,0,paintData.getWidth(),paintData.getHeight());
+ graphics2D.setFont(paintData.getFont());
+ graphics2D.drawString(digits.toString(), 20, 35);
+ ImageIO.write(img,"png",out);
+ }
+ }
+}</programlisting>
+
+ <para>
+ Now it is necessary to create a class that will keep transmissional data that will be used as input data for a content creation method.
+ The code for <code>MediaData</code> class is going to be as following:
+</para>
+ <note>
+ <title>Note:</title>
+ <para>A bean class transmitted into value should implement <code>Serializable</code> interface in order to be encoded to the URL of the resource.
+ </para>
+ </note>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">package demo;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.io.Serializable;
+
+public class MediaData implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+ Integer Width=110;
+ Integer Height=50;
+ Color Background=new Color(190, 214, 248);
+ Color DrawColor=new Color(0,0,0);
+ Font font = new Font("Serif", Font.TRUETYPE_FONT, 30);
+
+ /* Corresponding getters and setters */
+
+}</programlisting>
+ <para>
+ As a result the <emphasis role="bold">
+ <property><a4j:mediaOutput></property>
+ </emphasis> component will generate the following image that will be updated on each page refresh:
+ </para>
+ <figure>
+ <title>
+ Using the <emphasis role="bold">
+ <property><a4j:mediaOutput></property>
+ </emphasis> for generating an image for captcha</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/mediaOutput_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Hence, when using the component it's possible to output your data of any type on a page with Ajax requests.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/mediaOutput.html">Table of
+ <a4j:mediaOutput>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.MediaOutput</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.Resource</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.MediaOutput</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.MediaOutputRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/mediaOutput.jsf?c=med...">MediaOutput page</ulink> at RichFaces LiveDemo for more examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_outputPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_outputPanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_outputPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,219 @@
+<section role="NotInToc" id="a4j_outputPanel">
+ <title>
+ <
+ a4j:outputPanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>CommandLink</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>The component is used for components grouping in the Ajax output area, which offers several additional output opportunities such as inserting of non-present in tree components, saving of transient elements after Ajax request and some others.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> component is used when one or more components should be always updated.
+ The component job is similar to that the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute does, but instead of specifying a comma separated list of components it wraps the components to be updated.
+ This could be useful in cases when some components aren't rendered during the primary non-ajax response.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><a4j:support reRender="mypanel"/>
+...
+<a4j:outputPanel id="mypanel">
+ <h:panelGrid rendered="#{not empty foo.bar}">
+ ...
+ </h:panelGrid>
+</a4j:outputPanel></programlisting>
+
+ <para>
+ By default the <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> is rendered as opening and closing HTML <emphasis role="bold">
+ <property><span></property>
+ </emphasis> tags and functions as container.
+ With the help of the <emphasis>
+ <property>"layout"</property>
+ </emphasis> attribute this output way could be set to any of three variants:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>"inline" (default)</para>
+ </listitem>
+ <listitem>
+ <para>"block"</para>
+ </listitem>
+ <listitem>
+ <para>"none"</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ If <code>layout="block"</code> is set, the component is rendered as a pair of opening and closing <emphasis role="bold">
+ <property><div></property>
+ </emphasis> tags.
+ In this case it is possible to apply available for <emphasis role="bold">
+ <property><div></property>
+ </emphasis> elements style attributes.
+ <code>layout ="none"</code> helps to avoid an unnecessary tag around a context that is rendered or not according to the <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute value.
+ In case an inner context isn't rendered the <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> is rendered in a <emphasis role="bold">
+ <property><span></property>
+ </emphasis> tags with ID equal to ID of a child component and <code>display:none</code> style.
+ If a child component is rendered, <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> doesn't present at all in a final code.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:support reRender="mypanel"/>
+ ...
+<a4j:outputPanel layout="none">
+ <h:panelGrid id="mypanel" rendered="#{not empty foo.bar}">
+ ...
+ </h:panelGrid>
+</a4j:outputPanel></programlisting>
+
+ <para>
+ As you see, the code is very similar to the one shown above, but <emphasis>
+ <property>"reRender "</property>
+ </emphasis> attribute refers directly to the updating panelGrid and not to the framing outputPanel,
+ and it's more semantically correct.
+ </para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> allows to update a part of a page basing on its own flag.
+ The flag is defined by the <emphasis>
+ <property>"ajaxRendered"</property>
+ </emphasis> attribute.
+ The flag is commonly used when a part of a page must be updated or can be updated on any response.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:outputPanel ajaxRendered="true">
+ <h:messages/>
+</a4j:outputPanel></programlisting>
+
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:outPanel></property>
+ </emphasis> should be used for non-JSF component part framing, which is to be updated on Ajax response, as RichFaces specifies the list of updating areas as a list of an existing JSF component.
+ </para>
+ <para> On default non-JSF context isn't saved in a component tree, but is rendered
+ anew every time. To accelerate the processing speed and Ajax response input speed,
+ RichFaces saves non-JSF context in a component tree on default. This option could be
+ canceled by <emphasis>
+ <property>"keepTransient"</property>
+ </emphasis> attribute that cancels transient flag forced setting for child components.
+ This flag setting keeps the current value set by child components. </para>
+ <note>
+ <title>Note:</title>
+ <para> In JSF 1.1 implementation and lower, where non-JSF context should be framed with
+ the <emphasis role="bold">
+ <property><f:verbatim></property>
+ </emphasis> component, <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> doesn't improve this JSF implementation option in any way, so
+ you still have to use this tag where it's necessary without RichFaces
+ usage. </para>
+ </note>
+ <para> RichFaces allows setting Ajax responses rendering directly basing on component tree
+ nodes without referring to the JSP (XHTML) page code. It could be defined by <emphasis>
+ <property>"selfRendered"</property>
+ </emphasis> attribute setting to "true" on <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> and could help considerably speed up a response output. However, if a
+ transient flag is kept as it is, this rapid processing could cause missing of transient
+ components that present on view and don't come into a component tree. Hence,
+ for any particular case you could choose a way for you application optimization: speed
+ up processing or redundant memory for keeping tree part earlier defined a transient.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/outputPanel.html">Table of
+ <a4j:outputPanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.OutputPanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Panel</entry>
+ </row>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.ajax.OutputPanel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry> org.ajax4jsf.component.html.HtmlAjaxOutputPanel </entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry> org.ajax4jsf.components.AjaxOutputPanelRenderer </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/outputPanel.jsf?c=out...">OutputPanel page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
+ </para>
+
+ <para>
+ Useful articles:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ search the <ulink url="http://www.jboss.org/index.html?module=bb&op=viewforum&f=26">RichFaces Users Forum</ulink> for some additional information on component usage;
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+
+
+ </section>
+</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>component</keyword>
- <keyword>page</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:page></property></emphasis> component encodes the full HTML-page structure and used for solving some incompatibility in JSP environment with MyFaces in early Ajax4Jsf versions.
- </para>
- </section>
-</root>
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_page.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,133 +1,140 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:page</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.components.Page</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.components.AjaxRegion</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlPage</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxPageRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the component with a Page Tag</title>
- <para>
- The <emphasis role="bold"><property><a4j:page></property></emphasis> should be the only child of <emphasis role="bold"><property><f:view></property></emphasis>:
- </para>
- <programlisting role="XML"><![CDATA[<f:view>
- <a4j:page>
- <f:facet name="head">
- <!--Head Content-->
- </f:facet>
- <!--Page Content-->
- </a4j:page>
-</f:view>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlPage;
-...
-HtmlPage myPage = new HtmlPage();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The component solves the problem with MyFaces for early Ajax4Jsf versions: in MyFaces implementation the <emphasis role="bold"><property><f:view></property></emphasis> JSP tag doesn't get control for encoding contents during the <property>RENDER_RESPONSE</property> phase,
- thus Ajax can't neiher get a control nor make a response.
- The <emphasis role="bold"><property><a4j:page></property></emphasis> solves this problem by wrapping the Ajax updatable areas.
- In the last versions of both frameworks the problem is successfully fixed and no <emphasis role="bold"><property><a4j:page></property></emphasis> usage is required.
- </para>
-
- <para>
- The component uses <property>facet</property> <emphasis><property>"head"</property></emphasis> for defining the contents corresponding to the HTML HEAD.
- There is no need to use <emphasis><property>"body"</property></emphasis> facet in order to define first <property>body</property> section.
- The attribute <emphasis><property>"format"</property></emphasis> defines page layout format for encoding DOCTYPE.
- The attribute <emphasis><property>"pageTitle"</property></emphasis> is rendered as <property>title</property> section.
- </para>
-
- <para>
- According to the described above, the component defined at page as following
- </para>
- <programlisting role="XML"><![CDATA[<a4j:page format="xhtml" pageTitle="myPage">
- <f:facet name="head">
- <!--Head Content here-->
- </f:facet>
- <!--Page Content Here-->
-</a4j:page>]]></programlisting>
-
- <para id="exampl">
- will be rendered on a page as
- </para>
- <programlisting role="XML"><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
- <head>
- <title>myPage</title>
- <!--Head Content here-->
- </head>
- <body>
- <!--Page Content Here-->
- </body>
-</html>]]></programlisting>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>head</entry>
- <entry>Defines a head content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/page.jsf?c=page">AjaxPage page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-
-</chapter>
+<section role="NotInToc" id="a4j_page">
+ <title>
+ <
+ a4j:page
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>component</keyword>
+ <keyword>page</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:page></property>
+ </emphasis> component encodes the full HTML-page structure and used for solving some incompatibility in JSP environment with MyFaces in early Ajax4Jsf versions.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The component solves the problem with MyFaces for early Ajax4Jsf versions: in MyFaces implementation the <emphasis role="bold">
+ <property><f:view></property>
+ </emphasis> JSP tag doesn't get control for encoding contents during the <property>RENDER_RESPONSE</property> phase,
+ thus Ajax can't neiher get a control nor make a response.
+ The <emphasis role="bold">
+ <property><a4j:page></property>
+ </emphasis> solves this problem by wrapping the Ajax updatable areas.
+ In the last versions of both frameworks the problem is successfully fixed and no <emphasis role="bold">
+ <property><a4j:page></property>
+ </emphasis> usage is required.
+ </para>
+
+ <para>
+ The component uses <property>facet</property>
+ <emphasis>
+ <property>"head"</property>
+ </emphasis> for defining the contents corresponding to the HTML HEAD.
+ There is no need to use <emphasis>
+ <property>"body"</property>
+ </emphasis> facet in order to define first <property>body</property> section.
+ The attribute <emphasis>
+ <property>"format"</property>
+ </emphasis> defines page layout format for encoding DOCTYPE.
+ The attribute <emphasis>
+ <property>"pageTitle"</property>
+ </emphasis> is rendered as <property>title</property> section.
+ </para>
+
+ <para>
+ According to the described above, the component defined at page as following
+ </para>
+ <programlisting role="XML"><a4j:page format="xhtml" pageTitle="myPage">
+ <f:facet name="head">
+ <!--Head Content here-->
+ </f:facet>
+ <!--Page Content Here-->
+</a4j:page></programlisting>
+
+ <para id="exampl">
+ will be rendered on a page as
+ </para>
+ <programlisting role="XML"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <title>myPage</title>
+ <!--Head Content here-->
+ </head>
+ <body>
+ <!--Page Content Here-->
+ </body>
+</html></programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/page.html">Table of
+ <a4j:page>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.components.Page</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.components.AjaxRegion</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlPage</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxPageRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>head</entry>
+ <entry>Defines a head content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/page.jsf?c=page">AjaxPage page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_poll.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_poll.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_poll.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,241 @@
+<section role="NotInToc" id="a4j_poll">
+ <title>
+ <
+ a4j:poll
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section id="poll_d">
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:poll</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> component allows periodical sending of Ajax requests to a server and is
+ used for a page updating according to a specified time interval.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para id="attributes">
+ The <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> componet is used for periodical polling of server data.
+ In order to use the component it's necessary to set an update interval.
+ The <emphasis>
+ <property>"interval"</property>
+ </emphasis> attribute defines an interval in milliseconds between the previous response and the next request.
+ The total period beetween two requests generated by the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> component is a sum of an<emphasis>
+ <property>"interval"</property>
+ </emphasis> attribute value and server response time.
+ Default value for <emphasis>
+ <property>"interval"</property>
+ </emphasis> attribute is set to "1000" milliseconds (1 second).
+ See an example of definition in the "<link linkend="creating">Creating the component with a Page Tag</link>" section.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attribute defines response waiting time in milliseconds.
+ If a response isn't received during this period a connection is aborted and the next request is sent.
+ Default value for <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attribute isn't set.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute defines should the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> send request or not.
+ It's necessary to render the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> to apply the current value of <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute.
+ You can use an EL-expression for <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute to point to a bean property.
+ An example of usage of mentioned above attributes is placed below:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<a4j:region>
+ <h:form>
+ <a4j:poll id="poll" interval="1000" enabled="#{userBean.pollEnabled}" reRender="poll,grid"/>
+ </h:form>
+</a4j:region>
+<h:form>
+ <h:panelGrid columns="2" width="80%" id="grid">
+ <h:panelGrid columns="1">
+ <h:outputText value="Polling Inactive" rendered="#{not userBean.pollEnabled}" />
+ <h:outputText value="Polling Active" rendered="#{userBean.pollEnabled}" />
+ <a4j:commandButton style="width:120px" id="control" value="#{userBean.pollEnabled?'Stop':'Start'} Polling" reRender="poll, grid">
+ <a4j:actionparam name="polling" value="#{!userBean.pollEnabled}" assignTo="#{userBean.pollEnabled}"/>
+ </a4j:commandButton>
+ </h:panelGrid>
+ <h:outputText id="serverDate" style="font-size:16px" value="Server Date: #{userBean.date}"/>
+ </h:panelGrid>
+</h:form>
+...</programlisting>
+
+ <para>
+ The example shows how date and time are updated on a page in compliance with data taken from a server.
+ The <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> componet sends requests to the server every second.
+ <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute of the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> contains poll's own <code>Id</code>.
+ Hence, it is self rendered for applying the current value of <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute.
+ </para>
+ <note>
+ <title>Notes:</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The form around the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> component is required.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To make the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> component send requests periodically when it <code>limitToList</code> is set to "true",
+ pass the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> ID to it <code>reRender</code> attribute.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </note>
+
+ <!--para>The component decodes all necessary JavaScript for time count and on the expiry of some
+ interval for calling of a RichFaces utility method for Ajax request sending (A4J.AJAX.Submit
+ (Some request parameters)). </para>
+ <para> The timer could be stopped or started in any time. The current state is controlled on the
+ component with the <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute: </para>
+ <programlisting role="XML"><![CDATA[<a4j:poll interval="1000" enabled="#{bean.boolProperty}"/>
+]]></programlisting>
+ <para>As any RichFaces Action component, <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> has all described in the <emphasis role="bold">
+ <property>
+ <ulink url="index.html#support"><a4j:support></ulink>
+ </property>
+ </emphasis> chapter attributes to provide the necessary behavior of request sending (delay,
+ limitation of a submit and render area, requests frequency, and etc.). For detailed
+ information on these attributes see again the <emphasis role="bold">
+ <property>
+ <ulink url="index.html#support"><a4j:support></ulink>
+ </property>
+ </emphasis> component description. </para-->
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/poll.html">Table of
+ <a4j:poll>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Poll</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.components.AjaxPoll</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.AjaxPoll</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxPollRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/poll.jsf?c=poll">Poll page</ulink> at RichFaces LiveDemo for examples of the component usage and their sources.
+ </para>
+
+ <para>
+ Useful examples and articles:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ "<ulink url="http://www.jboss.org/community/wiki/CreateABannerUsingEffectsAndPoll">Create a Banner Using Effects and Poll</ulink>" article at RichFaces Wiki
+ gives an example of how to create an image banner using <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> and <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis>components;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "<ulink url="http://www.jboss.org/community/wiki/CreateAHTMLBannerUsingEffectsAndPoll">Create an HTML Banner Using Effects and Poll</ulink>" article at RichFaces Wiki
+ brings the code of the way of creating an HTML banner banner using <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> and <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis>components;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "<ulink url="http://www.jboss.org/index.html?module=bb&op=viewtopic&t=125621">RichFaces and Slideshow</ulink>" thread in the RichFaces users forum contains an information and code on making a Slide Show with the help of the <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> component;
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Manage the <ulink url="http://jboss.com/index.html?module=bb&op=viewtopic&t=103909">RichFaces Users Forum</ulink> for fresh issues about the component usage.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_portlet.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_portlet.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_portlet.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,103 @@
+<section role="NotInToc" id="a4j_portlet">
+ <title>
+ <
+ a4j:portlet
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:portlet</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:portlet></property>
+ </emphasis> component is DEPRECATED as far as JSR-301 was defined a same functionality for a UIViewRoot component. Thus, it is implicitly defined by mandatory
+ <emphasis role="bold">
+ <property><f:view></property>
+ </emphasis> component.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The main component purpose is realization of possibility to create several instances the same portlet on one page.
+ But clientId of elements should be different for each window. In that case namespace is used for each portlet.
+ The <emphasis role="bold">
+ <property><a4j:portlet></property>
+ </emphasis>
+ <code>implemets NaimingContainer</code> interface and adds namespace to all componets on a page.
+ All portlet content should be wrapped by <emphasis role="bold">
+ <property><a4j:portlet></property>
+ </emphasis> for resolving problems mentioned before.
+ </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/portlet.html">Table of
+ <a4j:portlet>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Portlet</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.component.Portlet</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlPortlet</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/portlet.jsf?c=portlet">Portlet page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+
+ <para>
+ Useful publications:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107325">Ajax4Jsf Users Forum</ulink> — check the forum for additional information about component usage;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://anonsvn.jboss.org/repos/ajax4jsf/trunk/samples/portal-echo/">portal-echo application</ulink> — Portlet Sample, could be checked out from JBoss SVN;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107325">First snapshot with Portal environment support</ulink> contains usage instructions for the Portlet Sample demo.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_push.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_push.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_push.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,175 @@
+<section role="NotInToc" id="a4j_push">
+ <title>
+ <
+ a4j:push
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:push</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis>periodically perform Ajax request to server, to simulate 'push' data.</para>
+ <para>The main difference between <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> and <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> components is that <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis>
+ makes request to minimal code only (not to JSF tree) in order to check the presence of messages in the queue.
+ If the message exists the complete request is performed. The component doesn't poll registered beans
+ but registers <code>EventListener</code> which receives messages about events.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> implements reverse Ajax technique. </para>
+
+ <para>The bean, for example, could be subscribed to Java Messaging Service
+ (<ulink url="http://java.sun.com/products/jms/">JMS</ulink>)
+ topic or it could be implemented as Message Driven Bean (MDB) in order
+ to send a message to the <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> component about an event presence. In the presence of the
+ event some action occurs.</para>
+
+ <para>Thus, a work paradigm with the <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> component corresponds to an anisochronous model, but not
+ to pools as for <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis>
+ <link linkend="poll">component</link>. See the simplest example below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">...
+class MyPushEventListener implements PushEventListener {
+ public void onEvent(EventObject evt) {
+ System.out.println(evt.getSource());
+ //Some action
+ }
+}
+...</programlisting>
+
+ <para>Code for <code>EventListener</code> registration in the bean is placed
+ below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">...
+public void addListener(EventListener listener) {
+ synchronized (listener) {
+ if (this.listener != listener) {
+ this.listener = (PushEventListener) listener;
+ }
+ }
+}
+...</programlisting>
+
+ <para>A page code for this example is placed below.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<a4j:status startText="in progress" stopText="done"/>
+<a4j:form>
+ <a4j:region>
+ <a4j:push reRender="msg" eventProducer="#{pushBean.addListener}" interval="2000"/>
+ </a4j:region>
+ <a4j:outputPanel id="msg">
+ <h:outputText value="#{pushBean.date}">
+ <f:convertDateTime type="time"/>
+ </h:outputText>
+ </a4j:outputPanel>
+ <a4j:commandButton value="Push!!" action="#{pushBean.push}" ajaxSingle="true"/>
+</a4j:form>
+...</programlisting>
+
+ <para>The example shows how date is updated on a page in compliance with data
+ taken from a server. In the example <emphasis>
+ <property>"interval"</property>
+ </emphasis> attribute has value "2000". This
+ attribute defines an interval in milliseconds between the previous
+ response and the next request. Default value is set to
+ "1000" milliseconds (1 second). It's
+ possible to set value equal to "0". In this case
+ connection is permanent. </para>
+ <para>The <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attribute defines response waiting time in milliseconds.
+ If a response isn't received during this period a connection
+ is aborted and the next request is sent. Default value for <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attribute isn't set. Usage of <emphasis>
+ <property>"interval"</property>
+ </emphasis> and <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attributes gives an opportunity to set short polls of
+ queue state or long connections.</para>
+
+ <note>
+ <title>Note:</title>
+ <para> The form around the <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> component is required.</para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/push.html">Table of
+ <a4j:push>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Push</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.components.AjaxPush</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.AjaxPush</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxPushRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/push.jsf?c=push">On RichFaces LiveDemo page </ulink> you can found some additional information for
+ <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis> component usage. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_queue.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_queue.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_queue.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,247 @@
+<section role="NotInToc" id="a4j_queue">
+ <title>
+ <
+ a4j:queue
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:queue></property>
+ </emphasis> component enqueues set of Ajax requests sent from client.
+ The RichFaces components with built-in Ajax can reference the queue to optimize Ajax requests.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The RichFaces Queue has four different types: global default, view scoped default, view scoped named and form-based default queue (general Queue principles are good documented in the "<link linkend="QueuePrinciples">Queue Principles</link>" section).
+ The current section will take closer to the form based queue. The usage of other types is similar.
+ </para>
+
+ <para>
+ In order to disable or enable the <emphasis role="bold">
+ <property><a4j:queue></property>
+ </emphasis> component on the page you can use the <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"requestDelay"</property>
+ </emphasis> attribute defines delay time for all the requests fired by the action components.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"size"</property>
+ </emphasis> attribute specifies the number of requests that can be stored in the queue at a time.
+ The attribute helps to prevent server overloading.
+ It is also possible to determine queue's behaviour when it's size is exceeded.
+ Use the <emphasis>
+ <property>"sizeExceededBehavior"</property>
+ </emphasis> for this purpose.
+ There are four possible strategies of exceeded queue's behavior:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>"dropNext" drops next request that should be fired</para>
+ </listitem>
+ <listitem>
+ <para>"dropNew" drops the incoming request</para>
+ </listitem>
+ <listitem>
+ <para>"fireNext" immediately fires the next request in line to be fired</para>
+ </listitem>
+ <listitem>
+ <para>"fireNew" immediately fires the incoming request.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis role="bold"> Example: </emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ <a4j:queue size="2" requestDelay="500" sizeExceededBehavior="dropNext" onsizeexceeded="alert('The size of the queue is exceeded')" />
+ <h:inputText value="#{bean.a}">
+ <a4j:support event="onkeyup" />
+ </h:inputText>
+ <h:inputText value="#{bean.b}">
+ <a4j:support event="onblur" />
+ </h:inputText>
+ <h:selectBooleanCheckbox value="#{bean.check}" id="checkboxID">
+ <a4j:support id="checkboxSupport" event="onchange" />
+ </h:selectBooleanCheckbox>
+</h:form></programlisting>
+ <para>
+ In this example if the queue has more than 2 requests waiting to be processed the next event will be dropped and a message (the <emphasis>
+ <property>"onsizeexceeded"</property>
+ </emphasis> attribute fires a JavaScript function) saying that the queues is exceeded will be displayed.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"ignoreDupResponses"</property>
+ </emphasis> attribute that takes a boolean value can also help optimize your Ajax requests.
+ If set to true, response processing for request will not occur if a similar request is already waiting in the queue. New request will be fired immediately when the response from the previous one returns.
+
+ </para>
+
+ <para>
+ <emphasis role="bold"> Example: </emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ <a4j:queue requestDelay="500" ignoreDupResponses="true" />
+ <h:inputText value="#{bean.a}">
+ <a4j:support event="onkeyup" />
+ </h:inputText>
+</h:form></programlisting>
+
+ <para>In this example, the requests are glued together and only the last one is submitted.</para>
+
+ <para>
+ Another key attribute that easies server load is <emphasis>
+ <property>"timeout"</property>
+ </emphasis>.
+ The attribute specifies the amount of time an item can be in the queue before the sent event is be aborted and dropped from the queue.
+ </para>
+
+ <para>
+ If the request is sent and response is not returned within the time frame defined in this attribute - the request is aborted, and the next one is sent.
+ </para>
+ <para>
+ <emphasis role="bold"> Example: </emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ <a4j:queue timeout="1000" />
+ <h:inputText value="#{bean.a}">
+ <a4j:support event="onkeyup" />
+ </h:inputText>
+</h:form></programlisting>
+
+ <para>
+ In this case if the sever doesn't respond within a second the request will be aborted.
+ </para>
+
+ <para>
+ As you can see the implementation of the queue provides some custom event handlers that you may use to call JavaScript functions.</para>
+ <para>
+ The <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis>is fired after request completed.
+ In this event handler request object is be passed as a parameter.
+ Thus queue is be accessible using <code>request.queue</code>.
+ And the element which was a source of the request is available using <code>this</code>.
+ </para>
+
+ <para>
+ <emphasis role="bold"> Example: </emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ <a4j:queue oncomplete="alert(request.queue.getSize())" requestDelay="1000" />
+ <h:inputText value="#{bean.a}">
+ <a4j:support event="onkeyup" />
+ </h:inputText>
+ <h:selectBooleanCheckbox value="#{bean.check}">
+ <a4j:support event="onchange"/>
+ </h:selectBooleanCheckbox>
+</h:form></programlisting>
+ <para>In this example you can see how the number of requests waiting in the queue change. You will get a message with the number of the requests in the queue.</para>
+
+ <para>The <emphasis>
+ <property>"onbeforedomupdate"</property>
+ </emphasis> event handler called before
+ updating DOM on a client side.</para>
+
+ <para> The <emphasis>
+ <property>"onrequestqueue"</property>
+ </emphasis> event handler called after the new request has been added to queue.
+ And the <emphasis>
+ <property>"onrequestdequeue"</property>
+ </emphasis> event handler called after the request has been removed from queue. </para>
+ <para> The <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> event handler called
+ after request is completed. This attribute allows to invoke JavaScript code before an
+ Ajax request is sent. </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/queue.html">Table of
+ <a4j:queue>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.Queue</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlQueue</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.QueueRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.ajax4jsf.taglib.html.jsp.QueueTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>getSize()</entry>
+ <entry>Returns the current size to the queue</entry>
+
+ </row>
+ <row>
+ <entry>getMaximumSize()</entry>
+ <entry>Returns the maximum size to the queue, specified in the "size" attribute</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/queue.jsf?c=queue">Queue Page</ulink> at the RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+
+ <para>
+ Useful articles:
+ </para>
+ <para>"<link linkend="QueuePrinciples">Queue Principles</link>" section of the RichFaces developer guide describes general Queue principles.</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_region.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_region.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_region.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,237 @@
+<section role="NotInToc" id="a4j_region">
+ <title>
+ <
+ a4j:region
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> component specifies the part of the component tree to be processed on server.
+ If no <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> is defined the whole View functions as a region.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> component specifies the part of the component tree to be processed on server.
+ The processing includes data handling during decoding, conversion, validation and model update.
+ Note that the whole Form is still submitted but only part taken into region will be processed.
+
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ ...
+ <a4j:region>
+ <a4j:commandLink/>
+ </a4j:region>
+ ...
+<h:form></programlisting>
+
+ <para>The whole Form on the schematic listing above will be submitted by request invoked with the <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis>.
+ The only part that is going to be processed on the server is enclosed with <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> and <emphasis role="bold">
+ <property></a4j:region></property>
+ </emphasis> tags.
+ If no <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> is defined the whole View functions as a region.
+ </para>
+
+ <!-- <para>The region is a component used for manipulation with components sent to the server.
+ It sets particular processing parameters for an area on the server, i.e. the region deals with data input on the server and has no direct impact on output.
+ To read more on the components responsible for out, see <ulink url="http://java.sun.com/javaee/javaserverfaces/reference/index.html">Sun official documentation</ulink>.
+ </para>
+
+ <para>The region marks an area page that is decoded on the server. This component helps to reduce data quantity processed by the server, but the region doesn't influence on the standard submission rules. It means that:<itemizedlist>
+ <listitem><para>
+ The area that is to be submitted onto the server should be embedded in <emphasis role="bold">
+ <property><h:form></property>/<property><a4j:form></property>
+</emphasis> component.
+ </para></listitem>
+ <listitem><para>
+ The whole form is submitted on Ajax response and not a region that request is performed from.
+ </para></listitem>
+ </itemizedlist></para>
+ -->
+
+ <para>The regions could be nested. Server picks out and decodes only the region, which contains the component that initiates the request.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ ...
+ <a4j:region>
+ <a4j:commandLink value="Link 1" id="link1"/>
+ <a4j:region>
+ <a4j:commandLink value="Link 2" id="link2"/>
+ </a4j:region >
+ </a4j:region>
+ ...
+<h:form></programlisting>
+ <para>
+ The external region is decoded for <code>link1</code> and the internal one is decoded for <code>link2</code>.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"renderRegionOnly"</property>
+ </emphasis> attribute is used when it is necessary to exclude all the components from the outside of the region from updating on the page during Renderer Response phase.
+ Such manipulation allows region to be passed straight into Encode and reduces performance time.
+ This optimization should be implemented carefully because it doesn't allow data from the outside of active region to be updated.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><h:form>
+ ...
+ <a4j:region renderRegionOnly="true">
+ <a4j:commandLink value="Link 1" id="link1"/>
+ </a4j:region>
+ ...
+ <a4j:region renderRegionOnly="false">
+ <a4j:commandLink value="Link 2" id="link2"/>
+ </a4j:region>
+ ...
+</h:form></programlisting>
+ <para>
+ On the example above the first region only will be updated if <code>link1</code> initiates a request.
+ When a request is initiated by <code>link2</code> both regions will be updated.
+ In this case search for components to include them into Renderer Response will be performed on the whole component tree.
+ </para>
+
+
+ <para>
+ <property>RichFaces</property> allows setting Ajax responses rendering basing on component tree nodes directly, without referring to the JSP (XHTML) code.
+ This speeds up a response output considerably and could be done by setting the <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis>
+ <emphasis>
+ <property>"selfRendered"</property>
+ </emphasis> attribute to "true".
+ However, this rapid processing could cause missing of transient components that present on view and don't come into a component tree as well as omitting of <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> usage described below.
+</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:region selfRendered ="true">
+ <a4j:commandLink value="Link" id="link"/>
+ <!--Some HTML content-->
+</a4j:region></programlisting>
+ <para>In this case the processing is quicker and going on without referring to the page code.
+ The HTML code is not saved in a component tree and could be lost.
+ Thus, such optimization should be performed carefully and additional <property>RichFaces</property> components usage (e.g. <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis>) is required.</para>
+
+
+
+ <para>
+ Starting from <property>RichFaces 3.2.0</property> the <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> can be used together with iterative components (e.g. <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> or <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis>, etc.).
+ It became possible to re-render a particular row in a table without updating the whole table and without any additional listeners.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><rich:column>
+ <a4j:region>
+ <a4j:commandLink reRender="out"/>
+ </a4j:region>
+</rich:column>
+<rich:column>
+ <h:outputText id="out">
+</rich:column></programlisting>
+
+ <para>
+ In most cases there is no need to use the <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> as <code>ViewRoot</code> is a default one.
+ </para>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/region.html">Table of
+ <a4j:region>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.AjaxRegion</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.AjaxRegion</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxRegion</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxRegionRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/region.jsf?c=region"><a4j:region> demo page</ulink> at
+RichFaces live demo for examples of component usage and their sources.
+ </para>
+ <para>Useful articles and examples:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/community/docs/DOC-11866"><a4j:region> and two <h:inputTexts></ulink> in RichFaces cookbook at JBoss portal;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "<ulink url="http://ishabalov.blogspot.com/2007/08/sad-story-about-uiinput.html">A sad story about UIInput</ulink>" at personal blog of I.Shabalov and <ulink url="http://livedemo.exadel.com/richfaces-local-value-demo/pages/local-value-d...">exhaustive example</ulink> of solving the problem with the help of <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_repeat.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_repeat.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_repeat.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,138 @@
+<section role="NotInToc" id="a4j_repeat">
+ <title>
+ <
+ a4j:repeat
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:repeat</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component implements a basic iteration component that allows to update a set of its children with Ajax.
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component is similar to Facelets <emphasis role="bold">
+ <property><ui:repeat></property>
+ </emphasis> tag,
+ which is used to iterate through a collection of objects binded with JSF page as EL expression.
+ The main difference of the <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> is a possibility to update particular components (it's children) instead of all using Ajax requests.
+ The feature that makes the component different is a special <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute that defines row that are updated after an Ajax request.
+ As a result it becomes easier to update several child components separately without updating the whole page.
+ </para>
+
+
+ <programlisting role="XML">...
+<table>
+ <tbody>
+ <a4j:repeat value="#{repeatBean.items}" var="item" ajaxKeys="#{updateBean.updatedRow}">
+ <tr>
+ <td><h:outputText value="#{item.code}" id="item1" /></td>
+ <td><h:outputText value="#{item.price}" id="item2" /></td>
+ </tr>
+ </a4j:repeat>
+ </tbody>
+</table>
+ ...</programlisting>
+
+ <para>
+ The example above the <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> points to an method that contains row keys to be updated.
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component is defined as fully updated,
+ but really updated there are only the row keys which defined in the <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute.
+ </para>
+ </note>
+
+
+ <para>
+ One more benefit of this component is absence of strictly defined markup as JSF HTML DataTable and TOMAHAWK DataTable has.
+ Hence the components could be used more flexibly anywhere where it's necessary to output the results of selection from some collection.
+ </para>
+
+ <para>The next example shows collection output as a plain HTML list:</para>
+ <programlisting role="XML"><ul>
+ <a4j:repeat ...>
+ <li>...<li/>
+ ...
+ <li>...<li/>
+ </a4j:repeat>
+</ul></programlisting>
+ <para>All other general attributes are defined according to the similar
+ attributes of iterative components (<emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis> or <emphasis role="bold">
+ <property><ui:repeat></property>
+ </emphasis>) and are used in the same way.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/repeat.html">Table of
+ <a4j:repeat>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Repeat</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Data</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxRepeat</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.RepeatRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/repeat.jsf?c=repeat">Repeat page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_status.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_status.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_status.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,178 @@
+<section role="NotInToc" id="a4j_status">
+ <title>
+ <
+ a4j:status
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:status</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> component generates elements for displaying of the current Ajax requests status.
+ There are two status modes: Ajax request is in process or finished.</para>
+ </section>
+ <section>
+
+
+ <title>Details of Usage</title>
+ <para>There are two ways for the components or containers definition, which Ajax requests status is tracked by a component.<itemizedlist>
+ <listitem>
+ <para>
+ Definition with the <emphasis>
+ <property>"for"</property>
+ </emphasis>
+attribute on the <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> component. Here <emphasis>
+ <property>"for"</property>
+ </emphasis>
+ attribute should point at an Ajax container (<emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis>) <property>id</property>, which requests are tracked by a component.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Definition with the <emphasis>
+ <property>"status"</property>
+ </emphasis>
+attribute obtained by any RichFaces library action component. The attribute should point at the <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> component <property>id</property>. Then this <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> component shows the status for the request fired from this action component.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>The component creates two <emphasis role="bold">
+ <property><span></property>
+ </emphasis> or <emphasis role="bold">
+ <property><div></property>
+ </emphasis>
+ elements depending on attribute <emphasis>
+ <property>"layout"</property>
+ </emphasis>
+ with content defined for each status, one of the elements (start) is initially hidden. At the beginning of an Ajax request, elements state is inversed, hence the second element is shown and the first is hidden. At the end of a response processing, elements display states return to its initial values.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a4j:status startText="Started" stopText="stopped" /></programlisting>
+ <para>The code shown in the example above is decoded on a page as:</para>
+ <programlisting role="XML"><span id="j_id20:status.start" style="display: none">
+ Started
+</span>
+<span id="j_id20:status.stop">
+ Stopped
+</span></programlisting>
+ <para>and after the generation of an Ajax response is changed to:</para>
+ <programlisting role="XML"><span id="j_id20:status.start">
+ Started
+</span>
+<span id="j_id20:status.stop" style="display: none">
+ Stopped
+</span></programlisting>
+ <para>There is a possibility to group a <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> elements content into <emphasis role="bold">
+ <property><div></property>
+ </emphasis> elements, instead of <emphasis role="bold">
+ <property><span></property>
+ </emphasis>. To use it, just redefine the <emphasis>
+ <property>"layout"</property>
+ </emphasis>
+ attribute from "inline" (default) to "block".</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/status.html">Table of
+ <a4j:status>
+ attributes</ulink>.
+ </para>
+ <table frame="all">
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Status</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Panel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxStatus</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxStatusRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>start</entry>
+ <entry>Redefines the content for display on starting request</entry>
+ </row>
+ <row>
+ <entry>stop</entry>
+ <entry>Redefines the content for display on request complete</entry>
+ </row>
+ </tbody>
+ </tgroup>
+
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/status.jsf?c=status">Status page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
+ </para>
+ <para>
+ Useful articles at JBoss portal:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://wiki.jboss.org/wiki/RichFacesPleaseWaitBox">RichFacesPleaseWaitBox</ulink> describes how to show a "Please Wait" box and block the input while the Ajax request is processed using combination of <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis>.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_support.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_support.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/a4j_support.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,283 @@
+<section role="NotInToc" id="a4j_support">
+ <title>
+ <
+ a4j:support
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>a4j:support</keyword>
+ <keyword>component</keyword>
+ </keywordset>
+ </sectioninfo>
+
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> component
+ is the most important core component in the RichFaces library.
+ It enriches any existing non-Ajax JSF or RichFaces component with Ajax capability.
+ All other RichFaces Ajax components are based on the same principles
+ <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> has.
+ <!--
+ The requests are invoked by definite user activity and used for updating
+ and re-rendering page contents partially after a response from server.
+ -->
+ </para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis>
+ component has two key attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ mandatory
+ <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute that defines the JavaScript event
+ the Ajax support will be attached to
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute that defines id(s)
+ of JSF component(s) that should be rerendered after an Ajax request
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ As mentioned above, the <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> component
+ adds Ajax capability to non-Ajax JSF components.
+ Let's create ajaxed <emphasis role="bold">
+ <property><h:selectOneMenu></property>
+ </emphasis> called
+ "Planets and Their Moons".
+ </para>
+ <para>
+ We begin with the common behavior description. When a page is rendered you see only one select box with the list of planets.
+ When you select a planet the <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis>
+ containing moons of the selected planet appears.
+ </para>
+ <para>
+ In other words we need <emphasis role="bold">
+ <property><h:selectOneMenu></property>
+ </emphasis>
+ with the nested <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> component that
+ is attached to the <property>onchange</property> event.
+ </para>
+ <para>
+ When an Ajax response comes back the <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis>
+ is re-rendered on the server side and updated on the client.
+ </para>
+ <programlisting role="XML">...
+<h:form id="planetsForm">
+ <h:outputLabel value="Select the planet:" for="planets" />
+ <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
+ <f:selectItems value="#{planetsMoons.planetsList}" />
+ <a4j:support event="onchange" reRender="moons" />
+ </h:selectOneMenu>
+ <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
+ <h:column>
+ <h:outputText value="#{item}"/>
+ </h:column>
+ </h:dataTable>
+</h:form>
+...</programlisting>
+ <para>
+ Finally we need a backing bean:
+ </para>
+ <programlisting role="JAVA">...
+public class PlanetsMoons {
+ private String currentPlanet="";
+ public List<SelectItem> planetsList = new ArrayList<SelectItem>();
+ public List<String> moonsList = new ArrayList<String>();
+ private static final String [] EARTH = {"The Moon"};
+ private static final String [] MARS = {"Deimos", "Phobos"};
+ private static final String [] JUPITER = {"Europa", "Gamymede", "Callisto"};
+
+ public PlanetsMoons() {
+ SelectItem item = new SelectItem("earth", "Earth");
+ planetsList.add(item);
+ item = new SelectItem("mars", "Mars");
+ planetsList.add(item);
+ item = new SelectItem("jupiter", "Jupiter");
+ planetsList.add(item);
+ }
+
+ public void planetChanged(ValueChangeEvent event){
+ moonsList.clear();
+ String[] currentItems;
+ if (((String)event.getNewValue()).equals("earth")) {
+ currentItems = EARTH;
+ }else if(((String)event.getNewValue()).equals("mars")){
+ currentItems = MARS;
+ }else{
+ currentItems = JUPITER;
+ }
+ for (int i = 0; i < currentItems.length; i++) {
+ moonsList.add(currentItems[i]);
+ }
+ }
+
+ //Getters and Setters
+ ...
+}
+</programlisting>
+ <para>
+ There are two properties <code>planetsList</code> and <code>moonsList</code>.
+ The <code>planetsList</code> is filled with planets names in the constructor.
+ After you select the planet,
+ the <code>planetChanged()</code> listener is called and
+ the <code>moonsList</code> is populated with proper values of moons.
+ </para>
+ <para>
+ With the help of
+ <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis>
+ and
+ <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis>
+ attributes the <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> component
+ allows to use JavaScript calls before and after an Ajax request
+ respectively.
+ Actually the JavaScript specified in the <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute
+ will be executed in any case whether the Ajax request is completed successfully or not.
+ </para>
+ <para>
+ You can easily add confirmation dialog for the planet select box and colorize
+ <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis> after the Ajax response:
+ </para>
+ <programlisting role="XML">...
+<h:form id="planetsForm">
+ <h:outputLabel value="Select the planet:" for="planets" />
+ <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
+ <f:selectItems value="#{planetsMoons.planetsList}" />
+ <a4j:support event="onchange" reRender="moons"
+ onsubmit="if(!confirm('Are you sure to change the planet?')) {form.reset(); return false;}"
+ oncomplete="document.getElementById('planetsForm:moonsPanel').style.backgroundColor='#c8dcf9';" />
+ </h:selectOneMenu>
+ <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
+ <h:column>
+ <h:outputText value="#{item}"/>
+ </h:column>
+ </h:dataTable>
+</h:form>
+...</programlisting>
+ <para>
+ There is the result:
+ </para>
+ <figure>
+ <title>
+ "Planets and Their Moons"
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/supportSample.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Information about the
+ <emphasis>
+ <property>"process"</property>
+ </emphasis>
+ attribute usage you can find in the "
+ <link linkend="process">Decide what to process</link>
+ " guide section.
+ </para>
+
+ <note>
+ <title>Tip:</title>
+ <para>
+ The
+ <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis>
+ component created on a page as following
+ </para>
+ <programlisting role="XML"><h:inputText value="#{bean.text}">
+ <a4j:support event="onkeyup" reRender="output" action="#{bean.action}"/>
+</h:inputText></programlisting>
+ <para>is decoded in HTML as</para>
+ <programlisting role="XML"><input onkeyup="A4J.AJAX.Submit( Some request parameters )"/></programlisting>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;a4j/support.html">Table of
+ <a4j:support>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.ajax4jsf.Support</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.ajax4jsf.AjaxSupport</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.ajax4jsf.component.html.HtmlAjaxSupport</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.ajax4jsf.components.AjaxSupportRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/support.jsf?c=support"><a4j:support> demo page</ulink>
+ at RichFaces live demo for examples of component usage and their
+ sources.
+ </para>
+
+ </section>
+</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section role="NotInToc">
- <sectioninfo>
- <keywordset>
- <keyword>a4j:actionparam</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:actionparam></property></emphasis> component combines the functionality of both JSF <emphasis role="bold"><property><f:param></property></emphasis> and <emphasis role="bold"><property><f:actionListener></property></emphasis>
- and allows to assign the value to the property of the manager bean directly using the <emphasis><property>assignTo</property></emphasis> attribute.
- </para>
-
-</section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/actionparam.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset><keyword>a4j:actionparam</keyword>
- </keywordset>
- </chapterinfo>
- <para>
- <table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.ActionParameter</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlActionParameter</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </para>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Simple component definition example:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:actionparam noEscape="true" name="param1" value="getMyValue()" assignTo="#{bean.prop1}" />]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlActionParameter;
-...
-HtmlActionParameter myActionParameter = new HtmlActionParameter();
-...
-]]></programlisting>
- </section>
-
-
-
-
- <section>
- <title>Details of usage</title>
- <para>
- The component <emphasis role="bold"><property><a4j:actionparam></property></emphasis> is a combination of the functionality of two JSF tags:
- <emphasis role="bold"><property><f:param></property></emphasis> and <emphasis role="bold"><property><f:actionListener></property></emphasis>.
- </para>
- <para>At the render phase, it's decoded by parent component (<emphasis role="bold"><property><h:commandLink></property></emphasis> or like) as usual.
- At the process request phase, if the parent component performs an action event, update the <emphasis><property>"value"</property></emphasis> specified in the
- <emphasis><property>"assignTo"</property></emphasis>attribute as its <emphasis><property>"value"</property></emphasis>.
- If a <emphasis><property>"converter"</property></emphasis> attribute is specified, use it to encode and decode the <emphasis><property>"value"</property></emphasis> to a string stored in the html parameter.
- To make the <emphasis><property>"assignTo"</property></emphasis> attribute usable add the <code>actionParam</code> instance to the parent component as an action listener.
- </para>
- <para>
- <emphasis role="bold"><property><a4j:actionparam></property></emphasis>has a <emphasis><property>"noEscape"</property></emphasis> attribute.
- If it is set to <property>"true"</property>, the <emphasis><property>"value"</property></emphasis> is evaluated as a JavaScript code. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<script>
- ...
- var foo = "bar";
- ...
-</script>
-...
-<a4j:actionparam noEscape="true" name="param1" value="foo" assignTo="#{bean.prop1}" />
-...]]></programlisting>
- <para>
- The <emphasis role="bold"><property><a4j:param></property></emphasis> extends <emphasis role="bold"><property><f:param></property></emphasis>,
- so the <emphasis><property>"name"</property></emphasis> attribute is mandatory.
- Otherwise, the <emphasis><property>"value"</property></emphasis> misses due missing the request parameter name for it.
- </para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/actionparam.jsf?c=act...">ActionParamter page</ulink> at RichFaces LiveDemo for examples of component usage abd their sources.
- </para>
- <para>
- More information can be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063764">Ajax4jsf Users Forum</ulink>.
- </para>
- <para>
- More information about <emphasis role="bold"><property><f:param></property></emphasis> and <emphasis role="bold"><property><f:actionListener></property></emphasis>can be found <ulink url="http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/index.html">in Sun JSF TLD documentation</ulink>.
- </para>
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:ajaxListener</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>The component adds an action listener to a parent component to provide possibility of Ajax update.
- It works like the <emphasis role="bold"><property><f:actionListener></property></emphasis> or <emphasis role="bold"><property><f:valueChangeListener></property></emphasis> JSF components
- but for the whole Ajax container.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>The listener is invoked for Ajax requests only</para></listitem>
- <listitem><para>The listener is always guaranteed to be invoked</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:ajaxListener</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>listener-class</entry>
- <entry>org.ajax4jsf.event.AjaxListener</entry>
- </row>
- <row>
- <entry>event-class</entry>
- <entry>org.ajax4jsf.event.AjaxEvent</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.ajax4jsf.taglib.html.jsp.AjaxListenerTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of the <emphasis role="bold"><property>a4j:ajaxListener</property></emphasis> component on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<a4j:ajaxListener type="demo.Bean"/>
-...]]></programlisting>
- </section>
-
-<section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
-public class ImplBean implements import org.ajax4jsf.event.AjaxListener{
-...
-}
-]]></programlisting>
-
- <programlisting role="JAVA"><![CDATA[import demo.ImplBean;
-...
-ImplBean myListener = new ImplBean();
-...]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold"><property><a4j:ajaxListener></property></emphasis> component adds an action listener to a parent component, which needs to be provided with Ajax support.
- That listener is invoked on each Ajax request during the "Render Response" JSF phase.
- In comparison with JSF <emphasis role="bold"><property><f:actionListener></property></emphasis> and <emphasis role="bold"><property><f:valueChangeListener></property></emphasis>
- the invocation of the <emphasis role="bold"><property><a4j:ajaxListener></property></emphasis> is not skipped in case when validation of Update Model fails.
- The <emphasis role="bold"><property><a4j:ajaxListener></property></emphasis> is guarantied to be invoked for each Ajax response.
- </para>
-
- <note>
- <para>
- Ajax listener is not invoked for non-Ajax requests and when RichFaces works in the "Ajax Request generates Non-Ajax Response" mode.
- </para>
- </note>
-
-<para>
- As example of the <emphasis role="bold"><property><a4j:ajaxListener></property></emphasis> component usage one can cite an updating the list of re-rendered components.
-</para>
-
-<para>
- The <emphasis><property>"type"</property></emphasis> attribute defines the fully qualified Java class name for the listener.
- This Java class implements <code><ulink url="&apidoc_framework;/org/ajax4jsf/event/AjaxListener.html"><property>org.ajax4jsf.event.AjaxListener</property></ulink></code>interface, which is base interface for all listeners, capable for receiving Ajax events.
- The source of the event could be accessed using the <code><ulink url="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html"><property>java.util.EventObject.getSource()</property></ulink></code> call.
-</para>
-
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<a4j:commandLink id="cLink" value="Click it To Send Ajax Request">
- <a4j:ajaxListener type="demo.Bean"/>
-</a4j:commandLink>
-...]]></programlisting>
-
-<para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="JAVA"><![CDATA[package demo;
-
-import org.ajax4jsf.event.AjaxEvent;
-
-public class Bean implements org.ajax4jsf.event.AjaxListener{
- ...
- public void processAjax(AjaxEvent arg){
- //Custom Developer Code
- }
- ...
-}]]></programlisting>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxListener.jsf?c=aj...">AjaxListener</ulink> page at RichFaces Livedemo for examples of component usage and their sources.
- </para>
- <para>
- Check Sun JSF TLD documentation for more information on <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/valueCha..."><f:valueChangeListener> tag</ulink>.
- </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section id="ajaxValidator" role="new">
- <sectioninfo>
- <keywordset>
- <keyword>rich:ajaxValidator</keyword>
- </keywordset>
- <releaseinfo>3.2.2</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The<emphasis role="bold">
- <property><rich:ajaxValidator></property>
- </emphasis>is a component designed to provide Ajax validation inside for JSF inputs.</para>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Skips all JSF processing except validation</para></listitem>
- <listitem><para>Possibility to use both standard and custom validation</para></listitem>
- <listitem><para>Possibility to use Hibernate Validation</para></listitem>
- <listitem><para>Event based validation triggering</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:ajaxValidator</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.ajaxValidator</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlajaxValidator</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.ajaxValidator</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.ajaxValidatorRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.ajaxValidatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:outputText value="Name:" />
-<h:inputText value="#{userBean.name}" id="name" required="true">
- <f:validateLength minimum="3" maximum="12"/>
- <rich:ajaxValidator event="onblur"/>
-</h:inputText>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlCalendar;
-...
-HtmlAjaxValidator myAjaxValidator= new HtmlAjaxValidator();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
-
- <para>The <emphasis role="bold">
- <property><rich:ajaxValidator></property>
- </emphasis> component should be added as a child component to an input
- JSF tag which data should be validated and an event that triggers
- validation should be specified as well. The component is ajaxSingle by
- default so only the current field will be validated.</para>
-
-
- <para>The following example demonstrates how the <emphasis role="bold">
- <property><rich:ajaxValidator></property>
- </emphasis> adds Ajax functionality to standard JSF validators. The
- request is sent when the input field loses focus, the action is
- determined by the <emphasis>
- <property>"event"</property>
- </emphasis> attribute that is set to
- <code>"onblur"</code>. </para>
-
-
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <f:facet name="header">
- <h:outputText value="User Info:" />
- </f:facet>
- <h:panelGrid columns="3">
- <h:outputText value="Name:" />
- <h:inputText value="#{userBean.name}" id="name" required="true">
- <f:validateLength minimum="3" maximum="12"/>
- <rich:ajaxValidator event="onblur"/>
- </h:inputText>
- <rich:message for="name" />
-
- <h:outputText value="Age:" />
- <h:inputText value="#{userBean.age}" id="age" required="true">
- <f:convertNumber integerOnly="true"/>
- <f:validateLongRange minimum="18" maximum="99"/>
- <rich:ajaxValidator event="onblur"/>
- </h:inputText>
- <rich:message for="age"/>
- </h:panelGrid>
-</rich:panel>
-...]]></programlisting>
-
- <para>This is the result of the snippet. </para>
-
-
- <figure>
- <title>Simple example of <emphasis role="bold">
- <property><rich:ajaxValidator></property>
- </emphasis>with </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/ajaxValidator1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <para>In the example above it's show how to work with standard JSF validators.
- The <emphasis role="bold">
- <property><rich:ajaxValidator></property>
- </emphasis> component also works perfectly with custom validators
- enhancing their usage with Ajax. </para>
-
- <para> Custom validation can be performed in two ways: </para>
-
- <itemizedlist>
- <listitem>
- <para>Using JSF Validation API is available in
- javax.faces.validator package</para>
- </listitem>
- <listitem>
- <para>Using Hibernate Validator, specifying a constraint for
- the data to be validated. A reference on Hibernate
- Validator can be found <ulink
- url="http://www.hibernate.org/hib_docs/validator/reference/en/html_single/"
- >in Hibernated documentation</ulink>.
- </para>
- </listitem>
- </itemizedlist>
-
- <para> The following example shows how the data entered by user can be validated
- using Hibernate Validator. </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <f:facet name="header">
- <h:outputText value="User Info:" />
- </f:facet>
- <h:panelGrid columns="3">
- <h:outputText value="Name:" />
- <h:inputText value="#{validationBean.name}" id="name" required="true">
- <rich:ajaxValidator event="onblur" />
- </h:inputText>
- <rich:message for="name" />
-
- <h:outputText value="Email:" />
- <h:inputText value="#{validationBean.email}" id="email">
- <rich:ajaxValidator event="onblur" />
- </h:inputText>
- <rich:message for="email" />
-
- <h:outputText value="Age:" />
- <h:inputText value="#{validationBean.age}" id="age">
- <rich:ajaxValidator event="onblur" />
- </h:inputText>
- <rich:message for="age" />
- </h:panelGrid>
-</rich:panel>
-...]]></programlisting>
-
-
- <para>Here is the source code of the managed bean.</para>
-
-
- <programlisting role="JAVA"><![CDATA[package org.richfaces.demo.validation;
-
-import org.hibernate.validator.Email;
-import org.hibernate.validator.Length;
-import org.hibernate.validator.Max;
-import org.hibernate.validator.Min;
-import org.hibernate.validator.NotEmpty;
-import org.hibernate.validator.NotNull;
-import org.hibernate.validator.Pattern;
-
-public class ValidationBean {
-
- private String progressString="Fill the form please";
-
- @NotEmpty
- @Pattern(regex=".*[^\\s].*", message="This string contain only spaces")
- @Length(min=3,max=12)
- private String name;
- @Email
- @NotEmpty
- private String email;
-
- @NotNull
- @Min(18)
- @Max(100)
- private Integer age;
-
- public ValidationBean() {
- }
-
- /* Corresponding Getters and Setters */
-
-}]]></programlisting>
-
- <para>By default the Hibernate Validator generates an error message in 10
- language, though you can redefine the messages that are displayed to a
- user when validation fails. In the shows example it was done by adding
- <code>(message="wrong email
- format")</code> to the <code>@Email</code> annotation.</para>
-
- <para>This is how it looks. </para>
- <figure>
- <title>Validation using Hibernate validator </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/ajaxValidator2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxValidator.jsf?c=a...">AjaxValidator page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section id="beanValidator" role="new">
- <sectioninfo>
- <keywordset>
- <keyword>rich:beanValidator</keyword>
- <keyword>RichFaces</keyword>
- </keywordset>
- <releaseinfo>3.2.2</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The<emphasis role="bold"><property><rich:beanValidator></property></emphasis> component designed to provide validation using Hibernate model-based constraints.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Validation using Hibernate constraints</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/beanValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:beanValidator</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.beanValidator</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlbeanValidator</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.beanValidator</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.beanValidatorRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.beanValidatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>
- To create the simplest variant of the component on a page use the following syntax:
- </para>
-
- <programlisting role="XML"><![CDATA[<h:inputText value="#{validationBean.email}" id="email">
- <rich:beanValidator summary="Invalid email"/>
-</h:inputText>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlCalendar;
-...
-HtmlbeanValidator mybeanValidator= new HtmlbeanValidator();
-...
-]]></programlisting>
- </section>
-
-
- <section>
- <title>Details of Usage</title>
-
- <para>Starting from 3.2.2 GA version Rich Faces provides support for model-based constraints defined using Hibernate Validator.
- Thus it's possible to use Hibernate Validators the same as for Seam based applications.
- </para>
- <para>
- The <emphasis role="bold"><property><rich:beanValidator></property></emphasis> component is defined in the same way as any JSF validator.
- Look at the example below.
- </para>
- <programlisting role="XML"><![CDATA[<rich:panel>
- <f:facet name="header">
- <h:outputText value="#{validationBean.progressString}" id="progress"/>
- </f:facet>
- <h:panelGrid columns="3">
- <h:outputText value="Name:" />
- <h:inputText value="#{validationBean.name}" id="name">
- <rich:beanValidator summary="Invalid name"/>
- </h:inputText>
- <rich:message for="name" />
-
- <h:outputText value="Email:" />
- <h:inputText value="#{validationBean.email}" id="email">
- <rich:beanValidator summary="Invalid email"/>
- </h:inputText>
- <rich:message for="email" />
-
- <h:outputText value="Age:" />
- <h:inputText value="#{validationBean.age}" id="age">
- <rich:beanValidator summary="Wrong age"/>
- </h:inputText>
- <rich:message for="age" />
- <f:facet name="footer">
- <a4j:commandButton value="Submit" action="#{validationBean.success}" reRender="progress"/>
- </f:facet>
- </h:panelGrid>
-</rich:panel>]]></programlisting>
-
- <para>
- Please play close attention on the bean code that contains the constraints defined with Hibernate annotation which perform validation of the input data.
- </para>
-
- <programlisting role="JAVA"><![CDATA[
-
-package org.richfaces.demo.validation;
-
-import org.hibernate.validator.Email;
-import org.hibernate.validator.Length;
-import org.hibernate.validator.Max;
-import org.hibernate.validator.Min;
-import org.hibernate.validator.NotEmpty;
-import org.hibernate.validator.NotNull;
-import org.hibernate.validator.Pattern;
-
-public class ValidationBean {
-
- private String progressString="Fill the form please";
-
- @NotEmpty
- @Pattern(regex=".*[^\\s].*", message="This string contain only spaces")
- @Length(min=3,max=12)
- private String name;
- @Email
- @NotEmpty
- private String email;
-
- @NotNull
- @Min(18)
- @Max(100)
- private Integer age;
-
- public ValidationBean() {
- }
-
- /* Corresponding Getters and Setters */
-
- public void success() {
- setProgressString(getProgressString() + "(Strored successfully)");
- }
-
- public String getProgressString() {
- return progressString;
- }
-
- public void setProgressString(String progressString) {
- this.progressString = progressString;
- }
-}]]></programlisting>
-
- <para>The following figure shows what happens if validation fails</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:beanValidator></property>
- </emphasis> usage</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/beanValidator1.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- <para>As you can see from the example that in order to validate the
- <emphasis role="bold">
- <property><rich:beanValidator></property>
- </emphasis> should be nested into a input JSF or RichFaces
- component. </para>
-
- <para>The component has the only attribute - <emphasis>
- <property>"summary"</property>
- </emphasis>which displays validation messages about
- validation errors.</para>
- </section>
-
-
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/beanValidator.jsf?c=b...">
- On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold"><property><rich:beanValidator></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:calendar</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:calendar></property></emphasis> component is used to create inputs for date and time and enter them inline or using pup-up calendar that allows to navigate through monthes and years.
- </para>
- <figure>
- <title><emphasis role="bold"> <property><rich:calendar></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Popup representation</para></listitem>
- <listitem><para>Disablement support</para></listitem>
- <listitem><para>Smart and user-defined positioning</para></listitem>
- <listitem><para>Cells customization</para></listitem>
- <listitem><para>Macro substitution based on tool bars customization</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/calendar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,2028 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:calendar</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.Calendar</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlCalendar</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.Calendar</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.CalendarRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.CalendarTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <programlisting role="XML"><![CDATA[<rich:calendar />]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlCalendar;
-...
-HtmlCalendar myCalendar = new HtmlCalendar();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>
- The <emphasis role="bold"><property><rich:calendar></property></emphasis> component can work properly in two ways of data loading
- defined by the <emphasis><property>"mode"</property></emphasis> attribute.
- The attribute has two possible values:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>client</code> — the default mode.
- In this mode calendar loads an initial portion of data within a definite date range.
- The range is specified with the help of <emphasis><property>"preloadDateRangeBegin"</property></emphasis> and <emphasis><property>"preloadDateRangeEnd"</property></emphasis> attributes
- that are designed for this mode only!
- Additional data requests are not sent.
- </para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem>
- <para>
- <code>ajax</code> — in this mode the <emphasis role="bold"><property><rich:calendar></property></emphasis> requests portions of data for element rendering from special Data Model.
- The default calendar Data Model could be redefined with the help of <emphasis><property>dataModel</property></emphasis> attribute that points to the object that implements <code><ulink url="&apidoc_framework;/org/richfaces/model/CalendarDataModel.html">CalendarDataModel</ulink></code> interface.
- If <emphasis><property>"dataModel"</property></emphasis> attribute has <emphasis><property>"null"</property></emphasis> value, data requests are not sent.
- In this case the "<code>ajax</code>" mode is equal to the "<code>client</code>".
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- The <emphasis role="bold"><property><rich:calendar></property></emphasis> could be represented on a page in two ways (a) the calendar itself without input field and button and
- (b) date input with button and popping-up calendar.
- This is defined with <emphasis><property>"popup" </property></emphasis> attribute, which is <emphasis><property>"true"</property></emphasis> by default.
- For popup rendering a "lazy" loading is implemented: a client side script method builds the popup after request is completed.
- Such improvement speeds up page loading time.
- </para>
-
- <figure>
- <title>The <emphasis role="bold"><property><rich:calendar></property></emphasis> with <emphasis><property>popup="false"</property></emphasis> (a) and default representation (b)</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar7.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- By default the <emphasis role="bold"><property><rich:calendar></property></emphasis> is rendered as input filed with a button and calendar hidden in a pop-up.
- The button is represented with calendar pictogramm.
- This pictogramm could be easily changed with the help of <emphasis><property>"buttonIcon"</property></emphasis>
- and <emphasis><property>"buttonIconDisabled"</property></emphasis> attributes, which specify the icon for button enabled and disabled states respectively.
- To change the button appearance from icon to usual button define the value for the <emphasis><property>"buttonLabel"</property></emphasis> attribute.
- In this case <emphasis><property>"buttonIcon"</property></emphasis> and <emphasis><property>"buttonIconDisabled"</property></emphasis> attributes are ignored.
- </para>
-
- <figure>
- <title>The <emphasis role="bold"><property><rich:calendar></property></emphasis> with <emphasis><property>buttonLabel="Open calendar"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar8.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <para>
- There are two attributes that specify the place where the popup calendar is rendered relative to the input field and icon:
- <emphasis><property>"jointPoint"</property></emphasis> and <emphasis><property>"direction"</property></emphasis> attributes.
- By default the pop-up calendar appears under input and aligned with it left border (see Fig. 6.211, b).
- Speaking in terms of RichFaces it means that <emphasis role="bold"><property><rich:calendar></property></emphasis> <emphasis><property>jointPoint="bottom-left"</property></emphasis>
- and <emphasis><property>direction="bottom-right".</property></emphasis>
- There are four possible joint-points and four possible directions for each joint-point.
- Besides that, the values of <emphasis><property>"jointPoint"</property></emphasis> and <emphasis><property>"direction"</property></emphasis> could be set to
- <emphasis><property>"auto"</property></emphasis> that activates smart pop-up positioning.
- </para>
-
- <figure>
- <title>Four possible positions of joint-points (red) and four possible directions (black) shown for bottom-left joint-point.</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar9.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
-
- <para>Usage <emphasis>
- <property>"currentDate"</property>
- </emphasis> attribute isn't available in the popup mode.</para>
- <para>With help of the <emphasis>
- <property>"currentDate"</property>
- </emphasis> attribute you can define month and year which will be
- displayed currently.</para>
- <para>The <emphasis>
- <property>"value"</property>
- </emphasis> attribute stores selected date currently.</para>
-
- <para>The difference between the value and currentDate attributes </para>
- <para> The <emphasis>
- <property>"todayControlMode"</property>
- </emphasis> attribute defines the mode for "today"
- control. Possible values are: </para>
- <itemizedlist>
- <listitem>
- <para>"hidden" - in this mode
- "Today" button will not be
- displayed</para>
- </listitem>
- <listitem>
- <para>"select" - (default) in this state
- "Today" button activation will
- scroll the calendar to the current date and it
- become selected date</para>
- </listitem>
- <listitem>
- <para>"scroll" - in this mode
- "Today" activation will simply
- scroll the calendar to current month without
- changing selected day.</para>
- </listitem>
- </itemizedlist>
-
-
-
- <para>
- With the help of the
- <emphasis>
- <property>"readonly"</property>
- </emphasis>
- attribute you can make date, time and input field unavailable, but you can look through the next/previous month or the next/previous year.
- </para>
- <para>
- In order to disable the component, use the <emphasis>
- <property>"disabled"</property>
- </emphasis> attribute. With its help both controls are disabled in the
- <emphasis>
- <property>"popup"</property>
- </emphasis>
- mode.
- </para>
- <figure>
- <title>Using the <emphasis>
- <property>"disabled"</property>
- </emphasis> attribute.</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar6.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
-
-
- <para><emphasis>
- <property>"ondateselect"</property>
- </emphasis> attribute is used to define an event that is triggered
- before date selection.</para>
- <para><emphasis>
- The <property>"ondateselected"</property>
- </emphasis> attribute is used to define an event that is triggered
- after date selection. </para>
- <para>For example, to fire some event after date selection you should use
- <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>. And it should be bound to <emphasis>
- <property>"ondateselected"</property>
- </emphasis> event as it's shown in the example below:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:calendar id="date" value="#{bean.dateTest}">
- <a4j:support event="ondateselected" reRender="mainTable"/>
-</rich:calendar>
-...]]></programlisting>
- <note>
- <title>Note:</title>
- <para>
- When a timePicker was fulfilled, the <emphasis><property>"ondateselected"</property></emphasis> attribute does not allow you to submit a selected date. It happens because this event rose when the date is selected but the input hasn't been updated with new value yet.
-
- </para>
- </note>
- <para><emphasis>
- <property>"ondateselect"</property>
- </emphasis> could be used for possibility of date selection canceling.
- See an example below:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:calendar id="date" value="#{bean.dateTest}" ondateselect="if (!confirm('Are you sure to change date?')){return false;}"/>
-...]]></programlisting>
- <para>
- <emphasis>
- <property>"oncurrentdateselected"</property>
- </emphasis> event is fired when the "next/previous month" or
- "next/previous year" button is pressed, and the value is applied. </para>
- <para>
- <emphasis>
- <property>"oncurrentdateselect"</property>
- </emphasis> event is fired when the "next/previous month" or
- "next/previous year" button is pressed, but the value is not applied
- yet (you can change the logic of applying the value). Also this event
- could be used for possibility of "next/previous month" or
- "next/previous year" selection canceling. See an example below: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:calendar id="date" value="#{bean.dateTest}" oncurrentdateselect="if (!confirm('Are you sure to change month(year)?')){return false;}"
- oncurrentdateselected="alert('month(year) select:'+event.rich.date.toString());"/>
-...]]></programlisting>
- <para>How to use these attributes see also on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092275#..."
- >RichFaces Users Forum</ulink>.</para>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find <link linkend="process"
- >in the corresponding section </link>. </para>
-
-
-
-
-
-
-
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and
- the message that the component (indirectly) produced. This attribute
- defines the parameters of localized error and informational messages
- that occur as a result of conversion, validation, or other application
- actions during the request processing lifecycle. With the help of this
- attribute you can replace the last parameter substitution token shown
- in the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>,
- {2} for <code>"ShortConverter.SHORT"</code>. </para>
- <para>The <emphasis>
- <property>"defaultTime"</property>
- </emphasis> attribute to set the default time value for the current
- date in two cases:</para>
- <itemizedlist>
- <listitem>
- <para> If time is not set </para>
- </listitem>
- <listitem>
- <para> If another date is selected and the value of the <emphasis>
- <property>"resetTimeOnDateSelect"</property>
- </emphasis> attribute is set to
- "true" </para>
- </listitem>
- </itemizedlist>
- <para> The <emphasis>
- <property> "enableManualInput" </property>
- </emphasis> attribute enables/disables input field, so when <code>
- enableManualInput = "false" </code>, user
- can only pick the date manually and has no possibility to type in the
- date (default value is "false"). </para>
- <para>The <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component allows to use <emphasis>
- <property>"header"</property>
- </emphasis>, <emphasis>
- <property>"footer"</property>
- </emphasis>, <emphasis>
- <property>"optionalHeader"</property>
- </emphasis>, <emphasis>
- <property>"optionalFooter"</property>
- </emphasis> facets. The following elements are available in these
- facets: <code>{currentMonthControl}</code>,
- <code>{nextMonthControl}</code>, <code>{nextYearControl}</code>,
- <code>{previousYearControl}</code>,
- <code>{previousMonthControl}</code>,
- <code>{todayControl}</code>, <code>{selectedDateControl}</code>. These
- elements could be used for labels output.</para>
- <para>Also you can use <emphasis>
- <property>"weekNumber"</property>
- </emphasis> facet with available <code>{weekNumber}</code>,
- <code>{elementId}</code> elements and <emphasis>
- <property>"weekDay"</property>
- </emphasis> facet with <code>{weekDayLabel}</code>,
- <code>{weekDayLabelShort}</code>,
- <code>{weekDayNumber}</code>, <code>{isWeekend}</code>,
- <code>{elementId}</code> elements.
- <code>{weekNumber}</code>, <code>{weekDayLabel}</code>,
- <code>{weekDayLabelShort}</code>,
- <code>{weekDayNumber}</code> elements could be used for labels output,
- <code>{isWeekend}</code>, <code>{elementId}</code> - for
- additional processing in JavaScript code.</para>
- <para>These elements are shown on the picture below.</para>
-
- <figure>
- <title>Available elements</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Simple example of usage is placed below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-<!-- Styles for cells -->
-<style>
- .width100{
- width:100%;
- }
- .talign{
- text-align:center;
- }
-</style>
-...]]></programlisting>
-
- <programlisting role="XML"><![CDATA[...
-<rich:calendar id="myCalendar" popup="true" locale="#{calendarBean.locale}" value="#{bean.date}"
- preloadRangeBegin="#{bean.date}" preloadRangeEnd="#{bean.date}" cellWidth="40px" cellHeight="40px">
-
- <!-- Customization with usage of facets and accessible elements -->
- <f:facet name="header">
- <h:panelGrid columns="2" width="100%" columnClasses="width100, fake">
- <h:outputText value="{selectedDateControl}" />
- <h:outputText value="{todayControl}" style="font-weight:bold; text-align:left"/>
- </h:panelGrid>
- </f:facet>
- <f:facet name="weekDay">
- <h:panelGroup style="width:60px; overflow:hidden;" layout="block">
- <h:outputText value="{weekDayLabelShort}"/>
- </h:panelGroup>
- </f:facet>
- <f:facet name="weekNumber">
- <h:panelGroup>
- <h:outputText value="{weekNumber}" style="color:red"/>
- </h:panelGroup>
- </f:facet>
- <f:facet name="footer">
- <h:panelGrid columns="3" width="100%" columnClasses="fake, width100 talign">
- <h:outputText value="{previousMonthControl}" style="font-weight:bold;"/>
- <h:outputText value="{currentMonthControl}" style="font-weight:bold;"/>
- <h:outputText value="{nextMonthControl}" style="font-weight:bold;"/>
- </h:panelGrid>
- </f:facet>
- <h:outputText value="{day}"></h:outputText>
-</rich:calendar>
-...]]></programlisting>
-
- <para>This is a result:</para>
- <figure>
- <title>Facets usage</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it's shown on the picture above
- <code>{selectedDateControl}</code>, <code>{todayControl}</code>
- elements are placed in the <emphasis>
- <property>"header"</property>
- </emphasis> facet, <code>{previousMonthControl}</code>,
- <code>{currentMonthControl}</code>,
- <code>{nextMonthControl}</code> - in the <emphasis>
- <property>"footer"</property>
- </emphasis> facet, <code>{weekDayLabelShort}</code> - in the <emphasis>
- <property>"weekDay"</property>
- </emphasis> facet, <code>{nextYearControl}</code>,
- <code>{previousYearControl}</code> are absent. Numbers of
- weeks are red colored.</para>
-
- <para> It is possible to show and manage date. Except scrolling controls you can
- use quick month and year selection feature. It's necessary to
- click on its field, i.e. current month control, and choose required
- month and year. </para>
- <figure>
- <title>Quick month and year selection</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Also the <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component allows to show and manage time. It's
- necessary to define time in a pattern (for example, it could be
- defined as "<code>d/M/yy HH:mm</code>"). Then after
- you choose some data in the calendar, it becomes possible to manage
- time for this date. For time editing it's necessary to click
- on its field (see a picture below). To clean the field click on the
- "Clean".</para>
-
- <figure>
- <title>Timing</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <para>It's possible to handle events for calendar from JavaScript code.
- A simplest example of usage JavaScript API is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:calendar value="#{calendarBean.selectedDate}" id="calendarID"
- locale="#{calendarBean.locale}"
- popup="#{calendarBean.popup}"
- datePattern="#{calendarBean.pattern}"
- showApplyButton="#{calendarBean.showApply}" style="width:200px"/>
-<a4j:commandLink onclick="$('formID:calendarID').component.doExpand(event)" value="Expand"/>
-...]]></programlisting>
-
- <para>Also the discussion about this problem can be found on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078301#..."
- >RichFaces Users Forum</ulink>.</para>
-
-
-
- <!-- <para>The <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component provides the possibility to use a special Data
- Model to define data for element rendering. Data Model includes two
- major interfaces: </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."><code>CalendarDataModel</code></ulink>
-
- </para>
- </listitem>
- <listitem>
- <para> <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."><code>CalendarDataModelItem</code></ulink>
-
- </para>
- </listitem>
- </itemizedlist>
-
-
- <para><code>CalendarDataModel</code> provides the following function:</para>
- <itemizedlist>
- <listitem>
- <para><code>CalendarDataModelItem[]
- getData(Date[])</code>;</para>
- </listitem>
- </itemizedlist>
- <para>This method is called when it's necessary to represent the next
- block of <code>CalendarDataModelItem</code>. It happens during navigation
- to the next (previous) month or in any other case when calendar
- renders. This method is called in <emphasis>
- <property>"Ajax"</property>
- </emphasis> mode when the calendar renders a new page. </para>
- <para><code>CalendarDataModelItem</code> provides the following function:</para>
- <itemizedlist>
- <listitem>
- <para>Date <code>getDate()</code> - returns date from the
- item. Default implementation returns date.</para>
- </listitem>
- <listitem>
- <para>Boolean <code>isEnabled()</code> - returns
- "true" if date is <emphasis>
- <property>"selectable"</property>
- </emphasis> on the calendar. Default
- implementation returns
- "true".</para>
- </listitem>
- <listitem>
- <para>String <code>getStyleClass()</code> - returns string
- appended to the style class for the date span. For
- example it could be "relevant
- holyday". It means that the class could
- be defined like the
- "rich-cal-day-relevant-holyday"
- one. Default implementation returns empty
- string.</para>
- </listitem>
- <listitem>
- <para>Object <code>getData()</code> - returns any additional
- payload that must be JSON-serializable object. It
- could be used in the custom date representation on
- the calendar (inside the custom facet).</para>
- </listitem>
- </itemizedlist>
-
--->
-
-
- <para> The <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component provides the possibility to use
- internationalization method to redefine and localize the labels. You
- could use application resource bundle and define
- <code>RICH_CALENDAR_APPLY_LABEL</code>,
- <code>RICH_CALENDAR_TODAY_LABEL</code>,
- <code>RICH_CALENDAR_CLOSE_LABEL</code>,
- <code>RICH_CALENDAR_OK_LABEL</code>,
- <code>RICH_CALENDAR_CLEAN_LABEL</code>,
- <code>RICH_CALENDAR_CANCEL_LABEL </code> there. </para>
- <para>You could also pack <code>org.richfaces.renderkit.calendar</code>
- <ulink
- url="&apidoc;/org/richfaces/renderkit/CalendarRendererBase.html#CALENDAR_BUNDLE"
- >resource</ulink> bundle with your JARs defining the same
- properties. </para>
- <note>
- <title>Note:</title>
- <para>Only for Internet Explorer 6 and later. To make <emphasis
- role="bold">
- <property><rich:calendar></property>
- </emphasis> inside <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> rendered properly, enable the
- standards-compliant mode. Explore <ulink
- url="http://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx"
- >!DOCTYPE reference at MSDN</ulink> to find out
- how to do this. </para>
- </note>
-
- </section>
-
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>selectDate(date)</entry>
-
- <entry>Selects the date specified. If
- the date isn't in
- current month - performs
- request to select</entry>
- </row>
-
- <row>
- <entry role="tbi">isDateEnabled(date)</entry>
-
- <entry role="tbi">Checks if given date
- is selectable (to be
- implemented)</entry>
- </row>
-
- <row>
- <entry role="tbi">enableDate(date)</entry>
-
- <entry role="tbi">Enables date cell
- control on the calendar (to be
- implemented)</entry>
- </row>
-
- <row>
- <entry role="tbi">disableDate(date)</entry>
-
- <entry role="tbi">Disables date cell
- control on the calendar (to be
- implemented)</entry>
- </row>
-
- <row>
- <entry role="tbi">enableDates(date[])</entry>
-
- <entry role="tbi">Enables dates cell
- controls set on the calendar
- (to be implemented)</entry>
- </row>
-
- <row>
- <entry role="tbi">disableDates(date[])</entry>
-
- <entry role="tbi">Disables dates cell
- controls set on the calendar
- (to be implemented)</entry>
- </row>
-
- <row>
- <entry>nextMonth()</entry>
-
- <entry>Navigates to next month</entry>
- </row>
-
- <row>
- <entry>nextYear()</entry>
-
- <entry>Navigates to next year</entry>
- </row>
-
- <row>
- <entry>prevMonth()</entry>
-
- <entry>Navigates to previous month
- </entry>
- </row>
-
- <row>
- <entry>prevYear()</entry>
-
- <entry>Navigates to previous
- year</entry>
- </row>
-
- <row>
- <entry>today()</entry>
-
- <entry>Selects today date</entry>
- </row>
-
- <row>
- <entry>getSelectedDate()</entry>
-
- <entry>Returns currently selected
- date</entry>
- </row>
-
- <row>
- <entry>Object getData()</entry>
-
- <entry>Returns additional data for the
- date</entry>
- </row>
-
- <!--
- <row>
- <entry>enable()</entry>
-
- <entry>Enables calendar</entry>
- </row>
-
- <row>
- <entry>disable()</entry>
-
- <entry>Disables calendar</entry>
- </row>
- -->
-
- <row>
- <entry>getCurrentMonth()</entry>
-
- <entry>Returns number of the month
- currently being viewed</entry>
- </row>
-
- <row>
- <entry>getCurrentYear()</entry>
-
- <entry>Returns number of the year
- currently being viewed</entry>
- </row>
-
- <row>
- <entry>doCollapse()</entry>
-
- <entry>Collapses calendar
- element</entry>
- </row>
-
- <row>
- <entry>doExpand()</entry>
-
- <entry>Expands calendar element</entry>
- </row>
-
- <row>
- <entry>resetSelectedDate()</entry>
-
- <entry>Clears a selected day
- value</entry>
- </row>
-
- <row>
- <entry>doSwitch()</entry>
-
- <entry>Inverts a state for the popup
- calendar</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
-
- <section>
- <title>
- Facets
- </title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Redefines calendar header. Related attribute is "showHeader"</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Redefines calendar footer. Related attribute is "showFooter"</entry>
- </row>
- <row>
- <entry>optionalHeader</entry>
- <entry>Defines calendar's optional header</entry>
- </row>
- <row>
- <entry>optionalFooter</entry>
- <entry>Defines calendar's optional footer</entry>
- </row>
- <row>
- <entry>weekNumber</entry>
- <entry>Redefines week number</entry>
- </row>
- <row>
- <entry>weekDay</entry>
- <entry>Redefines names of the week days. Related attributes are "weekDayLabels" and "weekDayLabelsShort"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a popup element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for headers (header, optional
- header)</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-bottom-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for footers (footer, optional
- footer) and names of working days</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-top-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-right-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>background</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for weeks numbers</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-bottom-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-right-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>background</entry>
- </row>
-
- <row>
- <entry>calendarWeekBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a toolBar and names of months</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>headerFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>headerWeightFont</entry>
-
- <entry>font-weight</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for cells with days</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-bottom-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-right-color</entry>
- </row>
-
- <row>
- <entry>generalBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for holiday</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>calendarHolidaysBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>calendarHolidaysTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for cell with a current date</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>calendarCurrentBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>calendarCurrentTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a selected day</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>headerWeightFont</entry>
-
- <entry>font-weight</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <!-- Quick year & month selection-->
- <table>
- <title>Skin parameters redefinition for a popup element during quick
- month and year selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a shadow</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>shadowBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a selected month and year</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>calendarCurrentBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>calendarCurrentTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a hovered month and year</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>calendarSpecBackgroundColor</entry>
- <entry>background</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a month items near split line</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a hovered toolbar items</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>calendarWeekBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a pressed toolbar items</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>border-right-color</entry>
- </row>
-
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>border-bottom-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for "ok" and
- "cancel" buttons</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <!-- Time selection-->
-
- <table>
- <title>Skin parameters redefinition for a popup element during time
- selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a wrapper <td>
- element for an input field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>subBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
-
- <row>
- <entry>subBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for an input field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>buttonSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>buttonFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a wrapper <td>
- element for spinner buttons</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_cn1.png"
- scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_cn2.png"
- scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_cn3.png"
- scalefit="1"/>
- </imageobject>
- </mediaobject>
-
- </figure>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_cn4.png"
- scalefit="1"/>
- </imageobject>
- </mediaobject>
-
- </figure>
- <table id="tab_cn3">
- <title>Classes names that define an input field and a button
- appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-calendar-input </entry>
-
- <entry>Defines styles for an input
- field</entry>
- </row>
-
- <row>
- <entry>rich-calendar-button</entry>
-
- <entry>Defines styles for a popup
- button</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a days appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>rich-calendar-days</entry>
-
- <entry>Defines styles for names of
- working days in a
- header</entry>
- </row>
-
- <row>
- <entry>rich-calendar-weekends</entry>
-
- <entry>Defines styles for names of
- weekend in a header</entry>
- </row>
-
- <row>
- <entry>rich-calendar-week</entry>
-
- <entry>Defines styles for weeks
- numbers</entry>
- </row>
-
- <row>
- <entry>rich-calendar-today</entry>
-
- <entry>Defines styles for cell with a
- current date</entry>
- </row>
-
- <row>
- <entry>rich-calendar-cell</entry>
-
- <entry>Defines styles for cells with
- days</entry>
- </row>
-
- <row>
- <entry>rich-calendar-holly</entry>
-
- <entry>Defines styles for
- holiday</entry>
- </row>
-
- <row>
- <entry>rich-calendar-select</entry>
-
- <entry>Defines styles for a selected
- day</entry>
- </row>
-
- <row>
- <entry>rich-calendar-hover</entry>
-
- <entry>Defines styles for a hovered
- day</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a popup element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-calendar-popup</entry>
-
- <entry>Defines styles for a popup
- element</entry>
- </row>
- <row>
- <entry>rich-calendar-exterior</entry>
-
- <entry>Defines styles for a popup
- element exterior</entry>
- </row>
-
- <row>
- <entry>rich-calendar-tool</entry>
-
- <entry>Defines styles for
- toolbars</entry>
- </row>
-
- <row>
- <entry>rich-calendar-month</entry>
-
- <entry>Defines styles for names of
- months</entry>
- </row>
-
- <row>
- <entry>rich-calendar-header-optional</entry>
-
- <entry>Defines styles for an optional
- header</entry>
- </row>
-
- <row>
- <entry>rich-calendar-footer-optional</entry>
-
- <entry>Defines styles for an optional
- footer</entry>
- </row>
-
- <row>
- <entry>rich-calendar-header</entry>
-
- <entry>Defines styles for a
- header</entry>
- </row>
-
- <row>
- <entry>rich-calendar-footer</entry>
-
- <entry>Defines styles for a
- footer</entry>
- </row>
-
- <row>
- <entry>rich-calendar-boundary-dates</entry>
-
- <entry>Defines styles for an active
- boundary button</entry>
- </row>
-
- <row>
- <entry>rich-calendar-btn</entry>
-
- <entry>Defines styles for an inactive
- boundary date</entry>
- </row>
-
- <row>
- <entry>rich-calendar-toolfooter</entry>
-
- <entry>Defines styles for a today
- control date</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a popup element during quick month
- and year selection</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-calendar-date-layout</entry>
- <entry>Defines styles for a popup
- element during quick year
- selection</entry>
- </row>
- <row>
- <entry>rich-calendar-editor-layout-shadow</entry>
- <entry>Defines styles for a
- shadow</entry>
- </row>
- <row>
- <entry>rich-calendar-editor-btn</entry>
- <entry>Defines styles for an inactive
- boundary date</entry>
- </row>
- <row>
- <entry>rich-calendar-date-layout-split</entry>
- <entry>Defines styles for a wrapper
- <td> element for
- month items near split
- line</entry>
- </row>
- <row>
- <entry>rich-calendar-editor-btn-selected</entry>
- <entry>Defines styles for an selected
- boundary date</entry>
- </row>
- <row>
- <entry>rich-calendar-editor-btn-over</entry>
- <entry>Defines styles for a boundary
- date when pointer was moved
- onto</entry>
- </row>
-
- <row>
- <entry>rich-calendar-editor-tool-over</entry>
- <entry>Defines styles for a hovered
- toolbar items</entry>
- </row>
-
- <row>
- <entry>rich-calendar-editor-tool-press</entry>
- <entry>Defines styles for a pressed
- toolbar items</entry>
- </row>
-
- <row>
- <entry>rich-calendar-date-layout-ok</entry>
- <entry>Defines styles for a
- "ok"
- button</entry>
- </row>
- <row>
- <entry>rich-calendar-date-layout-cancel</entry>
- <entry>Defines styles for a
- "cancel"
- button</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a popup element during time selection</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-calendar-time-layout</entry>
- <entry>Defines styles for a popup
- element during time
- selection</entry>
- </row>
- <row>
- <entry>rich-calendar-editor-layout-shadow</entry>
- <entry>Defines styles for a
- shadow</entry>
- </row>
- <row>
- <entry>rich-calendar-time-layout-fields</entry>
- <entry>Defines styles for a wrapper
- <td> element for
- input fields and
- buttons</entry>
- </row>
- <row>
- <entry>rich-calendar-spinner-input-container</entry>
- <entry>Defines styles for a wrapper
- <td> element for
- an input field</entry>
- </row>
- <row>
- <entry>rich-calendar-spinner-input</entry>
- <entry>Defines styles for an input
- field</entry>
- </row>
- <row>
- <entry>rich-calendar-spinner-buttons</entry>
- <entry>Defines styles for a wrapper
- <td> element for
- spinner buttons</entry>
- </row>
- <row>
- <entry>rich-calendar-spinner-up</entry>
- <entry>Defines styles for a
- "up"
- button</entry>
- </row>
- <row>
- <entry>rich-calendar-spinner-down</entry>
- <entry>Defines styles for a
- "down"
- button</entry>
- </row>
- <row>
- <entry>rich-calendar-time-layout-ok</entry>
- <entry>Defines styles for a
- "ok"
- button</entry>
- </row>
- <row>
- <entry>rich-calendar-time-layout-cancel</entry>
- <entry>Defines styles for a
- "cancel"
- button</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="tab_cn3"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-calendar-today {
- background-color: #FF0000;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example an active cell background color was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:calendar></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myFontClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"inputClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:calendar> </property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:calendar ... inputClass="myFontClass"/>]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/calendar_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for output text
- was changed.</para>
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/calendar.jsf?c=calendar"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:calendar></property>
- </emphasis> usage and sources for the given example. </para>
- <para>How to use JavaScript API see on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078301#..."
- >RichFaces Users Forum</ulink>.</para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:changeExpandListener</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold"><property><rich:changeExpandListener></property></emphasis>
- represents an action listener method that is notified on an expand/collapse event on the node.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define some "changeExpand" listeners for the component</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/changeExpandListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>rich:changeExpandListener</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>listener-class</entry>
- <entry>org.richfaces.event.NodeExpandedListener</entry>
- </row>
- <row>
- <entry>event-class</entry>
- <entry>org.richfaces.event.NodeExpandedEvent</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ChangeExpandListenerTag</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:changeExpandListener type="demo.Bean"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis></para>
- <programlisting role="JAVA"><![CDATA[package demo;
-public class ImplBean implements org.richfaces.event.NodeExpandedListener{
- ...
-}
-]]></programlisting>
-
- <programlisting role="JAVA"><![CDATA[import demo.ImplBean;
-...
-ImplBean myListener = new ImplBean();
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of Usage</title>
-
-<para>
- The <emphasis role="bold"><property><rich:changeExpandListener></property></emphasis> is used as a nested tag with <emphasis role="bold"><property><rich:tree></property></emphasis>
- and <emphasis role="bold"><property><rich:treeNode></property></emphasis> components.
-</para>
-<para>
-Attribute <emphasis><property>"type"</property></emphasis> defines the fully qualified Java class name for the listener.
- This class should implement <ulink url="&apidoc_framework;/org/richfaces/event/TreeListenerEventsProducer.html#addChangeExpandListener(org.richfaces.event.NodeExpandedListener)"><code>org.richfaces.event.NodeExpandedListener</code></ulink>interface.
-</para>
-
- <para>
- <emphasis role="bold">The typical variant of using:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:tree switchType="server" value="#{project.data}" var="item" nodeFace="#{item.type}">
- <rich:changeExpandListener type="demo.ListenerBean"/>
- ...
- <!-- Tree nodes -->
- ...
-</rich:tree>
-...
-]]></programlisting>
-
- <para>
- <emphasis role="bold">Java bean source:</emphasis>
- </para>
-
- <programlisting role="JAVA"><![CDATA[package demo;
-import org.richfaces.event.NodeExpandedEvent;
-public class ListenerBean implements org.richfaces.event.NodeExpandedListener{
- ...
- public void processExpansion(NodeExpandedEvent arg0){
- //Custom Developer Code
- }
- ...
-}
-...]]></programlisting>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:changeExpandListener></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:colorPicker</keyword>
- <keyword>colorPicker</keyword>
- </keywordset>
- <releaseinfo>3.3.1</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The
- <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis>
- component
- lets you visually choose a color or define it in hex, RGB, or HSB input fields.
- </para>
- <figure>
- <title>
- Simple
- <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis>
- component
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>Possibility to get color in hex, or RGB color models</para>
- </listitem>
- <listitem>
- <para>Flat/inline representation</para>
- </listitem>
- <listitem>
- <para>Highly customizable look and feel</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/colorPicker.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,505 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:colorPicker</keyword>
- <keyword>colorPicker</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ColorPicker</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlColorPicker</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ColorPicker</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ColorPickerRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ColorPickerTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example of how the component can be used on a page:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <!-- itemLabels has to have realy value-->
- <programlisting role="XML">
-<![CDATA[...
-<rich:colorPicker value="#{bean.color}" />
-...]]>
- </programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA">
-<![CDATA[import org.richfaces.component.html.colorPicker;
-...
-HtmlColorPicker myColorPicker = new ColorPicker();
-...]]>
- </programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para> The <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component allows you easily select a color or define it in hex, RGB, or HSB input
- fields. There are two squares in the widget that help you to compare the currently selected
- color and the already selected color. </para>
- <para> The <property>
- <emphasis>"value"</emphasis>
- </property> attribute stores the selected color. </para>
- <para> The value of the <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component could be saved in hex or RGB color models. You can explicitly define a
- color model in the <property>
- <emphasis>"colorMode"</emphasis>
- </property> attribute. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML">
-<![CDATA[...
-<rich:colorPicker value="#{bean.color}" colorMode="rgb" />
-...]]>
- </programlisting>
- <para>This is the result:</para>
- <figure>
- <title> Usage of the <property>
- <emphasis>"colorMode"</emphasis>
- </property> attribute. </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_rgb.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para> The <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component has two representation states: flat and inline. With the help of the <property>
- <emphasis>"flat"</emphasis>
- </property> attribute you can define whether the component is rendered flat. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML">
-<![CDATA[...
-<rich:colorPicker value="#{bean.color}" flat="true" />
-...]]>
- </programlisting>
-
- <para>The component specific event handler <property><emphasis>"onbeforeshow"</emphasis></property> captures the event which occurs before
- the <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> widget is opened. The <property><emphasis>"onbeforeshow"</emphasis></property> attribute could be used in order to cancel this
- event. See the example below:</para>
- <programlisting role="XML">
-<![CDATA[...
-<rich:colorPicker value="#{bean.color}" onbeforeshow="if (!confirm('Are you sure you want to change a color?')){return false;}" />
-...]]>
- </programlisting>
-
- <para> The <property>
- <emphasis>"showEvent"</emphasis>
- </property> attribute defines the event that shows <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> widget. The default value is "onclick". </para>
- <para> The <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component allows to use the <emphasis>
- <property>"icon"</property>
- </emphasis> facet. </para>
- <para> You can also customize <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> rainbow slider ( <inlinemediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_arrows.png"/>
- </imageobject>
- </inlinemediaobject> ) with the help of the <property>
- <emphasis>"arrows"</emphasis>
- </property> facet. </para>
- <programlisting role="XML">
-<![CDATA[...
-<rich:colorPicker value="#{bean.color}">
- <f:facet name="icon">
- <h:graphicImage value="/pages/colorPicker_ico.png" />
- </f:facet>
- <f:facet name="arrows">
- <f:verbatim>
- <div style="width: 33px; height: 5px; border: 1px solid #bed6f8; background:none;" />
- </f:verbatim>
- </f:facet>
-</rich:colorPicker>
-...]]>
- </programlisting>
- <para>This is the result:</para>
- <figure>
- <title> Usage of the <emphasis>
- <property>"icon"</property>
- </emphasis>, and <emphasis>
- <property>"arrows"</property>
- </emphasis> facets </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_facets.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> components at once: <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
- <listitem>
- <para> Add style classes used by a <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component to your style sheets</para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for the input field that contains selected color</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for the wrapper <div> element of a
- widget</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for the icon, color palette, current color, and new
- color</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for the hex, RGB, and HSB input fileds</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for the "Apply" and
- "Cancel" button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>buttonFontSize</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>buttonFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <!-- Definition of Custom Style Classes-->
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <table id="colorPicker_cn_inline">
- <title> Classes names for the representation of the input field and icon containing selected
- color </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Selector name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>.rich-colorpicker-span input</entry>
- <entry>Defines styles for the input field that contains selected color</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-icon</entry>
- <entry>Defines styles for the icon</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table id="colorPicker_cn_widget">
- <title>Classes names for the widget</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>.rich-colorpicker-ext</entry>
- <entry>Defines styles for the wrapper <div> element of a widget</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-color</entry>
- <entry>Defines styles for the color palette</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-current-color</entry>
- <entry>Defines styles for the currently selected color</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-new-color</entry>
- <entry>Defines styles for the already selected color</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-colors-input</entry>
- <entry>Defines styles for the hex, RGB, and HSB input fileds</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table id="colorPicker_cn_buttons">
- <title>Classes names for the buttons representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>.rich-colorpicker-submit</entry>
- <entry>Defines styles for the "Apply" button</entry>
- </row>
- <row>
- <entry>.rich-colorpicker-cancel</entry>
- <entry>Defines styles for the "Cancel" button</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link
- linkend="colorPicker_cn_inline"> above</link>) and define necessary properties in them. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-colorPicker-ext{
- background-color: #ecf4fe;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/colorPicker_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the shown example the background color for the widget is changed.</para>
-
- <!--para>It's aslo possible to change styles of a particular
- <emphasis role="bold"> <property><rich:colorPicker></property></emphasis> component.
- In this case you should create own style classes and use them in corresponding <emphasis role="bold"><property><rich:colorPicker></property></emphasis> <property>styleClass</property> attributes.
- An example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- background-color:#bed6f8;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"viewClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:colorPicker> </property></emphasis> is defined as it's shown in the example below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:colorPicker value="click to edit" viewClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Modificaton of a look and feel with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style and background color in <property>view</property> state is changed.</para-->
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/colorPicker.jsf?c=col..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:colorPicker></property>
- </emphasis> component usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:column</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component for row rendering for a UIData component.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:column></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Completely skinned table rows and child elements</para></listitem>
- <listitem><para>Possibility to combine columns with the help of <emphasis ><property>"colspan"</property></emphasis></para></listitem>
- <listitem><para>Possibility to combine rows with the help of <emphasis ><property>"rowspan"</property></emphasis> and <emphasis ><property>"breakBefore"</property></emphasis></para></listitem>
- <listitem><para><link linkend="sort">Sorting column values</link></para></listitem>
- <listitem><para><link linkend="filter">Filtering column values</link></para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/column.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,719 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:column</keyword>
- <keyword>colspan</keyword>
- <keyword>breakBefore</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Column</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlColumn</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Column</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ColumnRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ColumnTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>column</property> on a page,
- use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable var="set">
- <rich:column>
- <h:outputText value="#{set.property1}"/>
- </rich:column>
- <!--Set of another columns and header/footer facets-->
-</rich:dataTable>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlColumn;
-...
-HtmlColumn myColumn = new HtmlColumn();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>To output a simple table, the <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> component is used the same way as the standard <emphasis
- role="bold">
- <property><h:column></property>
- </emphasis>, i.e. the following code on a page is used:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<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>
- <para>The result is:</para>
- <figure>
- <title>Generated <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Now, in order to group columns with text information into one row in one
- column with a flag, use the <emphasis>
- <property>"colspan"</property>
- </emphasis> attribute, which is similar to an HTML one, specifying
- that the first column contains 3 columns. In addition, it's
- necessary to specify that the next column begins from the first row
- with the help of the
- <code>breakBefore="true"</code>.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<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>
- <para>As a result the following structure is rendered:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:column></property>
- </emphasis> modified with <emphasis>
- <property>"colspan"</property>
- </emphasis> and <emphasis>
- <property>"breakbefore"</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>The same way is used for <property>columns</property> grouping with the <emphasis>
- <property>"rowspan"</property>
- </emphasis> attribute that is similar to an HTML one responsible for
- rows quantity definition occupied with the current one. The only thing
- to add in the example is an instruction to move onto the next row for
- each next after the second column.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<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>
- <para>As a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:column></property>
- </emphasis> generated with <emphasis>
- <property>"rowspan"</property>
- </emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Hence, additionally to a standard output of a particular row provided with
- the <emphasis role="bold">
- <property><h:column></property>
- </emphasis> component, it becomes possible to group easily the rows
- with special HTML attribute.</para>
- <para>The columns also could be grouped in a particular way with the help of the
- <emphasis role="bold">
- <property><h:columnGroup></property>
- </emphasis> component that is described in <link linkend="columnGroup"
- >the following chapter</link>.</para>
- <para><ulink url="http://wiki.jboss.org/wiki/DynamicColumns">In the Dynamic Columns Wiki article</ulink> you
- can find additional information about dynamic columns.</para>
- </section>
-
- <section id="sortAndFilter">
- <title>Sorting and Filtering</title>
- <section id="sort">
- <title>Sorting</title>
- <para> In order to sort the columns you should use <emphasis>
- <property>"sortBy"</property>
- </emphasis> attribute that indicates what values to be
- sorted.This attribute can be used only with the <emphasis role="bold"><property><rich:dataTable></property></emphasis> component.
- In order to sort the column you should click on its
- header. See the following example. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">
- <f:facet name="header">
- <h:outputText value="Sorting Example"/>
- </f:facet>
- <rich:column sortBy="#{cap.state}">
- <f:facet name="header">
- <h:outputText value="State Name"/>
- </f:facet>
- <h:outputText value="#{cap.state}"/>
- </rich:column>
- <rich:column sortBy="#{cap.name}">
- <f:facet name="header">
- <h:outputText value="State Capital"/>
- </f:facet>
- <h:outputText value="#{cap.name}"/>
- </rich:column>
- </rich:dataTable>
-</h:form>
-...]]></programlisting>
- <para>This is result:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> with <emphasis>
- <property>"sortBy"</property>
- </emphasis> attribute </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column5.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- <para>The <emphasis>
- <property>"sortExpression"</property>
- </emphasis> attribute defines a bean property which is used
- for sorting of a column. This attribute can be used only with the <emphasis role="bold"><property><rich:scrollableDataTable></property></emphasis> component.
- The following example is a example of the attribute usage.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:scrollableDataTable id="carList"
- value="#{dataTableScrollerBean.allCars}" sortMode="single"
- binding="#{dataTableScrollerBean.table}">
- <rich:column id="make" sortExpression="#{cap.make}">
- <f:facet name="header">
- <h:outputText styleClass="headerText" value="Make" />
- </f:facet>
- <h:outputText value="#{category.make}" />
- </rich:column>
- <rich:column id="model">
- <f:facet name="header">
- <h:outputText styleClass="headerText" value="Model" />
- </f:facet>
- <h:outputText value="#{category.model}" />
- </rich:column>
- <rich:column id="price">
- <f:facet name="header">
- <h:outputText styleClass="headerText" value="Price" />
- </f:facet>
- <h:outputText value="#{category.price}" />
- </rich:column>
-</rich:scrollableDataTable>
-...]]></programlisting>
- <!-- <figure>
- <title>The <emphasis>
- <property>"sortExpression"</property>
- </emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column7.png"
- />
- </imageobject>
- </mediaobject>
- </figure>-->
- <para> The <emphasis>
- <property>"selfSorted"</property>
- </emphasis> attribute that would add the possibility of
- automatic sorting by clicking the column header. Default
- value is "true". In the example below the
- second column is unavailable for sorting. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
- <rich:column>
- <f:facet name="header">
- <h:outputText value="State Flag"/>
- </f:facet>
- <h:graphicImage value="#{cap.stateFlag}"/>
- </rich:column>
- <rich:column sortBy="#{cap.state}" selfSorted="false">
- <f:facet name="header">
- <h:outputText value="State Name"/>
- </f:facet>
- <h:outputText value="#{cap.state}"/>
- </rich:column>
-</rich:dataTable>
-...]]></programlisting>
- <para>
- <emphasis>
- <property>"sortOrder"</property>
- </emphasis> attribute is used for changing the sorting of
- columns by means of external controls. </para>
- <para>Possible values are:</para>
- <itemizedlist>
- <listitem>
- <para> "ASCENDING" - column is
- sorted in ascending </para>
- </listitem>
- <listitem>
- <para> "DESCENDING" - column is
- sorted in descending </para>
- </listitem>
- <listitem>
- <para> "UNSORTED" - column
- isn't sorted </para>
- </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">
- <f:facet name="header">
- <h:outputText value="Sorting Example"/>
- </f:facet>
- <rich:column sortBy="#{cap.state}" sortOrder="ASCENDING">
- <f:facet name="header">
- <h:outputText value="State Name"/>
- </f:facet>
- <h:outputText value="#{cap.state}"/>
- </rich:column>
- <rich:column sortBy="#{cap.name}" sortOrder="DESCENDING">
- <f:facet name="header">
- <h:outputText value="State Capital"/>
- </f:facet>
- <h:outputText value="#{cap.name}"/>
- </rich:column>
- </rich:dataTable>
-</h:form>
-...]]></programlisting>
- <para>Below you can see the result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:column></property>
- </emphasis> with <emphasis>
- <property>"sortOrder"</property>
- </emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column6.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- <para> In the example above the first column is sorted in descending
- order. But if recurring rows appear in the table the
- relative second column are sorted in ascending order. </para>
-
- <para>If the values of the columns are complex, the <emphasis>
- <property>"sortOrder"</property>
- </emphasis> attribute should point to a bean property containing the sort order.
- See how it's done in the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?c=columns...">LiveDemo</ulink>
- for <emphasis role="bold"><property><rich:columns></property></emphasis>.</para>
-
- <para>You can customize the sorting's icon element using
- "rich-sort-icon" class.</para>
- <note>
- <title>Note</title>
- <para>
- In order to sort a column with the values not in English you can add the <code>org.richfaces.datatableUsesViewLocale</code> context parameter in your web.xml.
- Its value should be "true".
- </para>
- </note>
- <!-- <para> The <emphasis>
- <property>"sortPriority"</property>
- </emphasis> attribute defines a set of column
- <property>ids</property> in the order the columns could be
- set. </para>
- <para> If the columns sort order changed externally sort priorities
- could be used to define which columns will be sorted first. </para> -->
- <!--para>
- Note that <emphasis><property>"sortPriority"</property></emphasis> attribute is defined in
- the <emphasis role="bold"><property><rich:dataTable></property></emphasis> component!
- </para-->
- <note>
- <title>Note:</title>
- <para>
- The <emphasis><property>"sortBy"</property></emphasis> and the <emphasis><property>"selfSorted"</property></emphasis> attributes used with the <emphasis role="bold"><property><rich:dataTable></property></emphasis> component.
- Also the <emphasis><property>"selfSorted"</property></emphasis> can be used with the <emphasis role="bold"><property><rich:extendedDataTable></property></emphasis>.
- </para>
- <para> The <emphasis>
- <property>"sortable"</property>
- </emphasis> and the <emphasis><property>"sortExpression"</property></emphasis> attributes used with the <emphasis
- role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> component.</para>
- </note>
- </section>
-
- <section id="filter">
- <title>Filtering</title>
-
- <para> There are two ways to filter the column value: </para>
- <itemizedlist>
- <listitem>
- <para> Using built-in filtering. It uses
- <code>startsWith()</code>
- function to make filtering. In this case
- you need to define <emphasis>
- <property>"filterBy"</property>
- </emphasis> attribute at column you want
- to be filterable. This attribute defines
- iterable object property which is used
- when filtering performed. </para>
- <para> The <emphasis>
- <property>"filterValue"</property>
- </emphasis> attribute is used to get or
- change current filtering value. It could
- be defined with initial filtering value
- on the page or as value binding to
- get/change it on server. If the <emphasis>
- <property>"filterValue"</property>
- </emphasis> attribute isn't
- empty from the beginning table is
- filtered on the first rendering. </para>
- <para> You can customize the input form using
- "rich-filter-input"
- CSS class. </para>
- <para> In order to change filter event you could
- use <emphasis>
- <property>"filterEvent"</property>
- </emphasis> attribute on column, e.g.
- "onblur"(default
- value). </para>
- <!--para>
- The <emphasis><property>"filterDefaultLabel"</property></emphasis> attribute defines the label that appears instead of input field.
- </para-->
- <para>Below you can see the example:</para>
- <para>
- <emphasis role="bold"
- >Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="500px">
- <rich:column filterBy="#{cap.state}" filterValue="#{filterName.filterBean}" filterEvent="onkeyup">
- <h:outputText value="#{cap.state}"/>
- </rich:column>
- <rich:column filterBy="#{cap.name}" filterEvent="onkeyup">
- <h:outputText value="#{cap.name}"/>
- </rich:column>
-</rich:dataTable>
-...]]></programlisting>
- <para> This is the result: </para>
- <figure>
- <title>Built-in filtering feature usage</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/column8.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- <listitem>
- <para> Using external filtering. In this case you
- need to write your custom filtering
- function or expression and define
- controls. </para>
- <para> The <emphasis>
- <property>"filterExpression"</property>
- </emphasis> attribute is used to define
- expression evaluated to boolean value.
- This expression checks if the object
- satisfies filtering condition. </para>
- <para> The <emphasis>
- <property>"filterMethod"</property>
- </emphasis> attribute is defined with
- method binding. This method accepts on
- Object parameter and return boolean
- value. So, this method also could be
- used to check if the object satisfies
- filtering condition. The usage of this
- attribute is the best way for
- implementing your own complex business
- logic. </para>
- <para>See the following example:</para>
- <para>
- <emphasis role="bold"
- >Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap" id="table">
- <rich:column filterMethod="#{filteringBean.filterStates}">
- <f:facet name="header">
- <h:inputText value="#{filteringBean.filterValue}" id="input">
- <a4j:support event="onkeyup" reRender="table"
- ignoreDupResponses="true" requestDelay="700" focus="input" />
- </h:inputText>
- </f:facet>
- <h:outputText value="#{cap.state}" />
- </rich:column>
- <rich:column filterExpression="#{fn:containsIgnoreCase(cap.timeZone, filteringBean.filterZone)}">
- <f:facet name="header">
- <h:selectOneMenu value="#{filteringBean.filterZone}">
- <f:selectItems value="#{filteringBean.filterZones}" />
- <a4j:support event="onchange" reRender="table" />
- </h:selectOneMenu>
- </f:facet>
- <h:outputText value="#{cap.timeZone}" />
- </rich:column>
-</rich:dataTable>
-...]]></programlisting>
- </listitem>
- </itemizedlist>
- </section>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method</property>.
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <para>Skin parameters redefinition for <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="SPR">component</link>.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>Custom style classes for <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="DofCCS">component</link>. </para>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="SPR"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-table-cell{
- font-style: italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example cells font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:column></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:column></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight: bolder;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:column> </property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:column styleClass="myClass">
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font weight for second
- column was changed.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>Vizit
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=column">Column</ulink> page at
- RichFaces live demo for examples of component usage and their sources.</para>
- <para>"
- <ulink url="http://www.jboss.org/community/docs/DOC-9607">Using the "rendered" attribute of <rich:column></ulink>" article
- in RichFaces cookbook at JBoss portal gives an example of code of the component usage case.
- </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:columnGroup</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component combines columns in one row to organize complex subparts of a table.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:columnGroup></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columnGroup_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Completely skinned table columns and child elements</para></listitem>
- <listitem><para>Possibility to combine columns and rows inside</para></listitem>
- <listitem><para>Possibility to update a limited set of strings with Ajax </para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columnGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,289 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>rich:columnGroup</keyword>
-<keyword>HtmlcolumnGroup</keyword>
-</keywordset>
-</sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ColumnGroup</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlColumnGroup</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ColumnGroup</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ColumnGroupRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ColumnGroupTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>columnGroup</property> on a page, use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:columnGroup>
- <rich:column>
- <h:outputText value="Column1"/>
- </rich:column>
- <rich:column>
- <h:outputText value="Column2"/>
- </rich:column>
-</rich:columnGroup>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlColumnGroup;
-...
-HtmlColumnGroup myRow = new HtmlColumnGroup();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold"><property><rich:columnGroup></property></emphasis> component combines columns set wrapping them into the <emphasis role="bold"><property><tr></property></emphasis> element and outputting them
- into one row. Columns are combined in a group the same way as when the <emphasis ><property>"breakBefore"</property></emphasis> attribute is used for
- columns to add a moving to the next rows, but the first variant is clearer from a source code. Hence, the
- following simple examples are very same.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">
- <rich:column colspan="3">
- <f:facet name="header">State Flag</f:facet>
- <h:graphicImage value="#{cap.stateFlag}"/>
- </rich:column>
- <rich:columnGroup>
- <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:columnGroup>
-</rich:dataTable>
-...
-]]></programlisting>
-<para>And representation without a grouping:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-<programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">
- <rich:column colspan="3">
- <f:facet name="header">State Flag</f:facet>
- <h:graphicImage value="#{cap.stateFlag}"/>
- </rich:column>
- <rich:column breakBefore="true">
- <h:outputText value="#{cap.state}"/>
- </rich:column>
- <rich:column breakBefore="true">
- <h:outputText value="#{cap.name}"/>
- </rich:column>
- <rich:column >
- <h:outputText value="#{cap.timeZone}"/>
- </rich:column>
-</rich:dataTable>
-....
-]]></programlisting>
-<para>The result is:</para>
-<figure>
- <title>Generated <emphasis role="bold"><property><rich:columnGroup></property></emphasis> component
- with <emphasis ><property>"breakBefore"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columnGroup2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>It's also possible to use the component for output of complex headers in a table. For example adding
- of a complex header to a facet for the whole table looks the following way:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<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>
-...
-]]></programlisting>
-<para>Generated on a page as:</para>
-<figure>
- <title><emphasis role="bold"><property><rich:columnGroup></property></emphasis>with complex headers</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columnGroup3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:columnGroup></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:columnGroup></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <para>Skin parameters redefinition for <emphasis role="bold"><property><rich:columnGroup></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> <link linkend="SPR">component</link>.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>Custom style classes for <emphasis role="bold">
- <property><rich:columnGroup></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis><link linkend="DofCCS">component</link>.
- </para>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:columnGroup></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="SPR"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-table-cell{
- color: #316ac5;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columnGroup_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example cells color was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:columnGroup></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:columnGroup></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #c0c0c0;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"columnClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:columnGroup> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:columnGroup columnClasses="myClass">
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columnGroup_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the background color for columns was changed.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=colum..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:columnGroup></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:columns</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> is a component, that allows you to create a <property>dynamic</property> set of columns from your model.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:columns></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columns_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Dynamic tables creation</para></listitem>
- <listitem><para>Possibility to combine columns with the help of <emphasis ><property>"colspan"</property></emphasis> and <emphasis ><property>"breakBefore"</property></emphasis></para></listitem>
- <listitem><para>Possibility to combine rows with the help of <emphasis ><property>"rowspan"</property></emphasis> </para></listitem>
- <listitem><para><link linkend="sort">Sorting column values</link></para></listitem>
- <listitem><para><link linkend="filter">Filtering column values</link></para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/columns.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,493 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:columns</keyword>
- <keyword>columns</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Column</entry>
- </row>
- <!--row>
- <entry>component-class</entry>
- <entry></entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry></entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry></entry>
- </row-->
- <row>
- <entry>tag-class</entry>
- <entry> org.richfaces.taglib.ColumnsTagHandler
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para> To create the simplest variant on a page use the following syntax: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
- <rich:columns value="#{capitalsBean.labels}" var="col" index="index">
- <h:outputText value="#{cap[index]}" />
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlColumn;
-...
-HtmlColumn myColumns = new HtmlColumn();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para> The <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> component gets a list from data model and outputs
- corresponding set of columns inside <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> on a page. It is possible to use <emphasis>
- <property>"header"</property>
- </emphasis> and <emphasis>
- <property>"footer"</property>
- </emphasis> facets with <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> component. </para>
- <para> The <emphasis>
- <property>"value"</property>
- </emphasis> and <emphasis>
- <property>"var"</property>
- </emphasis> attributes are used to access the values of collection. </para>
- <para>The simple example is placed below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
- <rich:columns value="#{capitalsBean.labels}" var="col" index="index">
- <f:facet name="header">
- <h:outputText value="#{col.text}" />
- </f:facet>
- <h:outputText value="#{cap[index]}" />
- <f:facet name="footer">
- <h:outputText value="#{col.text}" />
- </f:facet>
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
- <para> The <emphasis>
- <property>"columns"</property>
- </emphasis> attribute defines the count of columns. </para>
- <para> The <emphasis>
- <property>"rowspan"</property>
- </emphasis> attribute defines the number of rows to be displayed. If
- the value of this attribute is zero, all remaining rows in the table
- are displayed on a page. </para>
- <para> The <emphasis>
- <property>"begin"</property>
- </emphasis> attribute contains the first iteration item. Note, that
- iteration begins from zero. </para>
- <para> The <emphasis>
- <property>"end"</property>
- </emphasis> attribute contains the last iteration item. </para>
- <para> With the help of the attributes described below you can customize the
- output, i.e. define which columns and how many rows appear on a page. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
- <rich:columns value="#{capitalsBean.labels}" var="col" index="index" rowspan="0" columns="3" begin="1" end="2">
- <f:facet name="header">
- <h:outputText value="#{col.text}" />
- </f:facet>
- <h:outputText value="#{cap[index]}" />
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
- <para> In the example below, columns from first to second and all rows are shown
- in the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> . </para>
- <para>The result is:</para>
- <figure>
- <title> Generated <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> with columns from first to second and all rows </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columns2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para> The <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> component does not prevent to use <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> . In the following example one column renders in any way
- and another columns could be picked from the model. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{rowBean.rows}" var="row">
- <rich:column>
- <h:outputText value ="#{row.columnValue}"/>
- </rich:column>
- <rich:columns value="#{colBean.columns}" var="col">
- <f:facet name="header">
- <h:outputText value="#{col.header}"/>
- </f:facet>
- <h:outputText value="#{row.columnValue}"/>
- <f:facet name="footer">
- <h:outputText value="#{col.footer}"/>
- </f:facet>
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
- <para>
- Now, you can use a few <emphasis role="bold"><property><rich:columns></property></emphasis> together with <emphasis role="bold"><property><rich:column></property></emphasis> within the one table:
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{dataTableScrollerBean.model}" var="model" width="500px" rows="5">
- <f:facet name="header">
- <h:outputText value="Cars Available"></h:outputText>
- </f:facet>
- <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">
- <f:facet name="header">
- <h:outputText value="#{columns.header}" />
- </f:facet>
- <h:outputText value="#{model[ind].model} " />
- </rich:columns>
- <rich:column>
- <f:facet name="header">
- <h:outputText value="Price" />
- </f:facet>
- <h:outputText value="Price" />
- </rich:column>
- <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">
- <f:facet name="header">
- <h:outputText value="#{columns.header}" />
- </f:facet>
- <h:outputText value="#{model[ind].mileage}$" />
- </rich:columns>
-</rich:dataTable>
-...]]>
- </programlisting>
-
- <para> In order to group columns with text information into one row, use the <emphasis>
- <property>"colspan"</property>
- </emphasis> attribute, which is similar to an HTML one. In the
- following example the third column contains 3 columns. In addition,
- it's necessary to specify that the next column begins from
- the first row with the help of the <code>breakBefore =
- "true"</code> . </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{columns.data1}" var="data">
- <rich:column>
- <h:outputText value="#{column.Item1}" />
- </rich:column>
- <rich:column>
- <h:outputText value="#{column.Item2}" />
- </rich:column>
- <rich:column>
- <h:outputText value="#{column.Item3}" />
- </rich:column>
- <rich:columns columns="3" colspan="3" breakBefore="true">
- <h:outputText value="#{data.str0}" />
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
-
- <!--para>As a result the following structure is rendered:</para>
- <figure>
- <title><rich:column> modified with colspan and breakbefore attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column3.png"/>
- </imageobject>
- </mediaobject>
- </figure-->
-
- <para> The same way is used for <property>columns</property> grouping with the <emphasis>
- <property>"rowspan"</property>
- </emphasis> attribute that is similar to an HTML. The only thing to
- add in the example is an instruction to move onto the next row for
- each next after the second column. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{columns.data1}" var="data">
- <rich:columns columns="2" rowspan="3">
- <h:outputText value="#{data.str0}" />
- </rich:columns>
- <rich:column>
- <h:outputText value="#{column.Item1}" />
- </rich:column>
- <rich:column breakBefore="true">
- <h:outputText value="#{column.Item2}" />
- </rich:column>
- <rich:column breakBefore="true">
- <h:outputText value="#{column.Item3}" />
- </rich:column>
-</rich:dataTable>
-...
-]]></programlisting>
-
- <!--para>As a result:</para>
- <figure>
- <title><rich:column> generated with rowspan attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/column4.png"/>
- </imageobject>
- </mediaobject>
- </figure-->
- <note>
- <title>Note:</title>
- <para> The <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> tag is initialized during components tree
- building process. This process precedes page rendering at
- "Render Response" JSF phase. To be
- rendered properly the component needs all it variables to be
- initialized while the components tree is being building. A
- <emphasis>javax.servlet.jsp.JspTagException</emphasis>
- occurs if <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> uses variables passed from other components, if
- these variables are initialized during rendering. Thus, when
- <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> is asking for such variables they do not already
- exist. Use <property><c:forEach></property>
- JSP standard tag as workaround. Compare two examples below. </para>
- <para> This code calls the exception: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{bean.data}" var="var">
- <rich:columns value="#{var.columns}">
- ...
- </rich:columns>
-</rich:dataTable>
-...]]></programlisting>
- <para> This code works properly: </para>
- <programlisting role="XML"><![CDATA[...
-<c:forEach items="#{bean.data}" var="var">
- <rich:columns value="#{var.columns}">
- ...
- </rich:columns>
-</c:forEach>
-...]]></programlisting>
- </note>
-
-
-<note><title>Note:</title>
- <para>Since 3.3.0GA <emphasis role="bold"><property><rich:columns></property></emphasis> requires explicit definition of <emphasis><property>"id"</property></emphasis> for children components to ensure that decode process works properly.
- The example of how you can define unique <emphasis><property>"id"</property></emphasis> for children component: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:columns value="#{bean.columns}" var="col" index="ind" ... >
- <h:inputText id="input#{ind}" value="">
- <a4j:support id="support#{ind}" event="onchange" reRender="someId" />
- </h:inputText>
-</rich:columns>
-...]]></programlisting>
- <para>Only if <emphasis><property>"id"</property></emphasis> defined as shown above Ajax after onchange event will be processed as expected. </para>
-
-</note>
-
-
-
- <para>Sorting and filtering for the <emphasis role="bold"><property><rich:columns></property></emphasis> component works the same
- as for <emphasis role="bold"><property><rich:column></property></emphasis>. See the <link linkend="sortAndFilter">"Sorting and Filtering"</link> section.</para>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para> For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis>
- </para>
- <para> There are two ways to redefine the appearance of all <emphasis
- role="bold">
- <property><rich:columns></property>
- </emphasis> components at once: </para>
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
- <listitem>
- <para> Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> component </para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <para> Skin parameters redefinition for <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="SPR">component</link> . </para>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para> Custom style classes for <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="DofCCS">component</link> . </para>
-
- <para> In order to redefine styles for all <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="SPR">above</link> ) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-table-subheadercell{
- color: #a0a0a0;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columns_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> In the example column header cells color was changed. </para>
-
- <para> Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:columns></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- font-style: oblique;
-}
-...]]></programlisting>
- <para> The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> is defined as it's shown in the example below: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:columns styleClass="myClass">
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title> Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/columns_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> As it could be seen on the picture above, the font style for columns was
- changed. </para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columns"
- > On the component LiveDemo page </ulink> you can found some additional information
- for <emphasis role="bold">
- <property><rich:columns></property>
- </emphasis> component usage. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:comboBox</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:comboBox></property></emphasis> is a component creates combobox element with built-in Ajax capability.
- </para>
- <figure>
- <title><emphasis role="bold"><property><rich:comboBox></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>Client-side suggestions</para>
- </listitem>
- <listitem>
- <para>Browser like selection</para>
- </listitem>
- <listitem>
- <para>Smart user-defined positioning</para>
- </listitem>
- <!--listitem>Possible to set the popup appearance delay through <emphasis><property>"showDelay"</property></emphasis>
- or <emphasis><property>"minChars"</property></emphasis> attributes
- </listitem-->
- <listitem>
- <para>Seam entity converter support</para>
- </listitem>
- <listitem>
- <para>Highly customizable look and feel</para>
- </listitem>
- <listitem>
- <para>Disablement support</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/comboBox.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,921 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:comboBox</keyword>
- <keyword>comboBox</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ComboBox</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlComboBox</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ComboBox</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.ComboBoxRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ComboBoxTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" />
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlComboBox;
-...
-HtmlComboBox myComboBox = new HtmlComboBox();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis>
- is a simplified suggestion box component, that provides input with client-side suggestions.
- <!--
- component consists of an <property>input field</property>, the <property>button</property> and the <property>popup list</property> of suggestions
- attached to input. If you want to see the popup list you can press the <property>button</property> or type the first letter of suggested word in the <property>input field</property>.
- -->
-
- The component could be in two states:
-
- <!-- NEED DESCRIPTION "HOW TO MANAGE THIS"-->
-
- <itemizedlist>
- <listitem><para>Default - only input and button is shown</para></listitem>
- <listitem><para>Input, button and a popup list of suggestions attached to input is shown</para></listitem>
- </itemizedlist>
- </para>
- <para>
- There are two ways to get values for the popup list of suggestions:
- </para>
- <itemizedlist>
- <listitem>
- <para>Using the <emphasis><property>"suggestionValues"</property></emphasis> attribute, that defines the suggestion collection</para>
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" />
-...]]></programlisting>
- </listitem>
- <listitem>
- <para>
- Using the <emphasis role="bold"><property><f:selectItem /></property></emphasis> or <emphasis role="bold">
- <property><f:selectItems /></property></emphasis> JSF components.
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" valueChangeListener="#{bean.selectionChanged}">
- <f:selectItems value="#{bean.selectItems}"/>
- <f:selectItem itemValue="Oregon"/>
- <f:selectItem itemValue="Pennsylvania"/>
- <f:selectItem itemValue="Rhode Island"/>
- <f:selectItem itemValue="South Carolina"/>
-</rich:comboBox>
-...]]></programlisting>
- <note>
- <title>Note:</title>
- <para>
- These JSF components consider only the <emphasis><property>"value"</property></emphasis> attribute for this component.
- </para>
- </note>
- </listitem>
- </itemizedlist>
- <para> Popup list content loads at page render time. No additional requests could be performed on the popup calling.
- </para>
- <para>
- The <emphasis><property> "value"</property></emphasis> attribute stores value from input after submit.
- </para>
- <para>
- The <emphasis><property> "directInputSuggestions"</property></emphasis> attribute defines, how the first value from the suggested one appears in an input field.
- If it's "true" the first value appears with the suggested part highlighted.
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" directInputSuggestions="true" />
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> with <emphasis><property> "directInputSuggestions"</property></emphasis> attribute.</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- The <emphasis><property> "selectFirstOnUpdate"</property></emphasis> attribute defines if the first value from suggested is selected in a popup list.
- If it's "false" nothing is selected in the list before a user hovers some item with the mouse.
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" selectFirstOnUpdate="false" />
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> with <emphasis><property> "selectFirstOnUpdate"</property></emphasis> attribute.</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <!--para>
- The <emphasis><property> "filterNewValues"</property></emphasis> attribute defines the appearance of values in the list.
- If it's "true" only the part of a list, which satisfies the prefix entered appears in a popup list.
- If it's "false" all values appear in the popup list and the list is scrolled to the first value that satisfies the prefix.
- </para-->
- <para>
- The <emphasis><property>"defaultLabel"</property></emphasis> attribute defines the default label of the input element. Simple example is placed below.
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" defaultLabel="Select a city..." />
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> with <emphasis><property> "defaultLabel"</property></emphasis> attribute.</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- With the help of the <emphasis><property>"disabled"</property></emphasis> attribute you can disable the whole
- <emphasis role="bold"><property><rich:comboBox></property></emphasis> component. See the following example.
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" defaultLabel="Select a city..." disabled="true" />
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> with <emphasis><property> "disabled"</property></emphasis> attribute.</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox6.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- The <emphasis><property>"enableManualInput"</property></emphasis> attribute enables/disables input field, so when <code>enableManualInput = "false"</code>,
- user can only pick the value manually and has no possibility to type in the value (default value is "false").
- </para>
- <!--para>
- The <emphasis role="bold"><property><rich:comboBox></property></emphasis> component provides the possibility to use
- specific event attribute <emphasis><property> "onlistcall"</property></emphasis> which is fired before the list opening.
- </para-->
-
- <para>
- The <emphasis role="bold"><property><rich:comboBox></property></emphasis> component provides to use
- specific event attributes:
- <itemizedlist>
- <listitem><para>
- <emphasis><property> "onlistcall"</property></emphasis>which is fired before the list opening and gives you a possibility to cancel list popup/update
- </para></listitem>
- <listitem><para>
- <emphasis><property> "onselect"</property></emphasis>which gives you a possibility to send Ajax request when item is selected
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>
- The <emphasis role="bold"><property><rich:comboBox></property></emphasis> component allows to use sizes attributes:
- <itemizedlist>
- <listitem><para>
- <emphasis><property> "listWidth"</property></emphasis> and <emphasis><property> "listHeight"</property></emphasis> attributes
- specify popup list sizes with values in pixels
- </para></listitem>
- <listitem><para>
- <emphasis><property> "width"</property></emphasis> attribute customizes the size of input element with values in pixels.
- </para></listitem>
- </itemizedlist>
- </para>
- <!-- <para>It's possible to handle events for comboBox from JavaScript code. A simplest example of usage JavaScript API is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:comboBox defaultLabel="Enter some value" id="comboBoxID">
- ...
- </rich:comboBox>
-...
-<h:commandButton value="Enable" onclick="#{rich:component('comboBoxID')}.enable(event)"/>
-...]]></programlisting> -->
-
- </section>
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>showList()</entry>
- <entry>Shows the popup list</entry>
- </row>
- <row>
- <entry>hideList()</entry>
- <entry>Hides the popup list</entry>
- </row>
- <row>
- <entry> enable()</entry>
- <entry > Enables the control for input</entry>
- </row>
- <row>
- <entry> disable()</entry>
- <entry >Disables the control for input</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a popup list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a button background, inactive button background, button background in pressed and disabled state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-left-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an inactive button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-left-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-left-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a hovered button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a font</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a font in inactive state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a font in disabled state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an input field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an inactive input field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled input field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a selected item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox_cn1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox_cn2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="comboBoxC">
- <title>Classes names that define popup list representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-combobox-shell</entry>
- <entry>Defines styles for a wrapper <div> element of a list</entry>
- </row>
- <row>
- <entry>rich-combobox-list-position</entry>
- <entry>Defines position of a list</entry>
- </row>
- <row>
- <entry>rich-combobox-list-decoration</entry>
- <entry>Defines styles for a list</entry>
- </row>
- <row>
- <entry>rich-combobox-list-scroll</entry>
- <entry>Defines styles for a list scrolling</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define font representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-combobox-font</entry>
- <entry>Defines styles for a font</entry>
- </row>
- <row>
- <entry>rich-combobox-font-inactive</entry>
- <entry>Defines styles for an inactive font</entry>
- </row>
- <row>
- <entry>rich-combobox-font-disabled</entry>
- <entry>Defines styles for a disabled font</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define input field representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-combobox-input</entry>
- <entry>Defines styles for an input field</entry>
- </row>
- <row>
- <entry>rich-combobox-input-disabled</entry>
- <entry>Defines styles for an input field in disabled state</entry>
- </row>
- <row>
- <entry>rich-combobox-input-inactive</entry>
- <entry>Defines styles for an inactive input field</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define item representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-combobox-item</entry>
- <entry>Defines styles for an item</entry>
- </row>
- <row>
- <entry>rich-combobox-item-selected</entry>
- <entry>Defines styles for a selected item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define button representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-combobox-button</entry>
- <entry>Defines styles for a button</entry>
- </row>
- <row>
- <entry>rich-combobox-button-inactive</entry>
- <entry>Defines styles for an inactive button</entry>
- </row>
- <row>
- <entry>rich-combobox-button-disabled</entry>
- <entry>Defines styles for a button in disabled state</entry>
- </row>
- <row>
- <entry>rich-combobox-button-hovered</entry>
- <entry>Defines styles for a hovered button</entry>
- </row>
- <row>
- <entry>rich-combobox-button-background</entry>
- <entry>Defines styles for a button background</entry>
- </row>
- <row>
- <entry>rich-combobox-button-background-disabled</entry>
- <entry>Defines styles for a disabled button background</entry>
- </row>
- <row>
- <entry>rich-combobox-button-background-inactive</entry>
- <entry>Defines styles for an inactive button background</entry>
- </row>
- <row>
- <entry>rich-combobox-button-pressed-background</entry>
- <entry>Defines styles for a pressed button background</entry>
- </row>
- <row>
- <entry>rich-combobox-button-icon</entry>
- <entry>Defines styles for a button icon</entry>
- </row>
- <row>
- <entry>rich-combobox-button-icon-inactive</entry>
- <entry>Defines styles for an inactive button icon</entry>
- </row>
- <row>
- <entry>rich-combobox-button-icon-disabled</entry>
- <entry>Defines styles for a disabled button icon</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define shadow representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-combobox-shadow</entry>
- <entry>Defines styles for a wrapper <div> element of a shadow</entry>
- </row>
- <row>
- <entry>rich-combobox-shadow-tl</entry>
- <entry>Defines styles for a top-left element of a shadow</entry>
- </row>
- <row>
- <entry>rich-combobox-shadow-tr</entry>
- <entry>Defines styles for a top-right element of a shadow</entry>
- </row>
- <row>
- <entry>rich-combobox-shadow-bl</entry>
- <entry>Defines styles for a bottom-left element of a shadow</entry>
- </row>
- <row>
- <entry>rich-combobox-shadow-br</entry>
- <entry>Defines styles for a bottom-right element of a shadow</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:comboBox></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="comboBoxC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-combobox-list-decoration{
- background-color:#ecf4fe;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example background color for popup list was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:comboBox></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:comboBox></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"listClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:comboBox></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:comboBox ... listClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>"styleClass"</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/comboBox_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font weight for items was changed.</para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/comboBox.jsf?c=comboBox">ComboBox page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,26 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:commandButton</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:commandButton></property></emphasis>component is very similar to JSF <emphasis role="bold"><property><h:commandButton></property></emphasis>, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back.
- </para>
-
- <figure>
- <title>
- The <emphasis role="bold"><property><a4j:commandButton></property></emphasis> component rendered in Blue Sky skin
- </title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/commandButton_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandButton.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,157 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:commandButton</keyword>
- </keywordset>
- </chapterinfo>
- <para><table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.CommandButton</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Command</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxCommandButton</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxCommandButtonRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table></para>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant of the component on a page use the following syntax:
- </para>
- <para id="CB_example">
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:commandButton reRender="someData" action="#{bean.action}" value="Button"/>]]></programlisting>
- <para>
- The example above creates a button on a page clicking on which causes an Ajax form submit on the server, <code>"action"</code> method performance,
- and rendering the component with <code>"someData"</code> ID after response comes back.
- </para>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxCommandButton;
-...
-HtmlAjaxCommandButton myButton = new HtmlAjaxCommandButton();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:commandButton></property></emphasis> component is used in the same way as JSF <emphasis role="bold"><property><h:commandButton></property></emphasis>.
- The difference is that in case of <emphasis role="bold"><property><a4j:commandButton></property></emphasis> the components to be updated should be specified.
- </para>
-
- <para>
- The example <link linkend="CB_example">above</link> generates the following HTML code:
- </para>
-
- <programlisting role="XML"><![CDATA[<input type="submit" onclick="A4J.AJAX.Submit(request parameters);return false;" value="Button"/>]]></programlisting>
-
- <para>
- Сlicking the generated anchor fires the utility method <code>A4J.AJAX.Submit()</code> that perfroms Ajax request.
- </para>
-
- <note>
- <title>Note:</title>
- <para>
- The <emphasis role="bold"><property><a4j:commandButton></property></emphasis> already has Ajax support built-in and there is no need to add <emphasis role="bold"><property><a4j:support></property></emphasis>.
- </para>
- </note>
-
- <para>
- The usage of the keyword <code>'this'</code> in JavaScript code in the value for <emphasis><property>"oncomplete"</property></emphasis> attribute depends on the location of <emphasis role="bold"><property><a4j:commandButton></property></emphasis>.
- If the <emphasis role="bold"><property><a4j:commandButton></property></emphasis> is situated outside the re-rendered region it is possible to use keyword <property>'this'</property> as in the following example:
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:commandButton action="director.rollCamera" onclick="this.disabled=true" oncomplete="this.disabled=false" />
-</h:form>]]></programlisting>
-
- <para>
- Otherwise, if the <emphasis role="bold"><property><a4j:commandButton></property></emphasis> is contained in a re-rendered region
- than the <emphasis><property>"oncomplete"</property></emphasis> attribute has a problem with obtaining a reference of the
- <property>commandButton</property> object when using the keyword <code>'this'</code>.
- In this case use the <emphasis><property>"oncomplete"</property></emphasis> attribute as in the following example:
- </para>
-
- <programlisting role="XML"><![CDATA[<h:form id="form">
- <a4j:commandButton id="cbutton" action="director.rollCamera" onclick="this.disabled=true" oncomplete="document.getElementById('form:cbutton').disabled=false" />
-</h:form>]]></programlisting>
-
- <para>
- Common JSF navigation could be performed after an Ajax submit and partial rendering, but Navigation Case must be defined as <emphasis role="bold"><property><redirect/></property></emphasis> in order to avoid problems with some browsers.
- </para>
-
- <para>
- As any Core Ajax component that sends Ajax requests and processes server responses the <emphasis role="bold"><property><a4j:commandButton></property></emphasis> has all attributes that provide the required behavior of requests (delay, limitation of submit area and rendering, etc.)
- </para>
-
- <note>
- <title>Note:</title>
- <para>
- When attaching a JavaScript API function to the <emphasis role="bold"><property><a4j:commandButton></property></emphasis> with the help of the <emphasis role="bold"><property><rich:componentControl></property></emphasis> do not use the <emphasis><property>"attachTo"</property></emphasis> attribute of the last one.
- The attribute adds event handlers using <code>Event.observe</code> but <emphasis role="bold"><property><a4j:commandButton></property></emphasis> has no such event.
- The example below will not work:
- </para>
- <programlisting role="XML"><![CDATA[<a4j:commandButton value="Show Current Selection" reRender="table" action="#{dataTableScrollerBean.takeSelection}" id="button">
- <rich:componentControl attachTo="button" for="panel" event="oncomplete" operation="show" />
-</a4j:commandButton>]]></programlisting>
-
- <para>
- This one should work properly:
- </para>
- <programlisting role="XML"><![CDATA[<a4j:commandButton value="Show Current Selection" reRender="table" action="#{dataTableScrollerBean.takeSelection}" id="button">
- <rich:componentControl for="panel" event="oncomplete" operation="show" />
-</a4j:commandButton>]]></programlisting>
- </note>
-
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find in the "<link linkend="process">Decide what to process</link>" guide section.
- </para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>Vizit
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/commandButton.jsf?c=c...">CommandButton demo</ulink> page at RichFaces
- live demo for examples of component usage and their sources.
- </para>
- <!--
- <para>Useful articles:</para>
- <itemizedlist>
- <listitem>
- <para>
-
- </para>
- </listitem>
- </itemizedlist>
- -->
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:commandLink</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para> The <emphasis role="bold">
- <property><a4j:commandLink></property>
- </emphasis>component is very similar to the <emphasis role="bold">
- <property><h:commandLink></property>
- </emphasis> component, the only difference is that an Ajax form submit is generated on a click and it allows dynamic rerendering after a response comes back. It's not necessary to plug any support into the component, as Ajax support is already built in.</para>
-</section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/commandLink.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,135 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:commandLink</keyword>
- </keywordset>
- </chapterinfo>
- <table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.CommandLink</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Command </entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxCommandLink</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxCommandLinkRenderer </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of the component on a page use the following syntax:</para>
- <para id="CL_example">
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:commandLink value="Follow this link" reRender="some ID" action="#{bean.action}" />]]></programlisting>
- <para>
- The example above creates a link on a page clicking on which causes an Ajax form submit on the server, <code>"action"</code> method performance,
- and rendering the component with <code>"someData"</code> ID after response comes back.
- </para>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxCommandLink;
-...
-HtmlAjaxCommandLink myLink = new HtmlAjaxCommandLink();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:commandLink></property></emphasis> component is used in the same way as JSF <emphasis role="bold"><property><h:commandLink></property></emphasis>.
- The difference is that in case of <emphasis role="bold"><property><a4j:commandLink></property></emphasis> the components to be updated should be specified.
- In this chapter we will use the code from <link linkend="RichFacesGreeterindex">RichFaces Greeter</link> and change there <emphasis role="bold"><property><a4j:commandButton></property></emphasis> to <emphasis role="bold"><property><a4j:commandLink></property></emphasis>:
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<a4j:commandLink value="Get greeting" reRender="greeting" />
-...]]></programlisting>
-
- <para>
- It's not necessary to add nested <emphasis role="bold"><property><a4j:support></property></emphasis> as the <emphasis role="bold"><property><a4j:commandLink></property></emphasis> has an Ajax support already built-in.
- As a result of our changes we will get a form with "Get greeting" link instead of the button:
- </para>
- <figure>
- <title>
- The RicjFaces greeter with <emphasis role="bold"><property><a4j:commandLink></property></emphasis>
- </title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/commandLink_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- The example <link linkend="CL_example">above</link> generates the following HTML code:
- </para>
-
- <programlisting role="XML"><![CDATA[<a href="#" onclick="A4J.AJAX.Submit(?"request parameters"); return false;"><span>Get greeting</span></a>]]></programlisting>
-
- <para>
- If you click on the generated anchor the utility method <code>A4J.AJAX.Submit()</code> will be fired.
-
- </para>
-
- <note>
- <title>Note:</title>
- <para>
- Common JSF navigation could be performed after Ajax submit and partial rendering, but Navigation Case must be defined as <emphasis role="bold"><property><redirect/></property></emphasis> in order to avoid problems with some browsers.
- </para>
- </note>
-
- <para>
- As any Core Ajax component that sends Ajax requests and processes server responses the <emphasis role="bold"><property><a4j:commandLink></property></emphasis> has all attributes that provide the required behavior of requests (delay, limitation of submit area and rendering, etc.)
- </para>
-
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
- </para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>Vizit
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/commandLink.jsf?c=com...">CommandLink demo</ulink> page at RichFaces
- live demo for examples of component usage and their sources.
- </para>
- <para>Useful articles:</para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://www.jboss.org/community/docs/DOC-11850">How to use "window.confirm" JavaScript with <a4j:commandLink> "onclick" attribute</ulink>
- in RichFaces cookbook at JBoss portal.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:componentControl</keyword>
- <keyword>componentControl</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> allows to call JavaScript API functions on components after defined events.</para>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>
- Management of components JavaScript API
- </para>
- </listitem>
- <listitem>
- <para>
- Customizable initialization variants
- </para>
- </listitem>
- <listitem>
- <para>
- Customizable activation events
- </para>
- </listitem>
- <listitem>
- <para>
- Possibility to pass parameters to the target component
- </para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/componentControl.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,346 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:componentControl</keyword>
- <keyword>componentControl</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.ComponentControl</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlComponentControl</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.ComponentControl</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.ComponentControlRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.ComponentControlTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:componentControl attachTo="doExpandCalendarID" for="ccCalendarID" event="onclick" operation="Expand" />
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlComponentControl;
-...
-HtmlComponentControl myComponentControl = new HtmlComponentControl();
-...]]></programlisting>
- </section>
-
-
-
- <section>
- <title>Details of Usage</title>
- <para>
- <emphasis role="bold"><property><rich:componentControl></property></emphasis> is a command component, that allows to call JavaScript API function on some defined event.
- Look at the example:
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:componentControl attachTo="doExpandCalendarID" event="onclick" operation="Expand" for="ccCalendarID" />
-...
-]]></programlisting>
- <para>
- In other words it means "clicking on the component with ID <code>doExpandCalendarID</code> expands the component with ID <code>ccCalendarID</code>".
- It can be said, that <emphasis role="bold"><property><rich:componentControl></property></emphasis> makes interact two components with the help of JavaScript API function.
- </para>
- <para>
- The ID of the component the event that invokes JavaScript API function is applied, is defined with <emphasis><property>"attachTo"</property></emphasis> attribute (see the exapmle above).
- If <emphasis><property>"attachTo"</property></emphasis> attribute is not specified, the <emphasis role="bold"><property><rich:componentControl></property></emphasis> is supposed to be attached to it's parent.
- </para>
-
- <programlisting role="XML"><![CDATA[<h:commandButton value="Show Modal Panel">
- <!--componentControl is attached to the commandButton-->
- <rich:componentControl for="ccModalPanelID" event="onclick" operation="show"/>
-</h:commandButton>]]></programlisting>
- <para>
- It is possible to invoke the <emphasis role="bold"><property><rich:componentControl></property></emphasis> handler operation as usual JavaScript function.
- For this purpose it is necessary to specify the name of the JS function with the help of the <emphasis><property>"name"</property></emphasis> attribute:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="text/javascript"><![CDATA[function func (event) {
-}]]></programlisting>
- <programlisting role="XML"><![CDATA[<rich:componentControl name="func" event="onRowClick" for="menu" operation="show" />]]></programlisting>
-
- <para>
- An important <emphasis role="bold"><property><rich:componentControl></property></emphasis> feature, is that it allows transferring parameters, with the help of special attribute <emphasis><property>"params"</property></emphasis>:
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:componentControl name="func" event="onRowClick" for="menu" operation="show" params="#{car.model}"/>
-...]]></programlisting>
- <para>
- The alternative way for parameters transferring uses <emphasis role="bold"><property><f:param></property></emphasis> attribute.
- As the code above, the following code will represent the same functionality:
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:componentControl event="onRowClick" for="menu" operation="show">
- <f:param value="#{car.model}" name="model"/>
-</rich:componentControl>
-...]]></programlisting>
-
-
-
-
-
-
-
-
-
-
- <!-- In order to use the <emphasis role="bold"><property><rich:componentControl></property></emphasis> with another components you need to take the following steps:
-
-
- </para>
- <itemizedlist>
- <listitem><para>Define a name of a function that is generated (definition is similar to a
- definition of <emphasis role="bold">
- <property><a4j:jsFunction></property>
- </emphasis>). An "<code>event</code>" argument is passed to this function.</para></listitem>
- </itemizedlist>
- <para>An example is placed below:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:componentControl name="ffunction" for="comp_ID" operation="show"/>
-...
-]]></programlisting>
- <para>According to this code a function with name <code>ffunction</code>
- is generated. It is used in JavaScript code to trigger an operation on the target component
- with defined <code>id="comp_ID"</code>.</para>
- <para>The generated function is shown below:</para>
- <programlisting role="JAVA"><![CDATA[function ffunction (event) {
-}
-]]></programlisting>
- <itemizedlist>
- <listitem><para>Attach to a parent component (usage is similar to <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis> component).</para></listitem>
- </itemizedlist>
- <para>An example is placed below:</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:modalPanel id="ccModalPanelID" onshow="alert(event.parameters.show)" onhide="alert(event.parameters.hide)">
- <h:outputText value="#{bean.text}"/>
-</rich:modalPanel>
-<h:commandButton value="Show Modal Panel">
- <rich:componentControl for="ccModalPanelID" event="onclick" disableDefault="true" operation="show">
- <f:param name="show" value="componentControl work(show)"/>
- <rich:componentControl/>
-</h:commandButton>
-...
-]]></programlisting>
- <para>In the example the <emphasis>
- <property>"for"</property>
- </emphasis> attribute contains value of an <property>id</property> of <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> component. The <emphasis>
- <property>"operation"</property>
- </emphasis> attribute contains a name of JavaScript API function. An <emphasis>
- <property>"event"</property>
- </emphasis> attribute is used to trigger an operation defined with the <emphasis>
- <property>"operation"</property>
- </emphasis> attribute. A set of parameters is defined with <emphasis role="bold">
- <property><f:param></property>
- </emphasis>. As an alternative, the <emphasis>
- <property>"params"</property>
- </emphasis> attribute can be used. Thus, one of main features is that <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> allows to transfer parameters. The <emphasis>
- <property>"disableDefault"</property>
- </emphasis> attribute with "true" value is used instead
- of <code>onclick="return false;"</code> attribute for <emphasis role="bold">
- <property><h:commandButton></property>
- </emphasis> to avoid a problem with form submit and <property>modalPanel</property> showing.</para>
- <itemizedlist>
- <listitem><para>Attach with <emphasis>
- <property>"attachTo"</property>
- </emphasis> attribute.</para></listitem>
- </itemizedlist>
- <para>An example is placed below:</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:calendar popup="#{componentControl.calendarPopup}" id="ccCalendarID" />
- ...
-<f:verbatim>
- <a href="#" id="doExpandCalendarID">Calendar (nextYear)</a>
-</f:verbatim>
-<rich:componentControl attachTo="doExpandCalendarID" for="ccCalendarID" event="onclick" disableDefault="true" operation="nextYear" />
-...
-]]></programlisting>
- <para>In the example the <emphasis>
- <property>"attachTo"</property>
- </emphasis> attribute contais a value of an <property>id</property> of <emphasis role="bold"><property><a></property></emphasis> element.
- The <emphasis>
- <property>"for"</property>
- </emphasis> attribute contains value of an <property>id</property> of <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis> component. The <emphasis>
- <property>"operation"</property>
- </emphasis> attribute contains a name of JavaScript API function. Thus, clicking on the link
- represents the next year on the calendar.
- </para> -->
-
-
-
-
- <para>
- With the help of the <emphasis><property>"attachTiming"</property></emphasis> attribute you can define the page loading phase when
- <emphasis role="bold"><property><rich:componentControl></property></emphasis> is attached to source component. Possible values are:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>immediate</code> — attached during execution of <emphasis role="bold"><property><rich:componentControl></property></emphasis> script
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onavailable</code> — attached after the target component is initialized
- </para>
- </listitem>
- <listitem>
- <para>
- <code>onload</code> — attached after the page is loaded
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> interacts with such components as:
-
-<emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:toolTip></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:modalPanel ></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:calendar></property>
- </emphasis>
-
- </para>
- <para>
- In order to use <emphasis role="bold"><property><rich:componentControl></property></emphasis> with another component you should place the id of this component into <emphasis><property>"for"</property></emphasis> attribute field.
- All operations with defined component you can find in the JavaScript API section of defined component.
- </para>
-
- <programlisting role="XML"><![CDATA[<h:form>
- <rich:toolTip id="toolTip" mode="ajax" value="and then just touch me." direction="top-right" />
-</h:form>
-<h:commandButton id="ButtonID" value="Push me">
- <rich:componentControl attachTo="ButtonID" event="onmouseover" operation="show" for="toolTip" />
-</h:commandButton>]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title>
- <emphasis role="bold"><property><rich:toolTip></property></emphasis> is shown with the help of <emphasis role="bold"><property><rich:componentControl></property></emphasis>.
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/componentControl_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <!--para>One more example of <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> usage is placed below:</para>
- <programlisting role="XML"><![CDATA[...
- <rich:panelMenu id="ccContextMenuPanelMenuID">
- <h:outputText value="click text" />
- </rich:panelMenu>
- <rich:contextMenu id="ccContextMenuID" submitMode="ajax">
- <rich:menuItem icon="/pics/header.png" value="tab1" reRender="cmInfoID">
- <f:param name="cmdParam" value="menu" />
- </rich:menuItem>
- <rich:menuSeparator />
- <rich:menuItem icon="/pics/info.png" value="a" reRender="cmInfoID">
- <f:param name="cmdParam" value="a" />
- </rich:menuItem>
- <rich:menuItem icon="/pics/info.png" value=" b" reRender="cmInfoID">
- <f:param name="cmdParam" value="b" />
- </rich:menuItem>
- <rich:menuItem icon="/pics/info.png" value="c" reRender="cmInfoID">
- <f:param name="cmdParam" value="c" />
- </rich:menuItem>
- </rich:contextMenu>
- <rich:componentControl event="oncontextmenu" attachTo="ccContextMenuPanelMenuID" for="ccContextMenuID" disableDefault="true" operation="Show" />
-...
-]]></programlisting-->
-
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/componentControl.jsf?...">ComponentControl page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- <para>
- Information on JSF <emphasis role="bold"><property><f:param></property></emphasis> component You can find at <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/param.html"><f:param> TLD reference</ulink> in Java Server Faces technology section at Sun portal.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:contextMenu</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:contextMenu></property></emphasis> component is used for creation of multilevelled context menus that are activated after defined events like <emphasis><property>"onmouseover"</property></emphasis>, <emphasis><property>"onclick"</property></emphasis> etc.
- The component could be applied to any element on the page.
- </para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/contextMenu_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para><emphasis><property>"oncontextmenu"</property></emphasis> event support</para></listitem>
- <listitem><para>Disablement support</para></listitem>
- <listitem><para>Pop-up appearance event customization</para></listitem>
- <listitem><para>Usage of shared instance of a menu on a page</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,614 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:contextMenu</keyword>
- <keyword>contextMenu</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ContextMenu</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.ContextMenu</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ContextMenu</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DropDownMenuRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ContextMenuTagHandler</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
- <programlisting role="XML"><![CDATA[<rich:contextMenu />]]></programlisting>
- </section>
- <section>
-
- <title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.ContextMenu;
-...
-html.ContextMenu myContextMenu = new html.ContextMenu();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> is a support-like component. Context menu itself is an invisible panel that
- appears after a particular client-side event (<emphasis><property>"onmouseover"</property></emphasis>, <emphasis><property>"onclick"</property></emphasis>, etc.) occurred on a
- parent component. The event is defined with an <emphasis>
- <property>"event"</property>
- </emphasis> attribute. The component uses <emphasis>
- <property>"oncontextmenu"</property>
- </emphasis> event by default to call a context menu by clicking on the right mouse
- button.</para>
-
- <para>
- <property><link linkend="menuGroup"><rich:menuGroup></link></property>, <property><link linkend="menuItem"><rich:menuItem></link></property> and <property><link linkend="menuSeparator"><rich:menuSeparator></link></property> components
- can be used as nested elements for <emphasis role="bold"><property><rich:contextMenu></property></emphasis>in the same way as for <emphasis role="bold"><property><rich:dropDownMenu></property></emphasis>.
- </para>
- <para>
- By default, the <emphasis role="bold"><property><rich:contextMenu></property></emphasis> disables right mouse click on a page in the context menu area only.
- But if you want to disable browser's context menu completely you should set the <emphasis><property>"disableDefaultMenu"</property></emphasis> attribute value to "true".
- </para>
- <para>
- If <emphasis><property>"attached"</property></emphasis> value is "true" (default value), component is attached to the parent component or to the component,
- which <emphasis><property>"id"</property></emphasis> is specified in the <emphasis><property>"attachTo"</property></emphasis> attribute:
- </para>
-
- <programlisting role="XML"><![CDATA[<rich:contextMenu event="oncontextmenu" attachTo="pic1" submitMode="none">
- <rich:menuItem value="Zoom In" onclick="enlarge();" id="zin"/>
- <rich:menuItem value="Zoom Out" onclick="decrease();" id="zout"/>
-</rich:contextMenu>
-<h:panelGrid columns="1" columnClasses="cent">
- <h:panelGroup id="picture">
- <h:graphicImage value="/richfaces/jQuery/images/pic1.png" id="pic"/>
- </h:panelGroup>
-</h:panelGrid>
-<h:panelGrid columns="1" columnClasses="cent">
- <h:panelGroup id="picture1">
- <h:graphicImage value="/richfaces/jQuery/images/pic2.png" id="pic1"/>
- </h:panelGroup>
-</h:panelGrid>]]></programlisting>
- <para>The <code>"enlarge()"</code> and
- <code>"decrease()"</code> functions definition is placed
- below.</para>
- <programlisting role="JAVA"><![CDATA[<script type="text/javascript">
- function enlarge(){
- document.getElementById('pic').width=document.getElementById('pic').width*1.1;
- document.getElementById('pic').height=document.getElementById('pic').height*1.1;
- }
- function decrease(){
- document.getElementById('pic').width=document.getElementById('pic').width*0.9;
- document.getElementById('pic').height=document.getElementById('pic').height*0.9;
- }
-</script>]]></programlisting>
-
- <para>In the example a picture zooming possibility with <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> component usage was shown. The picture is placed on the <emphasis
- role="bold">
- <property><h:panelGroup></property>
- </emphasis> component. The <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> component is not nested to <emphasis role="bold">
- <property><h:panelGroup></property>
- </emphasis> and has a value of the<emphasis>
- <property>"attachTo"</property>
- </emphasis> attribute defined as <code>"pic1"</code>. Thus,
- the context menu is attached to the component, which
- <emphasis><property>"id"</property></emphasis> is <code>"pic1"</code>.
- The context menu has two items to zoom in (zoom out) a picture by <emphasis><property>"onclick"</property></emphasis> event.
- For earch item corresponding JavaScript function is defined to provide necessary action
- as a result of the clicking on it. For the menu is defined an <emphasis>
- <property>"oncontextmenu"</property>
- </emphasis> event to call the context menu on a right click mouse event.</para>
-
- <para>In the example the context menu is defined for the parent <emphasis role="bold">
- <property><h:panelGroup></property>
- </emphasis> component with a value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute equal to "<code>picture</code>" You
- should be careful with such definition, because a client context menu is looked for a
- DOM element with a client Id of a parent component on a server. If a parent component
- doesn't encode an Id on a client, it can't be found by the <emphasis
- role="bold">
- <property><rich:contextMenu></property>
- </emphasis> and it's attached to its closest parent in a DOM tree.</para>
-
- <para> If the <emphasis>
- <property>"attached"</property>
- </emphasis> attribute has "false" value,
- component activates via JavaScript API with assistance of <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis>. An example is placed below.</para>
- <para id="ex">
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form id="form">
- <rich:contextMenu attached="false" id="menu" submitMode="ajax">
- <rich:menuItem ajaxSingle="true">
- <b>{car} {model}</b> details
- <a4j:actionparam name="det" assignTo="#{ddmenu.current}" value="{car} {model} details"/>
- </rich:menuItem>
- <rich:menuGroup value="Actions">
- <rich:menuItem ajaxSingle="true">
- Put <b>{car} {model}</b> To Basket
- <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Put {car} {model} To Basket"/>
- </rich:menuItem>
- <rich:menuItem value="Read Comments" ajaxSingle="true">
- <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Read Comments"/>
- </rich:menuItem>
- <rich:menuItem ajaxSingle="true">
- Go to <b>{car}</b> site
- <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Go to {car} site"/>
- </rich:menuItem>
- </rich:menuGroup>
- </rich:contextMenu>
-
- <h:panelGrid columns="2">
- <rich:dataTable value="#{dataTableScrollerBean.tenRandomCars}" var="car" id="table" onRowMouseOver="this.style.backgroundColor='#F8F8F8'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" rowClasses="cur">
- <rich:column>
- <f:facet name="header">Make</f:facet>
- <h:outputText value="#{car.make}"/>
- </rich:column>
- <rich:column>
- <f:facet name="header">Model</f:facet>
- <h:outputText value="#{car.model}"/>
- </rich:column>
- <rich:column>
- <f:facet name="header">Price</f:facet>
- <h:outputText value="#{car.price}" />
- </rich:column>
- <rich:componentControl event="onRowClick" for="menu" operation="show">
- <f:param value="#{car.model}" name="model"/>
- <f:param value="#{car.make}" name="car"/>
- </rich:componentControl>
- </rich:dataTable>
- <a4j:outputPanel ajaxRendered="true">
- <rich:panel>
- <f:facet name="header">Last Menu Action</f:facet>
- <h:outputText value="#{ddmenu.current}"></h:outputText>
- </rich:panel>
- </a4j:outputPanel>
- </h:panelGrid>
-</h:form>]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title>The <emphasis>
- <property>"attached"</property>
- </emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/contextMenu2.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the context menu is activated (by clicking on the left mouse button) on
- the table via JavaScript API with assistance of <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis>. The attribute <emphasis>
- <property>"for"</property>
- </emphasis> contains a value of the <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> Id. For menu appearance Java Script API function
- <code>"show()"</code> is used. It is defined with <emphasis>
- <property>"operation"</property>
- </emphasis> attribute for the <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis> component. Context menu is recreated after the every call on a client and
- new {car} and {model} values are inserted in it. In the example for a menu customization
- macrosubstitutions were used.</para>
-
- <para>The <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> component can be defined once on a page and can be used as shared for
- different components (this is the main difference from the <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> component). It's necessary to define it once on a page (as it was
- shown in the example <link linkend="ex">above</link>) and activate it on required
- components via JavaScript API with assistance of <emphasis role="bold">
- <property><rich:componentControl></property>
- </emphasis>.</para>
-
- <para>The <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis>
- <emphasis>
- <property>"submitMode"</property>
- </emphasis> attribute can be set to three possible parameters:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Server</code> — default value, uses regular form submition request;</para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code> — Ajax submission is used for switching;</para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <listitem>
- <para><code>None</code> — neither <code>Server</code> nor <code>Ajax</code> is used.</para>
- </listitem>
- </itemizedlist>
-
- <para>The <emphasis>
- <property>"action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> item's attributes are ignored. Menu items don't fire any submits
- themselves. The behavior is fully defined by the components nested inside items.</para>
-
- <note>
- <title>Notes:</title>
- <itemizedlist>
- <listitem>
- <para>
- When nesting <emphasis role="bold"><property><rich:contextMenu></property></emphasis> into JSF <emphasis role="bold"><property><h:outputText></property></emphasis>,
- specify an <code>id</code> for <emphasis role="bold"><property><h:outputText></property></emphasis>, otherwise, do not nest the <emphasis role="bold"><property><rich:contextMenu></property></emphasis> to make it work properly.
- </para>
- </listitem>
- </itemizedlist>
-
- <itemizedlist>
- <listitem>
- <para>
- As the <emphasis role="bold"><property><rich:contextMenu></property></emphasis> component doesn't provide its own form,
- use it between <emphasis role="bold"><property><h:form></property></emphasis> and <emphasis role="bold"><property></h:form></property></emphasis> tags.
- </para>
- </listitem>
- </itemizedlist>
- </note>
-
-
- <!-- <para>It's possible to handle events for contextMenu from JavaScript code. A simplest example of usage JavaScript API is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:contextMenu ... id="cmID">
- ...
- </rich:contextMenu>
- ...
-<h:commandButton value="Show" onclick="#{rich:component('cmID')}.show(event)"/>
-...]]></programlisting> -->
-
- <!-- Will be done for latest version -->
- <!--para> It's possible to define the direction for list appear in the <emphasis>
- <property>"direction"</property>
- </emphasis>attribute. If the accordance of the popup corner to corner of the label isn't
- set <emphasis>
- <property>"direction"</property>
- </emphasis> attribute must set next accordances: </para>
- <itemizedlist>
- <listitem>
- <para>top-left - a menu drops to the top and left</para>
- </listitem>
-
- <listitem>
- <para>top-right - a menu drops to the top and right</para>
- </listitem>
-
- <listitem>
- <para>bottom-left - a menu drops to the bottom and left</para>
- </listitem>
-
- <listitem>
- <para>bottom-right - a menu drops to the bottom and right</para>
- </listitem>
-
- <listitem>
- <para>auto(default) - smart positioning activation</para>
- </listitem>
- </itemizedlist>
- <para><emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> provides <emphasis>
- <property>"jointPoint"</property>
- </emphasis> attribute to set the point on the label element to connect popup. Possible
- values are:</para>
-
- <itemizedlist>
- <listitem>
- <para>tr - a menu is attached to the top-right point of the button element</para>
- </listitem>
-
- <listitem>
- <para>tl - a menu is attached to the top-left point of the button element</para>
- </listitem>
-
- <listitem>
- <para>br - a menu is attached to the bottom-right point of the button element</para>
- </listitem>
-
- <listitem>
- <para>bl - a menu is attached to the bottom-left point of the button element</para>
- </listitem>
-
- <listitem>
- <para>auto(default) - smart positioning activation</para>
- </listitem>
- </itemizedlist>
-
- <para>In order to set the offset for the menu popup relatively to label, you can use <emphasis>
- <property>"horizontalOffset"</property>
- </emphasis> and <emphasis>
- <property>"verticalOffset"</property>
- </emphasis> attributes. Values can be negative.</para-->
-
- <!-- For menuItem, not for contexMenu -->
- <!--para><property>menuItem</property> provides <emphasis>
- <property>"submitMode"</property>
- </emphasis> attribute to define the way of submission. Possible values : <itemizedlist>
- <listitem>
- <para>Server (default)</para>
- </listitem>
- </itemizedlist>
- <para>The standard form submission is performed and the page is completely refreshed.</para>
- <itemizedlist>
- <listitem>
- <para>Ajax</para>
- </listitem>
- </itemizedlist>
- <para>An Ajax form submission is performed, and specified elements in the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute are rerendered.</para>
- <itemizedlist>
- <listitem>
- <para>None</para>
- </listitem>
- </itemizedlist>
- <para> The <emphasis>
- <property>"action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> item's attributes are ignored. Menu items don't fire any submits
- themselves. The behavior is fully defined by the components nested inside items.</para>
- <template
- <para>emphasis role="bold">
- <property><contextMenu></property>
- </emphasis> could not be generated for every component where it's defined. Templating could
- be used instead. So only representation data could be loaded from server. And markup
- could be evaluated on client side. So it's should accept macrosubstitutions like
- {value} </para>
-
- </para-->
- </section>
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- <entry>Apply to</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>hide()</entry>
- <entry>Hides component or group</entry>
- <entry>Component, group</entry>
- </row>
- <row>
- <entry>show(event, context)</entry>
- <entry>Shows component or group</entry>
- <entry>Component, group</entry>
- </row>
- <!--row>
- <entry>Enable()</entry>
- <entry>Enable component, item, group</entry>
- <entry>Component, Item, Group</entry>
- </row>
- <row>
- <entry>Disable()</entry>
- <entry>Disable component, item or group</entry>
- <entry>Component, Item, Group</entry>
- </row-->
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a border</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a background</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>border-left-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
-
- <figure>
- <title>Style classes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/contextMenu_cn.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="cMC">
- <title>Classes names that define the contextMenu element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-list-border</entry>
- <entry>Defines styles for borders</entry>
- </row>
- <row>
- <entry>rich-menu-list-bg</entry>
- <entry>Defines styles for a general background list</entry>
- </row>
- <row>
- <entry>rich-menu-list-strut</entry>
- <entry>Defines styles for a wrapper <div> element for a strut
- of a popup list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="cMC"> above</link>) and define necessary properties in them. </para>
-
- <programlisting role="CSS"><![CDATA[...
-.rich-menu-item{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/contextMenu_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for row items was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:contextMenu></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:contextMenu></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"rowClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><h:panelGrid> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <programlisting role="XML"><![CDATA[<h:panelGrid ... rowClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/contextMenu_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font weight for row items was changed.</para>
-
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/contextMenu.jsf?c=con...">ContextMenu page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dataDefinitionList</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component to render definition lists that allows choosing data from a model
- and obtains built-in support of Ajax updates.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataDefinitionList></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataDefinitionList_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Completely skinned table rows and child elements</para></listitem>
- <listitem><para>Possibility to update a limited set of rows with Ajax</para></listitem>
- <listitem><para>Possibility to receive values dynamically from a model</para></listitem>
- </itemizedlist>
-</section>
- </section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataDefinitionList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,290 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>HtmlDataDefinitionList</keyword>
-<keyword>rich:dataDefinitionList</keyword>
-</keywordset>
-</sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DataDefinitionList</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDataDefinitionList</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataDefinitionList</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataDefinitionListRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DataDefinitionListTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>dataDefinitionList</property> on a page, use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataDefinitionList value="#{bean.capitals}" var="caps">
- <f:facet name="term">Cars</f:facet>
- <h:outputText value="#{car.model}"/>
-</rich:dataDefinitionList>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataDefinitionList;
-...
-HtmlDataDefinitionList myList = new HtmlDataDefinitionList();
-...
-]]></programlisting>
-</section>
-<section>
-<title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component allows to generate a definition list from a model.</para>
- <para>The component has the <emphasis>
- <property>"term"</property>
- </emphasis> facet, which corresponds to the <emphasis>
- <property>"type"</property>
- </emphasis> parameter for the <emphasis role="bold">
- <property><dt></property>
- </emphasis> HTML element.</para>
- <para>Here is an example:</para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataDefinitionList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" first="4" title="Cars">
- <f:facet name="term">
- <h:outputText value="#{car.make} #{car.model}"></h:outputText>
- </f:facet>
- <h:outputText value="Price:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.price}" /><br/>
- <h:outputText value="Mileage:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.mileage}" /><br/>
- </rich:dataDefinitionList>
-</h:form>
-...
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component with <emphasis>
- <property>"term"</property>
- </emphasis> facet</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataDefinitionList2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the <emphasis>
- <property>"rows"</property>
- </emphasis> attribute limits a number of output elements of the list.</para>
-
- <para>The <emphasis>
- <property>"first"</property>
- </emphasis> attribute defines the first element for output. <emphasis>
- <property>"title"</property>
- </emphasis> is used for a popup title.</para>
-
- <para>The <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component could be partially updated with Ajax. The <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that are updated after an Ajax request, you need to pass an array with key (lines) of the list that you want to be updated after the Ajax request is executed.</para>
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataDefinitionList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
- binding="#{listBean.dataList}" id="list">
- ...
-</rich:dataDefinitionList>
-...
-<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
-...
-]]></programlisting>
-
- <para> In the example the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
-
-</section>
-
- <section>
-
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataDefinitionList_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_dDL">
- <title>Classes names that define a list appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-deflist</entry>
- <entry>Defines styles for an html <dl> element</entry>
- </row>
- <row>
- <entry>rich-definition</entry>
- <entry>Defines styles for an html <dd> element</entry>
- </row>
- <row>
- <entry>rich-definition-term</entry>
- <entry>Defines styles for an html <dt> element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:dataDefinitionList></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_dDL"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-definition-term{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataDefinitionList_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a term font weight was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:dataDefinitionList></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:dataDefinitionList></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dataDefinitionList ... rowClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataDefinitionList_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for rows was changed.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataD..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:dataDefinitionList></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dataFilterSlider</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A slider-based action component is used for filtering table data.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataFilterSlider></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataFilterSlider_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Filter any UIData based component in dependency on its child's values</para></listitem>
- <listitem><para>Fully skinnable control and input elements</para></listitem>
- <listitem><para>Optional value text field with an attribute-managed position</para></listitem>
- <listitem><para>Optional disablement of the component on a page</para></listitem>
- <listitem><para>Optional toolTip to display the current value while a handle is dragged</para></listitem>
- <listitem><para>Dragged state is stable after the mouse moves</para></listitem>
- <listitem><para>Optional manual input possible if a text input field is present</para></listitem>
- <listitem><para>Validation of manual input</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataFilterSlider.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,146 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dataFilterSlider</keyword>
- <keyword>HtmldataFilterSlider</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.dataFilterSlider</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDataFilterSlider</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataFilterSlider</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataFilterSliderRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.dataFilterSliderTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataFilterSlider sliderListener="#{mybean.doSlide}" startRange="0"
- endRange="50000" increment="10000" handleValue="1" />
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataFilterSlider;
-...
-HtmlDataFilterSlider mySlider = new HtmlDataFilterSlider();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property>dataFilterSlider</property>
- </emphasis> component is bound to some UIData component using a <emphasis>
- <property>"for"</property>
- </emphasis> attribute and filters data in a table. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataFilterSlider sliderListener="#{mybean.doSlide}"
- startRange="0"
- endRange="50000"
- increment="10000"
- handleValue="1"
- for="carIndex"
- forValRef="inventoryList.carInventory"
- filterBy="getMileage" />
-...
-<h:dataTable id="carIndex">
- ...
-</h:dataTable>
-...]]></programlisting>
- <para>In this example other two attributes are used for filtering:</para>
- <itemizedlist>
- <listitem><para>
- <emphasis>
- <property>"forValRef"</property>
- </emphasis> is a string which is used in a value attribute of the target UIData component.
- It's designed for resetting the UIData component back to the original list provided
- by a backing bean. </para></listitem>
- <listitem><para>
- <emphasis>
- <property>"filterBy"</property>
- </emphasis> is a getter of an object member that is to be compared to a slider value.
- It's a value that is used in results filtering. </para></listitem>
- </itemizedlist>
- <para><emphasis>
- <property>"handleValue"</property>
- </emphasis> is an attribute for keeping the current handle position on the
- <property>dataFilterSlider</property> component. Based on the current value, appropriate
- values obtained from a getter method defined in <emphasis>
- <property>"filterBy"</property>
- </emphasis> are filtered.</para>
- <para>One more important attribute is a <emphasis>
- <property>"storeResults"</property>
- </emphasis> one that allows the <property>dataFilterSlider</property> component to keep UIData
- target object in session.</para>
- <para>If it's necessary the component submits a form on event of a handle state
- changing, use the <emphasis>
- <property>"submitOnSlide"</property>
- </emphasis> attribute. When the attribute definition is <code>"true"</code>, submission on this event is
- defined.</para>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find in the<link linkend="process"> "Decide what to process " </link> guide section.
- </para>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>The <emphasis role="bold">
- <property><rich:dataFilterSlider></property>
- </emphasis> component has no skin parameters and special <emphasis>
- <property>style classes</property></emphasis>, as it consists of one element generated with a your method on the server. To
- define some style properties such as an indent or a border, it's possible to use <emphasis>
- <property>"style"</property>
- </emphasis> and <emphasis>
- <property>"styleClass"</property>
- </emphasis> attributes on the component.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataFilterSlider.jsf?..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dataFilterSlider></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dataGrid</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component to render data as a grid that allows choosing data from a model
- and obtains built-in support of Ajax updates.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataGrid></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataGrid_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>A completely skinned table and child elements</para></listitem>
- <listitem><para>Possibility to update a limited set of rows with Ajax</para></listitem>
- <listitem><para>Possibility to receive values dynamically from a model</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataGrid.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,313 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>grid</keyword>
- <keyword>rich:dataGrid</keyword>
- <keyword>HtmlDataGrid</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DataGrid</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDataGrid</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataGrid</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataGridRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DataGridTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>dataGrid</property> on a page, use the
- following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car">
- <h:outputText value="#{car.model}"/>
-</rich:dataGrid>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataGrid;
-...
-HtmlDataGrid myList = new HtmlDataGrid();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The component takes a list from a model and outputs it the same way as with <emphasis
- role="bold">
- <property><h:panelGrid></property>
- </emphasis> for inline data. To define grid properties and styles, use the same definitions as
- for <emphasis role="bold"><property><h:panelGrid></property>.</emphasis></para>
- <para>The component allows to:</para>
- <itemizedlist>
- <listitem><para>Use <emphasis>
- <property>"header"</property>
- </emphasis> and <emphasis>
- <property>"footer"</property>
- </emphasis> facets for output</para></listitem>
- <listitem><para>Limit number of output elements (<emphasis>
- <property>"elements"</property>
- </emphasis> attribute) and define first element for output (<emphasis>
- <property>"first"</property>
- </emphasis> attribute)</para></listitem>
- <listitem><para>Bind pages with <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel style="width:150px;height:200px;">
- <h:form>
- <rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car" columns="2" elements="4" first="1">
- <f:facet name="header">
- <h:outputText value="Car Store"></h:outputText>
- </f:facet>
- <rich:panel>
- <f:facet name="header">
- <h:outputText value="#{car.make} #{car.model}"></h:outputText>
- </f:facet>
- <h:panelGrid columns="2">
- <h:outputText value="Price:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.price}"/>
- <h:outputText value="Mileage:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.mileage}"/>
- </h:panelGrid>
- </rich:panel>
- <f:facet name="footer">
- <rich:datascroller></rich:datascroller>
- </f:facet>
- </rich:dataGrid>
- </h:form>
-</rich:panel>
-...
-]]></programlisting>
- <para>This is a result:</para>
-
- <figure>
- <title>Component usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataGrid2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The component was created basing on the <emphasis role="bold">
- <property><a4j:repeat></property>
- </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that are updated after an Ajax request.</para>
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
- binding="#{listBean.dataGrid}" id="grid" elements="4" columns="2">
- ...
-</rich:dataGrid>
-...
-<a4j:commandButton action="#{listBean.action}" reRender="grid" value="Submit"/>
-...]]></programlisting>
-
- <para> In the example <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
- </section>
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- <row>
- <entry>caption</entry>
- <entry>Defines the caption content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
-
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <para>Skin parameters redefinition for <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="SPR">component</link>.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>Custom style classes for <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="DofCCS">component</link>. </para>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible <link linkend="dTC"> classes</link> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-table-footercell{
- color:#ff7800;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataGrid_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example color of footercell was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:dataGrid></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:dataGrid></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"columnClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:dataGrid> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dataGrid ... columnClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataGrid_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for columns was changed.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataGrid.jsf?c=dataGrid"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dataGrid></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dataList</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component to render unordered lists that allows choosing data from a model
- and obtains built-in support of Ajax updates.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataList></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>A completely skinned list and child elements</para></listitem>
- <listitem><para>Possibility to update a limited set of rows with Ajax</para></listitem>
- <listitem><para>Possibility to receive values dynamically from a model</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,305 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>grid</keyword>
- <keyword>rich:dataList</keyword>
- <keyword>HtmlDataList</keyword>
- <keyword>unordered list</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DataList</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDataList</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataList</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataListRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DataListTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>dataList</property> on a page, use the
- following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataList var="car" value="#{dataTableScrollerBean.allCars}" >
- <h:outputText value="#{car.model}"/>
-</rich:dataList>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataList;
-...
-HtmlDataList myList = new HtmlDataList();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> component allows to generate a list from a model.</para>
- <para>The component has the <emphasis>
- <property>"type"</property>
- </emphasis> attribute, which corresponds to the <emphasis>
- <property>"type"</property>
- </emphasis> parameter for the <emphasis role="bold">
- <property><ul></property>
- </emphasis> HTML element and defines a marker type. Possible values for <emphasis>
- <property>"type"</property>
- </emphasis> attribute are: "disc",
- "circle",
- "square".</para>
- <para>Here is an example:</para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" type="disc" title="Car Store">
- <h:outputText value="#{car.make} #{car.model}"/><br/>
- <h:outputText value="Price:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.price} "/><br/>
- <h:outputText value="Mileage:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.mileage} "/><br/>
- </rich:dataList>
-</h:form>
-...
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> component with <emphasis>
- <property>"type"</property>
- </emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the <emphasis>
- <property>"rows"</property>
- </emphasis> attribute limits a number of output elements of the list.</para>
-
- <para>The <emphasis>
- <property>"first"</property>
- </emphasis> attribute defines the first element for output. <emphasis>
- <property>"title"</property>
- </emphasis> is used for a popup title. See the picture below:</para>
-
- <figure>
- <title>The <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> component with <emphasis>
- <property>"title"</property>
- </emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis>
- component could be partially updated with
- Ajax. The <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that are updated after an Ajax request.</para>
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
- binding="#{listBean.dataList}" id="list" rows="5" type="disc">
- ...
-</rich:dataList>
-...
-<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
-...
-]]></programlisting>
-
- <para> In the example <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains the value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
- </section>
- <section>
-
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="dataLC">
- <title>Classes names that define a list appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-datalist</entry>
- <entry>Defines styles for an html <ul> element</entry>
- </row>
- <row>
- <entry>rich-list-item</entry>
- <entry>Defines styles for an html <li> element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="dataLC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-list-item{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for the text of the list item was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:dataList></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:dataList></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#ffead9;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:dataList> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dataList ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataList_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color for <emphasis role="bold"><property><rich:dataList> </property></emphasis> was changed.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataList"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dataList></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dataOrderedList</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component to render ordered lists that allows choosing data from a model
- and obtains built-in support of Ajax updates.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataOderedList></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataOrderedList_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>A completely skinned list and child elements</para></listitem>
- <listitem><para>Possibility to update a limited set of rows with Ajax</para></listitem>
- <listitem><para>Possibility to receive values dynamically from a model</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataOrderedList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,395 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dataOrderedList</keyword>
- <keyword>HtmlDataOrderedList</keyword>
- <keyword>ordered list</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DataOrderedList</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>
- org.richfaces.component.html.HtmlDataOrderedList
- </entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataOrderedList</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataOrderedListRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>
- org.richfaces.taglib.DataOrderedListTag
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant of
- <property>dataOrderedList</property>
- on a page, use the following syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataOrderedList var="car" value="#{dataTableScrollerBean.allCars}" >
- <h:outputText value="#{car.model}"/>
-</rich:dataOrderedList>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataOrderedList;
-...
-HtmlDataOrderedList myList = new HtmlDataOrderedList();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- The
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- component allows to generate an ordered list from a model.
- </para>
- <para>
- The component has the
- <emphasis>
- <property>"type"</property>
- </emphasis>
- attribute, which corresponds to the
- <emphasis>
- <property>"type"</property>
- </emphasis>
- parameter for the
- <emphasis role="bold">
- <property><ol></property>
- </emphasis>
- HTML element and defines a marker type. Possible values for
- <emphasis>
- <property>"type"</property>
- </emphasis>
- attribute are: "A", "a", "I", "i", "1".
- </para>
- <para>Here is an example:</para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataOrderedList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" type="1" title="Car Store">
- <h:outputText value="#{car.make} #{car.model}"/><br/>
- <h:outputText value="Price:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.price}" /><br/>
- <h:outputText value="Mileage:" styleClass="label"></h:outputText>
- <h:outputText value="#{car.mileage}" /><br/>
- </rich:dataOrderedList>
-</h:form>
-...
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- component with the
- <emphasis>
- <property>"type"</property>
- </emphasis>
- attribute
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataOrderedList2.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- In the example the
- <emphasis>
- <property>"rows"</property>
- </emphasis>
- attribute limits a number of output elements of the list.
- </para>
-
- <para>The
- <emphasis>
- <property>"first"</property>
- </emphasis>
- attribute defines the first element for output.
- <emphasis>
- <property>"title"</property>
- </emphasis>
- is used for a popup title.
- </para>
-
- <para>
- The <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- component could be partially updated with
- Ajax. The
- <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis>
- attribute allows to define row keys that are updated after
- an Ajax request.
- </para>
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataOrderedList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
- binding="#{listBean.dataList}" id="list">
- ...
-</rich:dataOrderedList>
-...
-<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
-...
-]]></programlisting>
-
- <para>
- In the example
- <emphasis>
- <property>"reRender"</property>
- </emphasis>
- attribute contains value of the
- <emphasis>
- <property>"id"</property>
- </emphasis>
- attribute for the
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- component. As a result the component is updated after an
- Ajax request.
- </para>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- For skinnability implementation, the components use a
- <emphasis>
- <property>style class redefinition method.</property>
- </emphasis>
- Default style classes are mapped on
- <emphasis>
- <property>skin parameters.</property>
- </emphasis>
- </para>
-
- <para>
- There are two ways to redefine the appearance of all
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- components at once:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>
- Add to your style sheets
- <emphasis>
- <property>style classes</property>
- </emphasis>
- used by a
- <emphasis role="bold">
- <property>
- <rich:dataOrderedList>
- </property>
- </emphasis>
- component
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>
- On the screenshot there are classes names that define styles
- for component elements.
- </para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataOrderedList_cn.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_dOL">
- <title>Classes names that define a list appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-orderedlist</entry>
- <entry>
- Defines styles for an html <ol>
- element
- </entry>
- </row>
- <row>
- <entry>rich-list-item</entry>
- <entry>
- Defines styles for an html <li>
- element
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- In order to redefine styles for all
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- components on a page using CSS, it's enough to create
- classes with the same names (possible classes could be found
- in the tables
- <link linkend="tab_dOL">above</link>
- ) and define necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-orderedlist{
- background-color: #ebf3fd;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataOrderedList_pc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example background color was changed.</para>
-
- <para>
- Also it's possible to change styles of particular
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- component. In this case you should create own style classes
- and use them in corresponding
- <emphasis role="bold">
- <property><rich:dataOrderedList></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes. An example is placed below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dataOrderedList ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>
- Redefinition styles with own classes and
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataOrderedList_oc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- As it could be seen on the picture above, the font style was
- changed.
- </para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataO...">
- On the component LiveDemo page
- </ulink>
- you can see the example of
- <emphasis role="bold">
- <property><rich:dataOrderedList ></property>
- </emphasis>
- usage and sources for the given example.
- </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dataTable</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The component for tables rendering that allows choosing data from a model and obtains
- built-in support of Ajax updates.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:dataTable></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataTable_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>A completely skinned table and child elements</para></listitem>
- <listitem><para>Possibility to insert the complex subcomponents
- <property>"colGroup"</property> and
- <property>"subTable"</property></para></listitem>
- <listitem><para>Possibility to update a limited set of strings with Ajax</para></listitem>
- <listitem><para>Possibility to sort and to filter of columns</para></listitem>
- <listitem><para><link linkend="sort">Sorting column values</link></para></listitem>
- <listitem><para><link linkend="filter">Filtering column values</link></para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,585 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>table</keyword>
- <keyword>rich:dataTable</keyword>
- <keyword>HtmlDataTable</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DataTable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDataTable</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DataTable</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataTableRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DataTableTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
- <rich:column>
- ...
- </rich:column>
-</rich:dataTable>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically from Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDataTable;
-...
-HtmlDataTable myTable = new HtmlDataTable();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> component is similar to the <emphasis role="bold">
- <property><h:dataTable></property>
- </emphasis> one, except Ajax support and skinnability. Ajax support is possible, because the
- component was created basing on the <emphasis role="bold">
- <property><a4j:repeat></property>
- </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that is updated after an Ajax request.</para>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="capitals"
- ajaxKeys="#{bean.ajaxSet}" binding="#{bean.table}" id="table">
- ...
-</rich:dataTable>
-...
-<a4j:commandButton action="#{tableBean.action}" reRender="table" value="Submit"/>
-...
-]]></programlisting>
-
- <para> In the example <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
-
- <para id="table_ex">The component allows to use <emphasis>
- <property>"header"</property>
- </emphasis>, <emphasis>
- <property>"footer"</property>
- </emphasis> and <emphasis>
- <property>"caption"</property>
- </emphasis> facets for output. See an example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">
- <f:facet name="caption">
- <h:outputText value="United States Capitals" />
- </f:facet>
- <f:facet name="header">
- <h:outputText value="Capitals and States Table" />
- </f:facet>
- <rich:column>
- <f:facet name="header">State Flag</f:facet>
- <h:graphicImage value="#{cap.stateFlag}"/>
- <f:facet name="footer">State Flag</f:facet>
- </rich:column>
- <rich:column>
- <f:facet name="header">State Name</f:facet>
- <h:outputText value="#{cap.state}"/>
- <f:facet name="footer">State Name</f:facet>
- </rich:column>
- <rich:column >
- <f:facet name="header">State Capital</f:facet>
- <h:outputText value="#{cap.name}"/>
- <f:facet name="footer">State Capital</f:facet>
- </rich:column>
- <rich:column>
- <f:facet name="header">Time Zone</f:facet>
- <h:outputText value="#{cap.timeZone}"/>
- <f:facet name="footer">Time Zone</f:facet>
- </rich:column>
- <f:facet name="footer">
- <h:outputText value="Capitals and States Table" />
- </f:facet>
-</rich:dataTable>
-...
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> component with facets</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataTable2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Information about sorting and filtering you can find <link linkend="sortAndFilter">in the corresponding section</link>.</para>
- <para>
- You can find information how to remove header's gradient <ulink url="http://wiki.jboss.org/wiki/RichFacesDataTableBackgroundOut"> in the "How to remove rich:dataTable header background " article</ulink>.
- </para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Redefines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Redefines the footer content</entry>
- </row>
- <row>
- <entry>caption</entry>
- <entry>Defines the caption content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="SPR">
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a footer</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableFooterBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a column header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a column footer</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableSubfooterBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for cells</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section id="DofCCS">
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:dataTable></property></emphasis> class names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataTable_cn.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="dTC">
- <title>Classes names that define a whole component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-table</entry>
- <entry>Defines styles for all table</entry>
- </row>
- <row>
- <entry>rich-table-caption</entry>
- <entry>Defines styles for a "caption" facet element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define header and footer elements</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-table-header</entry>
- <entry>Defines styles for a table header row</entry>
- </row>
-
- <row>
- <entry>rich-table-header-continue</entry>
- <entry>Defines styles for all header lines after the first</entry>
- </row>
- <row>
- <entry>rich-table-subheader</entry>
- <entry>Defines styles for a column header</entry>
- </row>
-
- <row>
- <entry>rich-table-footer</entry>
- <entry>Defines styles for a footer row</entry>
- </row>
-
- <row>
- <entry>rich-table-footer-continue</entry>
- <entry>Defines styles for all footer lines after the first</entry>
- </row>
- <row>
- <entry>rich-table-subfooter</entry>
- <entry>Defines styles for a column footer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define rows and cells of a table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-table-headercell</entry>
- <entry>Defines styles for a header cell</entry>
- </row>
-
- <row>
- <entry>rich-table-subheadercell</entry>
- <entry>Defines styles for a column header cell</entry>
- </row>
- <row>
- <entry>rich-table-cell</entry>
- <entry>Defines styles for a table cell</entry>
- </row>
- <row>
- <entry>rich-table-row</entry>
- <entry>Defines styles for a table row</entry>
- </row>
- <row>
- <entry>rich-table-firstrow</entry>
- <entry>Defines styles for a table's first row</entry>
- </row>
-
- <row>
- <entry>rich-table-footercell</entry>
- <entry>Defines styles for a footer cell</entry>
- </row>
-
- <row>
- <entry>rich-table-subfootercell</entry>
- <entry>Defines styles for a column footer cell</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="dTC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-table-cell{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataTable_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font weight for table cell was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:dataTable></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:dataTable></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"headerClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:dataTable></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dataTable ... headerClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dataTable_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for header was changed.</para>
-
- <para>
- Detailed information on how to set
- <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- border to "0px" you can find in the
- <ulink
- url="http://www.jboss.org/community/docs/DOC-11861">
- " How to set rich:dataTable border to 0px article "
- </ulink>
- .
- </para>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=dataT..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> usage and sources for the given example. </para>
- <para>The article about <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> flexibility can be found in the <ulink
- url="http://www.jboss.org/community/docs/DOC-11847"> "rich:dataTable Flexibility " article </ulink>.</para>
- <para>
- <ulink url="http://www.jboss.org/community/docs/DOC-11848">Article on dataTable skinability</ulink> provides you a simple example of skinnability.
-
- </para>
- <para>More information about using <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> and <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> could be found on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059044#..."
- >RichFaces Users Forum</ulink>.
- </para>
- <para>How to use <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> and <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> in a context of Extended Data Model see on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115636"
- >RichFaces Users Forum</ulink>.</para>
-
- <para>From <ulink url="http://www.jboss.org/community/docs/DOC-11861">"rich:dataTable border to 0px "</ulink> article you'll figure out how to set rich:dataTable border to 0px </para>
- <para><ulink url="http://www.jboss.org/community/docs/DOC-11860">dataTable Background Out </ulink> tells you how to remove rich:dataTable header background</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:datascroller</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component designed for providing the functionality of tables scrolling using Ajax
- requests.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:datascroller></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-</section>
- <section>
- <title>Key Features</title>
-
- <itemizedlist>
- <listitem>
- <para>Provides table scrolling functionality</para>
- </listitem>
-
- <listitem>
- <para>Built-in Ajax processing</para>
- </listitem>
-
- <listitem>
- <para>Provides fast controls</para>
- </listitem>
-
- <listitem>
- <para>Skin support</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/datascroller.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,770 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>scroller</keyword>
- <keyword>rich:datascroller</keyword>
- <keyword>Htmldatascroller</keyword>
- <keyword>tables</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Datascroller</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDatascroller</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Datascroller</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DataScrollerRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DatascrollerTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:dataTable id="table">
- ...
-</h:dataTable>
-...
-<rich:datascroller for="table"/>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDatascroller;
-...
-HtmlDatascroller myScroll = new HtmlDatascroller();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> component provides table scrolling functionalitity the
- same as TOMAHAWK scroller but with Ajax requests usage.</para>
- <para> The
- <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> component should be reRendered also with <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> when you changing filter in order to be updated according to the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> current model.
- </para>
- <para>The component should be placed into footer of the parent table or be bound
- to it with the <emphasis>
- <property>"for"</property>
- </emphasis> attribute. Note, that <emphasis>
- <property>"for"</property>
- </emphasis> is evaluated on view build, not on view render, that is
- why it will ignore JSTL tags.</para>
- <para>The table should also have the defined <emphasis>
- <property>"rows"</property>
- </emphasis> attribute limiting the quantity of inputted table rows.</para>
- <para>The scroller could limit the maximum quantity of rendered links on the
- table pages with the help of the <emphasis>
- <property>"maxPages"</property>
- </emphasis> attribute.</para>
- <para>Component provides two controllers groups for switching:</para>
- <itemizedlist>
- <listitem>
- <para>Page numbers for switching onto a particular
- page</para>
- </listitem>
- <listitem>
- <para>The controls of fast switching: <emphasis>
- <property>"first",</property>
- </emphasis>
- <emphasis>
- <property>"last",</property>
- </emphasis>
- <emphasis>
- <property>"next",</property>
- </emphasis>
- <emphasis>
- <property>"previous",</property>
- </emphasis>
- <emphasis>
- <property>"fastforward",</property>
- </emphasis>
- <emphasis>
- <property>"fastrewind"</property>
- </emphasis></para>
- </listitem>
- </itemizedlist>
- <para>The controls of fast switching are created adding the facets component
- with the corresponding name:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[ ...
-<rich:datascroller for="table" maxPages="10">
- <f:facet name="first">
- <h:outputText value="First"/>
- </f:facet>
- <f:facet name="last">
- <h:outputText value="Last"/>
- </f:facet>
-</rich:datascroller>
-...]]></programlisting>
- <figure>
- <title><emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> controls of fast switching</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>The screenshot shows one controller from each group.</para>
- <para> There are also facets used to create the disabled states:
- <code>"first_disabled",</code>
- <code>"last_disabled",</code>
- <code>"next_disabled",</code>
- <code>"previous_disabled",</code>
- <code>"fastforward_disabled",</code>
- <code>"fastrewind_disabled"</code>. </para>
- <para>For the
- <code>"fastforward"/"fastrewind"</code>
- controls customization the additional <emphasis>
- <property>"fastStep"</property>
- </emphasis> attribute is used. The attribute indicates pages quantity
- to switch onto when fast scrolling is used. </para>
-
- <para> The <emphasis>
- <property>"page"</property>
- </emphasis> is a value-binding attribute used to define and save
- current page number. The example is placed below. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form id="myForm">
- <rich:dataTable id="carList" rows="7" value="#{dataTableScrollerBean.allCars}" var="category">
- <f:facet name="header">
- <rich:columnGroup>
- <h:column>
- <h:outputText value="Make" />
- </h:column>
- <h:column>
- <h:outputText value="Model" />
- </h:column>
- <h:column>
- <h:outputText value="Price" />
- </h:column>
- </rich:columnGroup>
- </f:facet>
- <h:column>
- <h:outputText value="#{category.make}" />
- </h:column>
- <h:column>
- <h:outputText value="#{category.model}" />
- </h:column>
- <h:column>
- <h:outputText value="#{category.price}" />
- </h:column>
- </rich:dataTable>
- <rich:datascroller id="sc2" for="carList" reRender="sc1" maxPages="7" page="#{dataTableScrollerBean.scrollerPage}" />
- <h:panelGrid>
- <h:panelGroup>
- <h:outputText value="Set current page number:" />
- <h:inputText value="#{dataTableScrollerBean.scrollerPage}" id="sc1" size="1"/>
- <h:commandButton value="Set" />
- </h:panelGroup>
- </h:panelGrid>
-</h:form>
-...]]></programlisting>
-
- <para> In the example above you can enter the page number you want and set it by
- clicking on the <emphasis role="bold">
- <property><h:commandButton></property>
- </emphasis>. By the way, if you use <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> page links the input field rerenders and current page
- number changes. </para>
- <para>The result should be like below: </para>
- <figure>
- <title>The <emphasis>
- <property>"page"</property>
- </emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <!--
- The <emphasis><property>"pageIndexVar"</property></emphasis> and <emphasis>
- <property>&;pagesVar"</property>
- </emphasis> attributes provide an ability to show the current page and the number of pages in
- the <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis>.
- -->
-
-
- <para> The <emphasis>
- <property>"pageIndexVar"</property>
- </emphasis> and <emphasis>
- <property>"pagesVar"</property>
- </emphasis> attributes define a request scope variables and provide an
- ability to show the current page and the number of pages in the
- <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis>. </para>
- <para> These attributes are used for definition the names of variables, that is
- used in the facet with name <emphasis>
- <property>"pages"</property>
- </emphasis>. An example can be found below: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">
- <rich:column>
- <h:outputText value="#{cap.name}" />
- </rich:column>
- <f:facet name="footer">
- <rich:datascroller pageIndexVar="pageIndex" pagesVar="pages">
- <f:facet name="pages">
- <h:outputText value="#{pageIndex} / #{pages}" />
- </f:facet>
- </rich:datascroller>
- </f:facet>
- </rich:dataTable>
-</h:form>
-...
-]]></programlisting>
- <para> It's possible to insert optional separators between controls.
- For this purpose use a <emphasis>
- <property>"controlsSeparator"</property>
- </emphasis> facet. An example is placed below. </para>
- <programlisting role="XML"><![CDATA[ ...
-<f:facet name="controlsSeparator">
- <h:graphicImage value="/image/sep.png"/>
-</f:facet>
-...]]></programlisting>
- <para> Starting from 3.2.1 of RichFaces multiple <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> instances behavior and page bindings are corrected.
- Incorrect page after model changes handling is added. Phase Listener
- called before RenderResponce scans the page for the <emphasis
- role="bold">
- <property><rich:datascroller></property>
- </emphasis> and performs the following operations: </para>
- <itemizedlist>
- <listitem>
- <para> Checks if the <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> is rendered. (If the checking
- generates an exception, the <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> is considered to be not rendered )
- </para>
- </listitem>
- <listitem>
- <para> If the <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> is rendered - the table to which the
- <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> is attached gets the value of the page
- attribute of <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis>. </para>
- </listitem>
- </itemizedlist>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find in the <link linkend="process"
- >" Decide what to process " </link> guide section. </para>
- <note>
- <title>Note:</title>
- <para>Make sure, that all <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> components, defined for a table, have same
- values for all<emphasis>
- <property>"page"</property>
- </emphasis> attributes. The page, specified in the last <emphasis>
- <property>"page"</property>
- </emphasis>, will be rendered in browser. </para>
- </note>
- </section>
-
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>switchToPage(page)</entry>
- <entry>Switches to the defined page, "page" is Number or String </entry>
- </row>
- <row>
- <entry>next()</entry>
- <entry>Navigates to the next page</entry>
- </row>
- <row>
- <entry>previous()</entry>
- <entry>Navigates to the previous page</entry>
- </row>
- <row>
- <entry>first()</entry>
- <entry>Navigates to the first page</entry>
- </row>
- <row>
- <entry>last()</entry>
- <entry>Navigates to the last page</entry>
- </row>
- <row>
- <entry>fastForward()</entry>
- <entry>Navigates ahead over a certain number of pages. The number of pages to traverse is defined with fastStep attribute</entry>
- </row>
- <row>
- <entry>fastRewind()</entry>
- <entry>Navigates backwards over a certain number of pages. The number of pages to traverse is defined with fastStep attribute</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlsSeparator</entry>
- <entry>Redefines optional separators between controls</entry>
- </row>
- <row>
- <entry>first</entry>
- <entry>Redefines the "first" button with the content set</entry>
- </row>
- <row>
- <entry>first_disabled</entry>
- <entry>Redefines the disabled "first" button with the content set</entry>
- </row>
- <row>
- <entry>last</entry>
- <entry>Redefines the "last" button with the content set</entry>
- </row>
- <row>
- <entry>last_disabled</entry>
- <entry>Redefines the disabled "last" button with the content set</entry>
- </row>
- <row>
- <entry>fastrewind</entry>
- <entry>Redefines the "fastrewind" button with the content set</entry>
- </row>
- <row>
- <entry>fastrewind_disabled</entry>
- <entry>Redefines the disabled "fastrewind" button with the content set</entry>
- </row>
- <row>
- <entry>fastforward</entry>
- <entry>Redefines the "fastforward" button with the content set</entry>
- </row>
- <row>
- <entry>fastforward_disabled</entry>
- <entry>Redefines the disabled "fastforward" button with the content set</entry>
- </row>
- <row>
- <entry>previous</entry>
- <entry>Redefines the "previous" button with the content set</entry>
- </row>
- <row>
- <entry>previous_disabled</entry>
- <entry>Redefines the disabled "previous" button with the content set</entry>
- </row>
- <row>
- <entry>next</entry>
- <entry>Redefines the "next" button with the content set</entry>
- </row>
- <row>
- <entry>next_disabled</entry>
- <entry>Redefines the disabled "next" button with the content set</entry>
- </row>
- <row>
- <entry>pages</entry>
- <entry>Redefines the pages buttons with the content set</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a wrapper element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for an active button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for an inactive button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn2">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-datascr</entry>
- <entry>Defines styles for a wrapper
- <div> element of
- a datascroller</entry>
- </row>
- <row>
- <entry>rich-dtascroller-table</entry>
- <entry>Defines styles for a wrapper
- <table> element of a
- datascroller</entry>
- </row>
- <row>
- <entry>rich-datascr-button</entry>
- <entry>Defines styles for a
- button</entry>
- </row>
-
- <row>
- <entry>rich-datascr-ctrls-separator</entry>
- <entry>Defines styles for a separator
- between buttons</entry>
- </row>
- </tbody>
-
- </tgroup>
- </table>
- <table>
- <title>Classes names that define a buttons appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-datascr-act</entry>
- <entry>Defines styles for an active
- button</entry>
- </row>
- <row>
- <entry>rich-datascr-inact</entry>
- <entry>Defines styles for an inactive
- button</entry>
- </row>
- <row>
- <entry>rich-datascr-button-dsbld</entry>
- <entry>Defines styles for a disabled
- button</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the table <link linkend="tab_cn2">above</link>) and define necessary
- properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-datascr-button{
- color: #CD6600;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example an input text font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:datascroller></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis>
- <emphasis role="italic">
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #C6E2FF;
-}
-...]]></programlisting>
- <para>The <emphasis role="italic">
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:datascroller> </property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:datascroller ... selectedStyleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/datascroller_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color of the selected
- cell on scroller was changed.</para>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTableScroller.jsf..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:datascroller></property>
- </emphasis> usage and sources for the given example. </para>
- <para> The solution about how to do correct pagination using datascroller (load
- a part of data from database) can be found on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060199#..."
- >RichFaces Users Forum</ulink>. </para>
- <para>How to use <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> and <emphasis role="bold">
- <property><rich:datascroller></property>
- </emphasis> in a context of Extended Data Model see on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115636"
- >RichFaces Users Forum</ulink>.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>dndParam</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
-<title>Description</title>
- <para>This component is used for passing parameters during drag-and-drop
- operations.</para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dndParam.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>drag and drop</keyword>
-
- <keyword>rich:dndParam</keyword>
-
- <keyword>HtmlDndParam</keyword>
-
- <keyword>drop Zone</keyword>
- </keywordset>
- </sectioninfo>
-
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.DndParam</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlDndParam</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.DndParamTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>Here is a simple example as it could be used on a page, nested in one of the drag-and-drop components:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dragSupport dragType="file">
- <rich:dndParam name="testDrag" value="testDragValue"
- type="drag"/>
-</rich:dragSupport>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDndParam;
-...
-HtmlDndParam myDparam = new HtmlDndParam();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para><property>dndParam</property> is used during drag-and-drop
- operations to pass parameters to an indicator. At first, a parameter type
- is defined with the type attribute (to specify parameter functionality),
- then a parameter name could be defined with the name and value attribute.
- Although, it's possible to use nested content defined inside
- <property>dndParam</property> for value definition, instead of the
- attribute.</para>
-
- <para>Variants of usage:</para>
-
- <itemizedlist>
- <listitem><para>Parameters passing for a drag icon when an indicator is in
- drag.</para></listitem>
- </itemizedlist>
-
- <para>In this case, <property>dndParam</property> is of a drag type
- and is defined in the following way:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dragSupport ... >
- <rich:dndParam type="drag" name="dragging">
- <h:graphicImage value="/img/product1_small.png"/>
- </rich:dndParam>
- <h:graphicImage value="product1.png"/>
-</rich:dragSupport>
-...
-]]></programlisting>
-
- <para>Here <property>dndParam</property> defines an icon that is used by
- an indicator when a drag is on the place of a default icon (e.g. a
- minimized image of a draggable element)</para>
-
- <itemizedlist>
- <listitem><para>Parameters passing for an indicator informational part during
- a drag.</para></listitem>
- </itemizedlist>
-
- <para>In this case <property>dndParam</property> is of a drag type
- and is defined in the following way:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dragSupport ... >
- <rich:dndParam type="drag" name="label" value="#{msg.subj}"/>
- ...
-</rich:dragSupport>
-...
-]]></programlisting>
-
- <para>The parameter is transmitted into an indicator for usage in an
- informational part of the <property>dragIndicator</property> component (inside an indicator a
- call to {label} happens)</para>
-
- <itemizedlist>
- <listitem><para>Parameters passing happens when dragged content is brought
- onto some zone with <property>dropSupport</property></para></listitem>
- </itemizedlist>
-
- <para>In this case <property>dndParam</property> is of a drop type and is
- defined in the following way:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropSupport ... >
- <rich:dndParam type="drop" name="comp" >
- <h:graphicImage height="16" width="16" value="/images/comp.png"/>
- </rich:dndParam>
- ...
-</rich:dropSupport >
-...
-]]></programlisting>
-
- <para>Here, <property>dndParam</property> passes icons into an indicator,
- if dragged content of a comp type is above the given drop zone that
- processes it on the next drop event.</para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:dndParam></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
- <section>
- <title>Relevan Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dnd..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:dndParam></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section id="ch1">
- <sectioninfo>
- <keywordset>
- <keyword>rich:dragIndicator</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>This is a component for defining what appears under the mouse cursor during drag-and-drop
- operations. The displayed drag indicator can show information about the dragged elements.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:dragIndicator></property></emphasis> component</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dragIndicator_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Customizable look and feel</para></listitem>
- <listitem><para>Customizable marker according to the type of dragable elements</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,298 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>dragged element</keyword>
- <keyword>rich:dragIndicator</keyword>
- <keyword>HtmlDragIndicator</keyword>
- <keyword>dndParam</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Draggable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDragIndicator</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DragIndicator</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DragIndicatorRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DragIndicatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dragIndicator id="indicator">
- <f:facet name="single">
- <f:verbatim>
- <b>Single item</b> {DragInfo}
- </f:verbatim>
- </f:facet>
-</rich:dragIndicator>
-...
-<rich:dragSupport dragType="text" dragIndicator="indicator"/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDragIndicator;
-...
-HtmlDragIndicator myDragIndicator = new HtmlDragIndicator();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> In the simplest way the component could be defined empty - in that case a default
- indicator is shown like this: </para>
- <figure>
- <title>The simplest <emphasis role="bold"><property><rich:dragIndicator></property></emphasis> </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dragIndicator3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>For indicator customization you need to define one of the following facets:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>"single"</property></emphasis> — indicator shown when dragging a single item;
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"multiple"</property></emphasis> — indicator shown when dragging several items.
- </para>
- </listitem>
- </itemizedlist>
-
- <note>
- <title>
- Note:
- </title>
- <para>
- The current implementation of the <emphasis role="bold"><property><rich:dragIndicator></property></emphasis> component
- does not support multiple items selection. The feature is described for future releases.
- </para>
- </note>
-
- <para>Thus for specify a look-and-feel you have to define one of these facets and include into
- it a content that should be shown in indicator.</para>
- <section>
- <title>Macro definitions</title>
- <para>To place some data from drag or drop zones into component you can use macro definitions.
- They are being defining in the following way:</para>
- <itemizedlist>
- <listitem><para>
- <emphasis role="bold">
- <property><rich:dndParam></property>
- </emphasis> component with a specific name and value is being included into a drag/drop
- support component (an image can be defined as placed inside <emphasis role="bold">
- <property><rich:dndParam></property>
- </emphasis> without defining a value). </para></listitem>
- <listitem><para> in needed place a parameter value is included into the marking of indicator using
- syntax (name of parameter)</para></listitem>
- </itemizedlist>
- <para> For instance, this:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropSupport...>
- <rich:dndParam name="testDrop">
- <h:graphicImage value="/images/file-manager.png" />
- </rich:dndParam>
-</rich:dropSupport>
-...
-]]></programlisting>
- <para>Is placed into indicator as follows:</para>
- <programlisting role="XML"><![CDATA[...
-<f:facet name="single">
- {testDrop}
-</f:facet>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Predefined macro definitions</title>
- <para> Indicator can accept two default macro definitions:</para>
- <itemizedlist>
- <listitem><para>marker</para></listitem>
- <listitem><para>label</para></listitem>
- </itemizedlist>
- <para>Thus including one of these elements in the marking of indicator, in other words after
- setting up appropriate parameters in DnD components and defining only default indicator -
- without specifying facets - a developer gets these parameters values displayed in indicator
- in the order "marker - label".</para>
- </section>
-
- <section>
- <title>Marker customization</title>
- <para>The macro definition <emphasis>
- <property>"marker"</property>
- </emphasis> can be customized depending on what a draggable element is located over. For
- that you should define one of these three parameters (specify a parameter with one of three
- names):</para>
- <itemizedlist>
- <listitem><para><code>accept</code> </para></listitem>
- </itemizedlist>
- <para>Parameter will be set instead of {marker} into indicator when a draggable element is
- positioned over drop zone that accept this type of elements</para>
-
- <itemizedlist>
- <listitem><para><code>reject</code></para></listitem>
- </itemizedlist>
- <para>Parameter is set instead of {marker} into indicator when a draggable element is
- positioned over drop zone that doesn't accept this type of elements </para>
-
- <itemizedlist>
- <listitem><para><code>default</code></para></listitem>
- </itemizedlist>
- <para>Parameter is set instead of {marker} into indicator when a draggable element is
- positioned over all the rest of page elements</para>
- </section>
-
- <note>
- <title>
- Note:
- </title>
- <para>
- If you use <emphasis role="bold"><property><rich:dragIndicator></property></emphasis> inside a form
- do not forget to use id like <code>formId:indicatorID</code>
- defined in <emphasis role="bold"><property><rich:dragSupport></property></emphasis> indicator attribute.
- </para>
- </note>
-
- </section>
-
- <!--section>
- <title>Details of Usage</title>
- <para>The component seems to be combined of two elements: an icon on the left and informational
- part on the right. The definition and usage is described further for each element.</para>
- <section>
- <title>Indicator informational part</title>
- <para>Inside the component, the definition should present for two facets with single and
- multiple names providing templates for rendering during dragging one or several elements.
- The facets define the right side of the <property>indicator</property> element.</para>
- <para>The following elements on a page are obtained for a code defined in the example:</para>
- <figure>
- <title>DragIndicator informational part</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dragIndicator2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Hence, defining dndParam corresponding to drag areas, information transmitted into an
- <property>indicator</property> is defined.</para>
- </section>
- <section>
- <title>Indicator icon element</title>
- <para>Inside the component there also could be definitions for three faces with
- <emphasis><property>"accept"</property>,</emphasis>
- <emphasis>
- <property>"reject"</property>
- </emphasis> and <emphasis>
- <property>"default"</property>
- </emphasis> names that specify icons on the left side according to states when an
- <property>indicator</property> is above:</para>
- <itemizedlist>
- <listitem> a drop zone that processes the facets written in the <emphasis>
- <property>"acceptedTypes"</property>
- </emphasis> attribute of this drop zone </listitem>
- <listitem> a drop zone that doesn't process the facets </listitem>
- <listitem> not above any drop zone </listitem>
- </itemizedlist>
- <para>Here is an example for an accept facet:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <f:dndParam name="accept">
- <h:graphicImage value="./images/1.png"/>
- </f:dndParam>
-...
-]]></programlisting>
- <para>Each of these three facets have a default structure for icons rendering on the left
- side.</para>
- <para>When it's necessary to define individual icons for dragged above elements of a
- <property>drop zone</property> from each particular drag area, use a <property>drop zone</property>
- <emphasis>
- <property>"typeMapping"</property>
- </emphasis> attribute for the corresponding icons.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:dropSupport acceptedTypes="[iconsDragged, textDragged]" typeMapping="{iconsDragged: DropIcon}">
- <dnd:dndParam name="DropIcon">
- <h:graphicImage value="/images/drop-icon.png"/>
- </dnd:dndParam>
- <rich:dropSupport/>
-...
-]]></programlisting>
- <para>Here, drag areas that are to be processed with this drop zone are of iconsDragged and
- textDragged type. An icon is redefined for iconsDragged with the help of the drop zone <emphasis>
- <property>"typeMapping"</property>
- </emphasis> attribute defined with the <emphasis role="bold">
- <property><rich:dndParam></property>
- </emphasis>component.</para>
-
- </section>
- </section-->
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>The <emphasis role="bold"><property><rich:dragIndicator></property></emphasis> component has no skin parameters and special <emphasis>
- <property>style classes</property></emphasis>, as it consists of one element
- generated with a your method on the server. To define some style properties such as an indent
- or a border, it's possible to use <emphasis>
- <property>"style"</property></emphasis> and <emphasis>
- <property>"styleClass"</property></emphasis> attributes on the component.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dra..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dragIndicator></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator1.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator1.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragIndicator1.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,147 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>dragged element</keyword>
-<keyword>rich:dragIndicator</keyword>
-<keyword>HtmlDragIndicator</keyword>
-<keyword>dndParam</keyword>
-</keywordset>
-</sectioninfo>
- <section>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Draggable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDragIndicator</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DragIndicator</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DragIndicatorRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DragIndicatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <dnd:dragIndicator id="indicator">
- <f:facet name="single">
- <f:verbatim>
- <b>Single item</b> {DragInfo}
- </f:verbatim>
- </f:facet>
- </dnd:dragIndicator>
- ...
-<dnd:dragSupport dragType="text" dragIndicator="indicator">
- ...
- </section>
- <section>
-<title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDragIndicator;
-HtmlDragIndicator myDragIndicator = new HtmlDragIndicator();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The component seems to be combined of two elements: an icon on the left and informational
- part on the right. The definition and usage is described further for each element.</para>
- <section>
- <title>Indicator informational part</title>
- <para>Inside the component, the definition should present for two facets with single and multiple
- names providing templates for rendering during dragging one or several elements. The facets
- define the right side of the <property>indicator</property> element.</para>
- <para>The following elements on a page are obtained for a code defined in the example:</para>
- <figure>
- <title>DragIndicator informational part</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dragIndicator2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-<para>Hence, defining dndParam corresponding to drag areas, information transmitted into an
- <property>indicator</property>
- is defined.</para>
- </section>
- <section>
- <title>Indicator icon element</title>
- <para>Inside the component there also could be definitions for three faces with
- <emphasis ><property>"accept"</property>,</emphasis>
- <emphasis ><property>"reject"</property></emphasis> and
- <emphasis ><property>"default"</property></emphasis> names that specify icons on the left side according to states when an
- <property>indicator</property> is above:</para>
-<itemizedlist>
- <listitem><para>
- a drop zone that processes the facets written in the
- <emphasis ><property>"acceptedTypes"</property></emphasis> attribute
- of this drop zone
- </para></listitem>
- <listitem><para>
- a drop zone that doesn't process the facets
- </para></listitem>
- <listitem><para>
- not above any drop zone
- </para></listitem>
- </itemizedlist>
- <para>Here is an example for an accept facet:</para>
- <programlisting role="XML"><![CDATA[
- <f:facet name="accept">
- <h:graphicImage value="./images/1.png"/>
- </f:facet>
-]]></programlisting>
-<para>Each of these three facets have a default structure for icons rendering on the left side.</para>
-<para>When it's necessary to define individual icons for dragged above elements of a <property>drop zone</property> from each
- particular drag area, use the <property>drop zone</property>
- <emphasis ><property>"typeMapping"</property></emphasis> attribute for the
- corresponding icons.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-<programlisting role="XML"><![CDATA[<rich:dropSupport acceptedTypes="[iconsDragged, textDragged]"
- typeMapping="{iconsDragged: DropIcon}">
-
- <dnd:dndParam name="DropIcon">
- <h:graphicImage value="/images/drop-icon.png" />
- </dnd:dndParam>
-...
-]]></programlisting>
-<para>Here, drag areas that are to be processed with this drop zone are of iconsDragged and
-textDragged type. An icon is redefined for iconsDragged with the help of the drop zone
- <emphasis ><property>"typeMapping"</property></emphasis> attribute
- defined with the <emphasis role="bold"><property><rich:dndParam></property></emphasis>component.</para>
-</section>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dragListener</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold"><property><rich:dragListener></property></emphasis>
- represents an action listener method that is notified after a drag operation.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define some drag listeners for the components with "Drag and Drop" support</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>rich:dragListener</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>listener-class</entry>
- <entry>org.richfaces.event.DragListener</entry>
- </row>
- <row>
- <entry>event-class</entry>
- <entry>org.richfaces.event.DragEvent</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DragListenerTag</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following
- syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dragListener type="demo.Bean"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
-public class ImplBean implements org.richfaces.event.DragListener{
- ...
-}
-]]></programlisting>
-
- <programlisting role="JAVA"><![CDATA[
-import demo.ImplBean;
-...
-ImplBean myDragListener = new ImplBean();
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>
- The
- <emphasis role="bold">
- <property><rich:dragListener></property>
- </emphasis>
- is used as a nested tag with components like
- <emphasis role="bold">
- <property><rich:dragSupport></property>
- </emphasis>
- ,
- <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis>
- and
- <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis>
- .
- </para>
- <para>
- Attribute
- <emphasis>
- <property>"type"</property>
- </emphasis>
- defines the fully qualified Java class name for a listener.
- This class should implement
-
- <ulink
- url="&apidoc_framework;/org/richfaces/event/DropListener.html">
- <code>org.richfaces.event.DropListener</code>
- </ulink>
- interface.
- </para>
-
- <para>
- <emphasis role="bold">
- The typical variant of using:
- </emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<h:panelGrid id="dragPanel">
- <rich:dragSupport dragType="item">
- <rich:dragListener type="demo.ListenerBean"/>
- </rich:dragSupport>
- <!--Some content to be dragged-->
-</h:panelGrid>
-...
-]]></programlisting>
-
- <para>
- <emphasis role="bold">Java bean source:</emphasis>
- </para>
-
- <programlisting role="JAVA"><![CDATA[package demo;
-
-import org.richfaces.event.DragEvent;
-
-public class ListenerBean implements org.richfaces.event.DragListener{
-...
- public void processDrag(DragEvent arg0){
- //Custom Developer Code
- }
-...
-}
-]]></programlisting>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- <emphasis role="bold">
- <property><rich:dragListener></property>
- </emphasis>
- has no skin parameters and custom
- <property>style classes</property>
- , as the component isn't visual.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dragSupport</keyword>
- </keywordset>
- </sectioninfo>
-<section>
-<title>Description</title>
- <para>This component defines a subtree of the component tree as draggable
- for drag-and-drop operations. Within such a "drag zone," you can click
- the mouse button on an item and drag it to any component that supports drop
- operations (a "drop zone"). It encodes all the necessary JavaScript for
- supporting drag-and-drop operations.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:dragSupport></property></emphasis> component</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dragSupport_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
- <section>
- <title>Key Features</title>
-
- <itemizedlist>
- <listitem><para>
- Encodes all necessary JavaScript to perform drag
- actions
- </para></listitem>
-
- <listitem><para>
- Can be used within any component type that provides the
- required properties for drag operations
- </para></listitem>
-
- <listitem><para>
- Supports drag-and-drop between different forms
- </para></listitem>
-
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dragSupport.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,292 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dragSupport</keyword>
-
- <keyword>HtmlDragSupport</keyword>
- </keywordset>
- </sectioninfo>
-
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.DragSupport</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>
- org.richfaces.component.html.HtmlDragSupport
- </entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.DragSupport</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.DragSupportRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.DragSupportTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>
- Here is a simple example as it could be used on a page:
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:panelGrid id="drag1">
- <rich:dragSupport dragType="item"/>
- <!--Some content to be dragged-->
-</h:panelGrid>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDragSupport;
-...
-HtmlDragSupport myDragZone = new HtmlDragSupport();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>
- The
- <property>dragSupport</property>
- tag inside a component completely specifies the events and
- JavaScript required to use the component and it's children
- for dragging as part of a drag-and-drop operation. In order
- to work, though,
- <property>dragSupport</property>
- must be placed inside a wrapper component that outputs child
- components and that has the right events defined on it.
- Thus, this example won't work, because the
- <emphasis role="bold"><property><h:column></property></emphasis>
- tag doesn't provide the necessary properties for redefining
- events on the client:
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:column>
- <rich:dragSupport dragIndicator=":form:iii" dragType="text">
- <a4j:actionparam value="#{caps.name}" name="name"/>
- </rich:dragSupport>
- <h:outputText value="#{caps.name}"/>
-</h:column>
-...
-]]></programlisting>
-
- <para>
- However, using
- <property>a4j:outputPanel</property>
- as a wrapper inside
- <emphasis role="bold"><property><h:column></property></emphasis>
- , the following code could be used successfully:
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:column>
- <a4j:outputPanel>
- <rich:dragSupport dragIndicator=":form:iii" dragType="text">
- <a4j:actionparam value="#{caps.name}" name="name"/>
- </rich:dragSupport>
- <h:outputText value="#{caps.name}"/>
- </a4j:outputPanel>
-</h:column>
-...
-]]></programlisting>
-
- <para>This code makes all rows of this column draggable.</para>
-
- <para>
- One of the main attributes for
- <property>dragSupport</property>
- is
- <emphasis>
- <property>"dragType"</property>
- ,
- </emphasis>
- which associates a name with the drag zone. Only drop zones
- with this name as an acceptable type can be used in
- drag-and-drop operations. Here is an example:
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:panelGrid id="drag1">
- <rich:dragSupport dragType="singleItems" .../>
- <!--Some content to be dragged-->
-</h:panelGrid>
-...
-<h:panelGrid id="drag2">
- <rich:dragSupport dragType="groups" .../>
- <!--Some content to be dragged-->
-</h:panelGrid>
-...
-<h:panelGrid id="drop1">
- <rich:dropSupport acceptedTypes="singleItems" .../>
- <!--Drop zone content-->
-</h:panelGrid>
-...
-]]></programlisting>
-
- <para>
- In this example, the
- <code>drop1</code>
- panel grid is a drop zone that invokes drag-and-drop for
- drops of items from the first
- <code>drag1</code>
- panel grid, but not the second
- <code>drag2</code>
- panel grid. In the section about
- <property>dropSupport</property>
- , you will find an example that shows more detailed
- information about moving data between tables with drag and
- drop.
- </para>
-
- <para>
- The
- <property>dragSupport</property>
- component also has a
- <emphasis>
- <property>"value"</property>
- </emphasis>
- attribute for passing data into the processing after a drop
- event.
- </para>
-
- <para>
- One more important attribute for
- <emphasis role="bold">
- <property><rich:dragSupport></property>
- </emphasis>
- is the
- <emphasis>
- <property>"dragIndicator"</property>
- </emphasis>
- attribute that point to the component id of the
- <emphasis role="bold">
- <property><rich:dragIndicator></property>
- </emphasis>
- component to be used for dragged items from this drag zone.
- If it isn't defined, a default indicator for drag operations
- is used.
- </para>
-
- <para>
- Finally, the component has the following extra attributes
- for event processing on the client:
- </para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis><property>"ondragstart"</property></emphasis></para>
- </listitem>
-
- <listitem>
- <para><emphasis><property>"ondragend"</property></emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para>
- You can use your own custom JavaScript functions to handle
- these events.
- </para>
-
-
- <note>
- <title>Note:</title>
- <para>
- If you define width for a outputPanel, in Internet
- Explorer 6 you can perform a drag and drop operation,
- placing the mouse cursor on the text in the outputPanel
- only.
- </para>
- </note>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- <emphasis role="bold">
- <property><rich:dragSupport></property>
- </emphasis>
- has no skin parameters and custom
- <property>style classes</property>
- , as the component isn't visual.
- </para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dra...">
- On the component Live Demo page
- </ulink>
- you can see the example of
- <emphasis role="bold">
- <property><rich:dragSupport></property>
- </emphasis>
- usage and sources for the given example.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:draggable</keyword>
-</keywordset>
-</sectioninfo>
-<section>
- <title>Description</title>
- <para>A <property>draggable</property> zone of page, where it's possible to press a mouse
- button on the content and drag it to any drop zone. It encodes all necessary JavaScript
- code for supporting drag operations.</para>
- <figure>
- <title><rich:draggable> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/draggable1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Encodes all necessary JavaScript code for supporting drag operations in drag and drop</para></listitem>
- <listitem><para>Drag zone supports all content inside that can be needed for Drag and Drop</para></listitem>
- <listitem><para>Managing zones to drop components dragged from this zone with an attribute</para></listitem>
- <listitem><para>Simple management Indicator for zones</para></listitem>
- <listitem><para>Easy management of parameters to send to a target drop zone</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/draggable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,123 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>draggable zone</keyword>
-<keyword>rich:draggable</keyword>
-<keyword>HtmlDraggable</keyword>
-<keyword>drop zone</keyword>
-</keywordset>
-</sectioninfo>
- <section>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Draggable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDraggable</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Draggable</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DraggableRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DraggableTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:toolBar>
- <rich:draggable dragType="file">
- <!--Some Content to be Dragged-->
- </rich:draggable>
- ...
- </rich:toolBar>
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[...
-org.richfaces.component.html.HtmlDraggable myDragZone = new org.richfaces.component.html.HtmlDraggable();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it shown in the example, a key attribute is <emphasis ><property>"dragType"</property></emphasis>, where a name for an obtaining Drag-area is defined. Basing on this name, Drop-zones on a page decide whether to accept Drag-area content or not (with the help of Drag-areas lists accepted for processing that are defined in Drop-zones).</para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[...
- <rich:draggable dragType="dragTextBlocks">
- <!--Some Components There-->
- </rich:draggable>
- <rich:draggable dragType="dragIcons">
- <!--Some Components There-->
- </rich:draggable>
- ...
- <rich:dropZone acceptedTypes="[dragIcons]">
- <!--Some Content Representing DropZone-->
- <rich:dropZone>
-...
-]]></programlisting>
- <para>The example shows that Drop zone calls the corresponding drop event processing in it, only
- if a drop is generated from the second drop zone. </para>
- <para>Another important attribute for
- <emphasis role="bold"><property><rich:draggable></property></emphasis> is <emphasis ><property>"dragIndicator"</property></emphasis> where the
-<emphasis role="bold"><property><rich:dragIndicator></property></emphasis> component id is defined for this drag area. If it isn't defined drag area
-creates a default indicator for drag operation. Additional information on <emphasis role="bold">
- <property><rich:dragIndicator></property>
- </emphasis>and its usage with a drag, could be found on the following chapter <ulink url="ch06s04.html">
- dragIndicator</ulink>.</para>
- <para>Thus, it's necessary only to define the following:</para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[...
- <rich:draggable dragType="dragText">
- <h:outputText value="Hello"></h:outputText>
- </rich:draggable>
-...
-]]></programlisting>
- <para>in order to be able to drag this string on a page.</para>
- <para>The component also provide important components for redefinition of the corresponding
- events called with the drag operations (ondragstart and ondragend), where it possible to define
- your own additional JavaScript functions that are called on the corresponding events.</para>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>As it has been mention above, the component defines components wrapper for drag areas, i.e.
- it doesn't has its own representation. Therefore, for customization of a wrapper
- <emphasis role="bold"><property><div></property></emphasis> element of the component it's
- possible to use a component attribute <emphasis ><property>"styleClass"</property></emphasis> or
- redefine rich-draggable class in your own CSS files that is added to all <property>draggable</property> components
- style on default.</para>
- </section>
-
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dropDownMenu</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
- <title>Description</title>
-
- <para>The <emphasis role="bold"><property><rich:dropDownMenu></property></emphasis> component is used for creating
- multilevel drop-down menus.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:dropDownMenu></property></emphasis> component</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
- </section>
-
- <section>
- <title>Key Features</title>
-
- <itemizedlist>
- <listitem>
- <para>Highly customizable look-and-feel</para>
- </listitem>
-
- <listitem>
- <para>Pop-up appearance event customization</para>
- </listitem>
-
- <listitem>
- <para>Different submission modes</para>
- </listitem>
-
- <listitem>
- <para>Ability to define a complex representation for elements</para>
- </listitem>
-
- <listitem>
- <para>Support for disabling</para>
- </listitem>
-
- <listitem>
- <para>Smart user-defined positioning</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropDownMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,713 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dropDownMenu</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DropDownMenu</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDropDownMenu</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.DropDownMenu</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DropDownMenuRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DropDownMenuTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>Here is a simple example as it could be used on a page:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu value="Item1">
- <!--Nested menu components-->
-</rich:dropDownMenu>
-...]]></programlisting>
-
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDropDownMenu;
-...
-HtmlDropDownMenu myDropDownMenu = new HtmlDropDownMenu();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>All attributes except <emphasis>
- <property>"value"</property>
- </emphasis> are optional. The <emphasis>
- <property>"value"</property>
- </emphasis> attribute defines text to be represented. If you can use the <emphasis>
- <property>"label"</property>
- </emphasis> facet, you can even not use the <emphasis>
- <property>"value"</property>
- </emphasis> attribute.</para>
-
- <para>Here is an example:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<f:facet name="label">
- <h:graphicImage value="/images/img1.png"/>
-</f:facet>
-...]]></programlisting>
-
- <para>Use the <emphasis>
- <property>"event"</property>
- </emphasis> attribute to define an event for the represented element that triggers a menu
- appearance. An example of a menu appearance on a click can be seen below.</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu event="onclick" value="Item1">
- <!--Nested menu components-->
-</rich:dropDownMenu>
-...]]></programlisting>
-
- <para>The <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis>
- <emphasis>
- <property>"submitMode"</property>
- </emphasis> attribute can be set to three possible parameters:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Server</code> (default)</para>
- </listitem>
- </itemizedlist>
-
- <para>Regular form submission request is used.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code></para>
- </listitem>
- </itemizedlist>
-
- <para>Ajax submission is used for switching.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>None</code></para>
- </listitem>
- </itemizedlist>
-
- <para>The <emphasis>
- <property>"action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> item's attributes are ignored. Menu items don't fire any submits themselves. The
- behavior is fully defined by the components nested into items.</para>
-
- <note><title>Note:</title><para> As the <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> component doesn't provide its own form, use it between <emphasis role="bold"><property><h:form></property></emphasis> and
- <emphasis role="bold"><property></h:form></property></emphasis> tags.</para></note>
-
- <para>The <emphasis>
- <property>"direction"</property>
- </emphasis> and <emphasis>
- <property>"jointPoint"</property>
- </emphasis> attributes are used for defining aspects of menu appearance.</para>
-
- <para>Possible values for the <emphasis>
- <property>"direction"</property>
- </emphasis> attribute are:</para>
-
- <itemizedlist>
- <listitem>
- <para>"top-left" - a menu drops to the top and left</para>
- </listitem>
-
- <listitem>
- <para>"top-right" - a menu drops to the top and right</para>
- </listitem>
-
- <listitem>
- <para>"bottom-left" - a menu drops to the bottom and left</para>
- </listitem>
-
- <listitem>
- <para>"bottom-right" - a menu drops to the bottom and right</para>
- </listitem>
-
- <listitem>
- <para>"auto" - smart positioning activation</para>
- </listitem>
- </itemizedlist>
-
- <para>Possible values for the <emphasis>
- <property>"jointPoint"</property>
- </emphasis> attribute are:</para>
-
- <itemizedlist>
- <listitem>
- <para>"tr" - a menu is attached to the top-right point of the button element</para>
- </listitem>
-
- <listitem>
- <para>"tl" - a menu is attached to the top-left point of the button element</para>
- </listitem>
-
- <listitem>
- <para>"br" - a menu is attached to the bottom-right point of the button element</para>
- </listitem>
-
- <listitem>
- <para>"bl" - a menu is attached to the bottom-left point of the button element</para>
- </listitem>
-
- <listitem>
- <para>"auto" - smart positioning activation</para>
- </listitem>
- </itemizedlist>
-
- <para>By default, the <emphasis>
- <property>"direction"</property>
- </emphasis> and <emphasis>
- <property>"jointPoint"</property>
- </emphasis> attributes are set to "auto".</para>
-
- <para>Here is an example:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu value="File" direction="bottom-right" jointPoint="bl">
- <rich:menuItem submitMode="ajax" value="New" action="#{ddmenu.doNew}"/>
- <rich:menuItem submitMode="ajax" value="Open" action="#{ddmenu.doOpen}"/>
- <rich:menuGroup value="Save As...">
- <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
- <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
- </rich:menuGroup>
- <rich:menuItem submitMode="ajax" value="Close" action="#{ddmenu.doClose}"/>
- <rich:menuSeparator id="menuSeparator11"/>
- <rich:menuItem submitMode="ajax" value="Exit" action="#{ddmenu.doExit}"/>
-</rich:dropDownMenu>
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Using the <emphasis role="bold"><property>"direction"</property></emphasis> and <emphasis><property>"joinPoint"</property></emphasis> attributes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>You can correct an offset of the pop-up list relative to the label using the following
- attributes: <emphasis>
- <property>"horizontalOffset"</property>
- </emphasis> and <emphasis>
- <property>"verticalOffset"</property>
- </emphasis>.</para>
-
- <para>Here is an example:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu value="File" direction="bottom-right" jointPoint="tr" horizontalOffset="-15" verticalOffset="0">
- <rich:menuItem submitMode="ajax" value="New" action="#{ddmenu.doNew}"/>
- <rich:menuItem submitMode="ajax" value="Open" action="#{ddmenu.doOpen}"/>
- <rich:menuGroup value="Save As...">
- <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
- <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
- </rich:menuGroup>
- <rich:menuItem submitMode="ajax" value="Close" action="#{ddmenu.doClose}"/>
- <rich:menuSeparator id="menuSeparator11"/>
- <rich:menuItem submitMode="ajax" value="Exit" action="#{ddmenu.doExit}"/>
-</rich:dropDownMenu>
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Using the <emphasis><property>"horizontalOffset"</property></emphasis> and <emphasis><property>"verticalOffset"</property></emphasis> attributes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <!--para> The <emphasis>
- <property>"disabled"</property>
- </emphasis> attribute is used for disabling whole <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:menuGroup></property>
- </emphasis> or <emphasis role="bold">
- <property><rich:menuItem></property>.
- </emphasis>
- </para>
- <para>An example of a menu appearance with <emphasis>
- <property>"disabled"</property>
- </emphasis> attribute can be seen below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
- <rich:dropDownMenu value="Item1">
- <rich:menuItem id="menuItem1" value="Active1"/>
- <rich:menuItem id="menuItem2" value="Disabled1" disabled="true"/>
- <rich:menuGroup id="menuGroup1" value="Group1">
- <rich:menuItem id="menuGroup1Item1" value="Active"/>
- <rich:menuItem id="menuGroup1Item2" value="Active"/>
- </rich:menuGroup>
- <rich:menuItem id="menuItem3" value="Active2"/>
- <rich:menuGroup id="menuGroup1Dsbld" value="Group1 dsbld." disabled="true" />
- </rich:dropDownMenu>
-...
-]]></programlisting-->
-
-<para>
- The <emphasis><property>"disabled"</property></emphasis> attribute is used for disabling whole
- <emphasis role="bold"><property><rich:dropDownMenu></property></emphasis> component. In this case it is
- necessary to define <emphasis><property>"disabled"</property></emphasis> attribute as "true".
- An example is placed below.
-</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu value="File" disabled="true">
- ...
-</rich:dropDownMenu>
-...]]></programlisting>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>label</entry>
- <entry>Redefines the content set of label</entry>
- </row>
- <row>
- <entry>labelDisabled</entry>
- <entry>Redefines the content set of disabled label</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title> Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a label <div> element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a selected label</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>controlBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
-
- <entry>background-colorcolor</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a border</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a background</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>border-top-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>border-left-color</entry>
- </row>
-
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn4">
- <title>Classes names that define a label</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-label-text-decor</entry>
-
- <entry>Defines text style for a representation element</entry>
- </row>
-
- <row>
- <entry>rich-ddmenu-label</entry>
-
- <entry>Defines styles for a wrapper <div> element of a representation
- element</entry>
- </row>
-
- <row>
- <entry>rich-ddmenu-label-select</entry>
-
- <entry>Defines styles for a wrapper <div> element of a selected
- representation element</entry>
- </row>
-
- <row>
- <entry>rich-ddmenu-label-unselect</entry>
-
- <entry>Defines styles for a wrapper <div> element of an unselected
- representation element </entry>
- </row>
-
- <row>
- <entry>rich-ddmenu-label-disabled</entry>
-
- <entry>Defines styles for a wrapper <div> element of a disabled
- representation element </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu_cn2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table>
- <title>Classes names that define a popup element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-menu-list-border</entry>
-
- <entry>Defines styles for borders</entry>
- </row>
-
- <row>
- <entry>rich-menu-list-bg</entry>
-
- <entry>Defines styles for a general background list</entry>
- </row>
-
- <row>
- <entry>rich-menu-list-strut</entry>
-
- <entry>Defines styles for a wrapper <div> element for a strut of a popup
- list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the table <link linkend="tab_cn4">above</link>) and define necessary properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-ddmenu-label-select{
- background-color: #fae6b0;
- border-color: #e5973e;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a label select background color and border color were changed.</para>
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:dropDownMenu></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:dropDownMenu></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"itemClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:dropDownMenu></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:dropDownMenu ... itemClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropDownMenu_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for items was changed.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dr..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dropListener</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold"><property><rich:dropListener></property></emphasis>
- represents an action listener method that is notified after a drop operation.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define some drop listeners for the components with "Drag and Drop" support</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>rich:dropListener</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>listener-class</entry>
- <entry>org.richfaces.event.DropListener</entry>
- </row>
- <row>
- <entry>event-class</entry>
- <entry>org.richfaces.event.DropEvent</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DropListenerTag</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following
- syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dropListener type="demo.Bean"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
-public class ImplBean implements org.richfaces.event.DropListener{
- ...
-}
-]]></programlisting>
-
- <programlisting role="JAVA"><![CDATA[
-import demo.ImplBean;
-...
-ImplBean myListener = new ImplBean();
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>
- The
- <emphasis role="bold">
- <property><rich:dropListener></property>
- </emphasis>
- is used as a nested tag with components like
- <emphasis role="bold">
- <property><rich:dropSupport></property>
- </emphasis>
- ,
- <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis>
- and
- <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis>
- .
- </para>
- <para>
- Attribute
- <emphasis>
- <property>"type"</property>
- </emphasis>
- defines the fully qualified Java class name for the
- listener. This class should implement
- <ulink
- url="&apidoc_framework;/org/richfaces/event/DropListener.html">
- <code>org.richfaces.event.DropListener</code>
- </ulink>
- interface.
- .
- </para>
-
- <para>
- <emphasis role="bold">
- The typical variant of using:
- </emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel style="width:100px;height:100px;">
- <f:facet name="header">Drop Zone</f:facet>
- <rich:dropSupport acceptedTypes="text">
- <rich:dropListener type="demo.ListenerBean"/>
- </rich:dropSupport>
-</rich:panel>
-...
-]]></programlisting>
-
- <para>
- <emphasis role="bold">Java bean source:</emphasis>
- </para>
-
- <programlisting role="JAVA"><![CDATA[package demo;
-
-import org.richfaces.event.DropEvent;
-
-public class ListenerBean implements org.richfaces.event.DropListener{
-...
- public void processDrop(DropEvent arg0){
- //Custom Developer Code
- }
-...
-}
-]]></programlisting>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- <emphasis role="bold">
- <property><rich:dropListener></property>
- </emphasis>
- has no skin parameters and custom
- <property>style classes</property>
- , as the component isn't visual.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dropSupport</keyword>
- </keywordset>
- </sectioninfo>
-<section>
-<title>Description</title>
- <para>This component transforms a parent component into a target zone for
- drag-and-drop operations. When a draggable element is moved and dropped onto
- the area of the parent component, Ajax request processing for this event is
- started.</para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:dropSupport></property></emphasis> component</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropSupport_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>
- Encodes all necessary JavaScript to perform drop actions
- </para></listitem>
-
- <listitem><para>
- Can be used within any component type that provides the required properties for drop operations
- </para></listitem>
-
- <listitem><para>
- Built-in Ajax processing
- </para></listitem>
-
- <listitem><para>
- Supports drag-and-drop between different forms
- </para></listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropSupport.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,366 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:dropSupport</keyword>
-
- <keyword>HtmlDropSupport</keyword>
- </keywordset>
- </sectioninfo>
-
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.DropSupport</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>
- org.richfaces.component.html.HtmlDropSupport
- </entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.DropSupport</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.DropSupportRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.DropSupportTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>
- This simple example shows how to make a panel component a
- potential drop target for drag-and-drop operations using
- "text" elements as the dragged items.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <rich:dropSupport acceptedTypes="text"/>
-</rich:panel>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlDropSupport;
-...
-HtmlDropSupport myDragZone = new HtmlDropSupport();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>The key attribute for <emphasis role="bold"><property><rich:dropSupport></property></emphasis> is <emphasis><property>"acceptedTypes"</property></emphasis>.
- It defines, which types of dragable items (zones) could be accepted by the current drop zone. Check the example below:
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel styleClass="dropTargetPanel">
- <f:facet name="header">
- <h:outputText value="PHP Frameworks" />
- </f:facet>
-
- <rich:dropSupport id="php" acceptedTypes="PHP" dropValue="PHP" dropListener="#{eventBean.processDrop}" reRender="phptable, src">
- </rich:dropSupport>
- ...
-</rich:panel>
-...
-]]></programlisting>
- <para>and here is what happens on the page:</para>
- <figure>
- <title>Drop zone accepts dragable item with "PHP" type only</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropSupport1.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Using the <emphasis><property>"typeMapping"</property></emphasis> attribute. Previous example shows that a drop zone could accept a dragable item or not.
- Special markers, which are placed at <emphasis role="bold"><property><rich:dragIndicator></property></emphasis>, inform user about drop zone’s possible behaviors:
- "checkmark" appears if drop is accepted and "No" symbol if it is not.
- Moreover, some extra information (e.g. text message) could be put into the Indicator to reinforce the signal about drop zone’s behavior or pass some other additional sense.
- This reinforcement could be programmed and attributed to drop zone via <emphasis><property>"typeMapping"</property></emphasis> attribute using JSON syntax.
- The type of dragged zone (dragType) should be passed as "key" and name of <emphasis role="bold"><property><rich:dndParam></property></emphasis>
- that gives needed message to Indicator as "value":
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel styleClass="dropTargetPanel">
- <f:facet name="header">
- <h:outputText value="PHP Frameworks" />
- </f:facet>
-
- <rich:dropSupport id="php" acceptedTypes="PHP" dropValue="PHP" dropListener="#{eventBean.processDrop}" reRender="phptable, src"
- typeMapping="{PHP: text_for_accepting, DNET: text_for_rejecting}">
- <rich:dndParam name="text_for_accepting" value="Drop accepted!" />
- <rich:dndParam name="text_for_rejecting" value="Drop is not accepted!" />
- </rich:dropSupport>
- ...
-</rich:panel>
-...
-]]></programlisting>
- <para>What happens on the page:</para>
- <figure>
- <title><emphasis><property>"typeMapping"</property></emphasis> helps to add some extra information to <emphasis role="bold"><property><rich:dragIndicator></property></emphasis> </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropSupport1a.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In examples above dropping a dragable item triggers the use a parameter in the event processing; Ajax request is sent and dropListener defined for the component is called.
- </para>
-
- <para>
- Here is an example of moving records between tables. The
- example describes all the pieces for drag-and-drop. (To get
- extra information on these components, read the sections for
- these components.)
- </para>
-
- <para>
- As draggable items, this table contains a list of such items
- designated as being of type
- <code>"text"</code>
- :
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="caps">
- <f:facet name="caption">Capitals List</f:facet>
- <h:column>
- <a4j:outputPanel>
- <rich:dragSupport dragIndicator=":form:ind" dragType="text">
- <a4j:actionparam value="#{caps.name}" name="name"/>
- </rich:dragSupport>
- <h:outputText value="#{caps.name}"/>
- </a4j:outputPanel>
- </h:column>
-</rich:dataTable>
-...
-]]></programlisting>
-
- <para>
- As a drop zone, this panel will accept draggable items of
- type
- <code>text</code>
- and then rerender an element with the ID of
- <code>box</code>
- :
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel style="width:100px;height:100px;">
- <f:facet name="header">Drop Zone</f:facet>
- <rich:dropSupport acceptedTypes="text" reRender="box"
- dropListener="#{capitalsBean.addCapital2}"/>
-</rich:panel>
-...
-]]></programlisting>
-
- <para>
- As a part of the page that can be updated in a partial page
- update, this table has an ID of
- <code>box</code>
- :
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals2}" var="cap2" id="box">
- <f:facet name="caption">Capitals chosen</f:facet>
- <h:column>
- <h:outputText value="#{cap2.name}"/>
- </h:column>
-</rich:dataTable>
-...]]></programlisting>
-
- <para>
- And finally, as a listener, this listener will implement the
- dropped element:
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[...
-public void addCapital2(DropEvent event) {
- FacesContext context = FacesContext.getCurrentInstance();
- Capital cap = new Capital();
- cap.setName(context.getExternalContext().getRequestParameterMap().get("name").toString());
- capitals2.add(cap);
-}
-...
-]]></programlisting>
-
- <para>
- Here is the result after a few drops of items from the first
- table:
- </para>
-
- <figure>
- <title>Results of drop actions</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropSupport2.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- In this example, items are dragged element-by-element from
- the rendered list in the first table and dropped on a panel
- in the middle. After each drop, a drop event is generated
- and a common Ajax request is performed that renders results
- in the third table.
- </para>
-
- <para>
- As with every Ajax action component,
- <emphasis role="bold">
- <property><rich:dropSupport></property>
- </emphasis>
- has all the common attributes (
- <emphasis>
- <property>"timeout"</property>
- ,
- </emphasis>
- <emphasis>
- <property>"limitToList"</property>
- ,
- </emphasis>
- <emphasis>
- <property>"reRender"</property>
- ,
- </emphasis>
- etc.) for Ajax request customization.
- </para>
-
- <para>
- Finally, the component has the following extra attributes
- for event processing on the client:
- </para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis><property>"ondragenter"</property></emphasis></para>
- </listitem>
-
- <listitem>
- <para><emphasis><property>"ondragexit"</property></emphasis></para>
- </listitem>
-
- <listitem>
- <para><emphasis><property>"ondrop"</property></emphasis></para>
- </listitem>
-
- <listitem>
- <para><emphasis><property>"ondropend"</property></emphasis></para>
- </listitem>
- </itemizedlist>
-
- <para>
- Developers can use their own custom JavaScript functions to
- handle these events.
- </para>
- <para>
- Information about the
- <emphasis>
- <property>"process"</property>
- </emphasis>
- attribute usage you can find in the
- <link linkend="process"> "Decide what to process" </link> guide section
- .
- </para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- <emphasis role="bold">
- <property><rich:dropSupport></property>
- </emphasis>
- has no skin parameters and custom
- <emphasis>
- <property>style classes</property>
- </emphasis>
- , as the component isn't visual.
- </para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dro...">
- On the component Live Demo page
- </ulink>
- you can see the example of
- <emphasis role="bold">
- <property><rich:dropSupport></property>
- </emphasis>
- usage and sources for the given example.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:dropZone</keyword>
-</keywordset>
-</sectioninfo>
-<section>
- <title>Description</title>
- <para>The "target zone" for a drag operation. When a draggable element is moved and
- dropped onto the area of this component, <property>dropZone</property> performs an Ajax request
- processing this event.</para>
- <figure>
- <title><rich:dropZone> with dragged element</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/dropZone.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para></para></listitem>
- <listitem><para></para></listitem>
- <listitem><para></para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/dropZone.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,139 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>target zone</keyword>
-<keyword>rich:dropZone</keyword>
-<keyword>HtmlDropZone</keyword>
-</keywordset>
-</sectioninfo>
- <section>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.DropZone</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlDropZone</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DropZone</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.DropZoneRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.DropZoneTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:toolBar>
- <rich:draggable dragType="DropIcons">
- <!-- Draggable content that can be dropped to next drop zone-->
- </rich:draggable>
- ...
- <rich:dropZone acceptedTypes="[DropIcons]">
- <!--Some content to represent drop zone-->
- </rich:dropZone>
- ...
- </rich:toolBar>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[...
-org.richfaces.component.html.HtmlDropZone myDragZone = new org.richfaces.component.html.HtmlDropZone();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it's shown in the example, a key attribute is
- <emphasis ><property>"acceptedTypes"</property></emphasis>, where some
- Drag-zones names of drop elements responsible for drop-zone processing are defined, i.e. in the
- example of component creation on a page, drop zone calls the corresponding drop event processing,
- only if a drop comes from the above mentioned drag zone of the corresponding type. All zones of
- another type are ignored.</para>
- <para>Another important attribute for
- <emphasis role="bold"><property><rich:dropZone></property></emphasis> is
- <emphasis ><property>"typeMapping"</property></emphasis>, where
- corresponding order of <emphasis role="bold"><property><rich:dndParam></property></emphasis>
- wrapping is defined for a drop from each drag-zone type</para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[...
- <rich:dropZone acceptedTypes="[iconsDragged, textDragged]"
- typeMapping="{iconsDragged: DropIcon}">
- <rich:dndParam name="DropIcon">
- <h:graphicImage value="/images/drop-icon.png" />
- </rich:dndParam>
- ...
- </rich:dropZone>
-...
-]]></programlisting>
- <para>Thus, here is a drag zone indicator of iconsDragged type that obtains DropIcon parameter
- the same one as richParam gets. </para>
- <para>As any Ajax action, <property>dropZone</property> has all custom attributes of Ajax requests
- customization (<emphasis ><property>"timeout"</property></emphasis>,
- <emphasis ><property>"limitToList"</property></emphasis>,
- <emphasis ><property>"reRender"</property></emphasis>, etc). To read more
- about the attributes, follow
- <ulink url="https://ajax4jsf.dev.java.net/nonav/documentation/ajax-documentation/">Ajax4jsf
- Developer Guide</ulink> link.</para>
- <para>For <property>dropZone</property> layout could be defined with a
- <emphasis ><property>"layout"</property></emphasis> attribute with inline
- (default) and block values.</para>
- <para>As any action component
- <emphasis role="bold"><property><rich:dropZone></property></emphasis> has server-side
- action Listener defined with
- <emphasis ><property>"dropListener"</property></emphasis> attribute as
- well as a definition of attributes for all required events processing on the client:</para>
- <itemizedlist>
- <listitem><para>
- ondragenter
- </para></listitem>
- <listitem><para>
- ondragexit
- </para></listitem>
- <listitem><para>
- oncomplete
- </para></listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>As it has been mention above, the component defines a components wrapper for drag areas,
- i.e. it doesn't have its own representation. Therefore, for a wrapper
- <emphasis role="bold"><property><div></property></emphasis> element customization it's
- possible to use a component attribute <emphasis ><property>"styleClass"</property></emphasis> or
- redefine a rich-dropzone class in your own CSS files that is added to all
- <property>dropZone</property> components style on default.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section role="updated">
- <sectioninfo>
- <keywordset>
- <keyword>editor</keyword>
- <keyword>rich:editor</keyword>
- </keywordset>
- <releaseinfo>3.3.0</releaseinfo>
-</sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:editor></property>
- </emphasis> component is used for creating a WYSIWYG editor on a page.
- </para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:editor></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/editor1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
-<section>
- <title>Key Features</title>
-
- <itemizedlist>
-
- <listitem><para>Seam text support</para></listitem>
- <listitem><para>Manageable global configurations</para></listitem>
- <listitem><para>Possibility to use custom plug-ins</para></listitem>
- <listitem><para>Support of all TinyMCE's parameters through <emphasis role="bold"><property><f:param></property></emphasis></para></listitem>
-
- </itemizedlist>
-
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/editor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1037 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:editor</keyword>
- <keyword>editor</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.editor</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.Htmleditor</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.editor</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.editorRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.editorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor />
-...]]></programlisting>
- </section>
-
-
- <section>
-
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.Htmleditor;
-...
-Htmleditor myeditor = new Htmleditor();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold"><property><rich:editor></property></emphasis> is fully based on TinyMCE web based Javascript HTML WYSIWYG editor control and supports all of the features it has.
- The <emphasis role="bold"><property><rich:editor></property></emphasis> adapts the TinyMCE editor for JSF environment and adds some functional capabilities.
- </para>
- <para>
- The easiest way to place the <emphasis role="bold"><property><rich:editor></property></emphasis> on a page is as follows:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-<programlisting role="XML"><![CDATA[<rich:editor value="#{bean.editorValue}" />]]></programlisting>
- <para>
- Implementation of <emphasis role="bold"><property><rich:editor></property></emphasis> provides three ways to define the properties of the component:
- </para>
-
- <orderedlist>
- <listitem><para>Using attributes</para></listitem>
- <listitem><para>Using using <emphasis role="bold"><property><f:param></property></emphasis> JSF tag</para></listitem>
- <listitem><para>Using configuration files that allow you to set up multiple configurations for all editors in your application and change them in the runtime</para></listitem>
- </orderedlist>
-
- <para>The three methods are described in details in the chapter.</para>
- <para>
- The most important properties are implemented as attributes and you can define them as any other attribute.
- The attributes of the <emphasis role="bold"><property><rich:editor></property></emphasis> component match the corresponding properties of TinyMCE editor.
- </para>
- <para>
- For example, a theme for the editor can be defined using the <emphasis><property>"theme"</property></emphasis> attribute like this:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[
-<rich:editor value="#{bean.editorValue}" theme="advanced" />
-]]></programlisting>
- <para>Setting a different skin for the editor can be done using the <emphasis><property>"skin"</property></emphasis> attribute.</para>
- <para>
- Another useful property that is implemented at attribute level is <emphasis><property>"viewMode"</property></emphasis>.
- The attribute switches between "visual" and "source" modes, toggling between modes is performed setting the attribute to "visual" and "source" respectively.
- Implementation of <emphasis role="bold"><property><rich:editor></property></emphasis> also implies that you can change the modes dynamically setting the value of the <emphasis><property>"viewMode"</property></emphasis> attribute using EL-expression.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor value="#{editor.submit}" theme="advanced" viewMode="#{editor.viewMode}" >
- ...
- <h:selectOneRadio value="#{editor.viewMode}" onchange="submit();">
- <f:selectItem itemValue="visual" itemLabel="visual" />
- <f:selectItem itemValue="source" itemLabel="source" />
- </h:selectOneRadio>
- ...
-</rich:editor>
-...]]></programlisting>
- <para>
- Most configuration options that TinyMCE provides can be applied using <emphasis role="bold"><property><f:param></property></emphasis> JSF tag.
- The syntax is quite simple: the <emphasis><property>"name"</property></emphasis> attribute should contain the option,
- the <emphasis><property>"value"</property></emphasis> attribute assigns some value to the option.
- </para>
- <para>
- For example, this code adds some buttons to the editor and positions the toolbar.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-<programlisting role="XML"><![CDATA[...
-<rich:editor value="#{bean.editorValue}" theme="advanced" plugins="save,paste" >
- <f:param name="theme_advanced_buttons1" value="bold,italic,underline, cut,copy,paste,pasteword"/>
- <f:param name="theme_advanced_toolbar_location" value="top"/>
- <f:param name="theme_advanced_toolbar_align" value="left"/>
-</rich:editor>
-...]]></programlisting>
- <para>This is what you get as a result:</para>
- <figure>
- <title> Setting configuration options with <f:param>
-
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/editor2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <para>The third way to configure the <emphasis role="bold"> <property><rich:editor></property></emphasis> is
- to use configuration file (.properties)</para>
-
- <para>
- This method eases your life if you need to configure multiple instances
- of the <emphasis role="bold"><property><rich:editor></property></emphasis>: you configure the editor once
- and in one spot and the configuration properties can be applied to any
- <emphasis role="bold"><property><rich:editor></property></emphasis> in your application.
- </para>
- <para>To implement this type of configuration you need to take a few steps:</para>
- <itemizedlist>
- <listitem>
- <para>
- Create a configuration file (.properties) in the classpath folder and add some properties to it.
- Use standard syntax for the .properties files: <code>parameter=value</code>.
- Here is an example of configuration file:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[theme="advanced"
-plugins="save,paste"
-theme_advanced_buttons1="bold,italic,underline, cut,copy,paste,pasteword"
-theme_advanced_toolbar_location="top"
-theme_advanced_toolbar_align="left"
-]]></programlisting>
-
- </listitem>
- <listitem>
- <para>
- The properties stored in configuration file are passed to the
- <emphasis role="bold"><property><rich:editor></property></emphasis> via
- <emphasis><property>"configuration"</property></emphasis> attribute which takes the name of the configuration file
- as a value (with out .properties extension).
- </para>
- <para>
- For example, if you named the configuration file "editorconfig", you would address it as follows:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor value="#{bean.editorValue}" configuration="editorconfig"/>
-...]]></programlisting>
-
- </listitem>
- <listitem>
- <para>
- Alternately, you can use a EL-expression to define a configuration file.
- This way you can dynamically change the sets of configuration properties.
- </para>
-
- <para>
- For example, you have two configuration files "configurationAdvanced" and "configurationSimple" and you want them to be
- applied under some condition.
- </para>
- <para>
- To do this you need to bind <emphasis><property>"configuration"</property></emphasis>
- attribute to the appropriate bean property like this.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-<programlisting role="XML"><![CDATA[...
-<rich:editor value="#{bean.editorValue}" configuration="#{editor.configuration}" />
-...]]></programlisting>
- <para>Your Java file should look like this.</para>
-
- <programlisting role="JAVA"><![CDATA[...
-String configuration;
-
-if(some condition){//defines some condition
- configuration = "configurationAdvanced"; //the name on the file with advanced properties
-}
-else{
- configuration= "configurationSimple"; //the name on the file with simplified properties
-}
-...]]></programlisting>
-
-
- </listitem>
-
- </itemizedlist>
-
-
- <para>
- You also might want to add some custom plug-ins to your editor.
- You can read about how to create a plugin in <ulink url="http://wiki.moxiecode.com/index.php/TinyMCE:Creating_Plugin">TinyMCE Wiki article</ulink>.
- </para>
-
- <para>
- Adding a custom plugin also requires a few steps to take. Though, the procedure is very similar to adding a configuration file.
-
- </para>
-
- <para>This is what you need to add a plugin:</para>
- <itemizedlist>
- <listitem>
- <para>Create a .properties file and put the name of the plug-in and a path to it into the file.
- The file can contain multiple plug-in declarations. Your .properties file should be like this.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-pluginName=/mytinymceplugins/plugin1Name/editor_plugin.js
-...]]></programlisting>
-
- </listitem>
- <listitem>
- <para>
- Use the <emphasis><property>"customPlugins"</property></emphasis> attribute to specify the .properties file with a plugin name and a path to it.
- </para>
- <para>
- If your .properties file is named "myPlugins", then your will have this code on the page.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor theme="advanced" customPlugins="myPlugins" plugins="pluginName" />
-...]]></programlisting>
-
- </listitem>
- </itemizedlist>
- <note>
- <title>Note:</title>
- <para>
-Some plug-ins which available for download might have some dependencies on TinyMCE scripts.
-For example, dialog pop-ups require tiny_mce_popup.js script file.
-Assuming that you will not plug custom plugins to the RF jar with editor component
-(standard TinyMCE plugins creation implies that plugins are put into TinyMCE's corresponding directory)
- you should manually add required TinyMCE scripts to some project folder and correct the js includes.
- </para>
- </note>
- <para>
- The implementation of the <emphasis role="bold"><property><rich:editor></property></emphasis> component has two methods for handling
- events.
- </para>
- <para>The attributes take some function name as a value with is triggered on the appropriate event. You need to use standard JavaScript function calling syntax. </para>
-
- <itemizedlist>
- <listitem>
- <para>Using attributes (<emphasis><property>"onchange"</property></emphasis>,
- <emphasis><property>"oninit"</property></emphasis>,
- <emphasis><property>"onsave"</property></emphasis>,
- <emphasis><property>"onsetup"</property></emphasis>)
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor value="#{bean.editorValue}" onchange="myCustomOnChangeHandler()" />
-...]]></programlisting>
- </listitem>
- <listitem>
- <para>
- Using <emphasis role="bold"><property><f:param></property></emphasis> as a child element defining the <emphasis><property>"name"</property></emphasis> attribute
- with one of the TinyMCE's callbacks and the
- <emphasis><property>"value"</property></emphasis> attribute takes the function name you want to be called
- on the corresponding event as the value. Note, that the syntax in this case is a bit different: parentheses are not required.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:editor value="#{bean.editorValue}">
- <f:param name="onchange" value="myCustomOnChangeHandler" />
-</rich:editor>
-...]]></programlisting>
- </listitem>
- </itemizedlist>
-
- <para>The <emphasis role="bold"> <property><rich:editor></property></emphasis>
- component has a build-in converter that renders HTML code generated by the editor
- to Seam text (you can read more on Seam in <ulink url="http://docs.jboss.org/seam/1.1.5.GA/reference/en/html/text.html">Seam guide</ulink>.), it also interprets Seam text
- passed to the <emphasis role="bold"> <property><rich:editor></property></emphasis> and renders it to HTML.
- The converter can be enable with the <emphasis><property>"useSeamText"</property></emphasis> attribute.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <para>This HTML code generated by editor</para>
- <programlisting role="XML"><![CDATA[...
-<p><a href="http://mysite.com">Lorem ipsum</a> <i>dolor sit</i> amet, ea <u>commodo</u> consequat.</p>
-...]]></programlisting>
- <para>will be parsed to the following Seam text:</para>
-
- <programlisting role="XML"><![CDATA[...
-[Lorem ipsum=>http://mysite.com] *dolor sit* amet, ea _commodo_ consequat.
-...]]></programlisting>
- <para>Accordingly, if the Seam text is passed to the component it will be parsed to HTML code.</para>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:editor></property>
- </emphasis> components at once: <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin
- parameters</para>
- </listitem>
- <listitem>
- <para> Add to your style sheets style classes used
- by a <emphasis role="bold">
- <property><rich:editor></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for containers</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for external controls</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters redefinition for layout</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-left-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for buttons</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for list box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for color split button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for hovered color split button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for menu</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for menu item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for progress and resize states</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters redefinition for link in dialog box</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>hoverLinkColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for link in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>hoverLinkColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for fieldset in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for fieldset legend in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalLinkColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for input elements in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>warningColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>warningColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for panel wrapper in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for headers in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalLinkColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for links in tabs in dialog box</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for main text area</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section id="EditorDefinitionofCustomStyleSelectors">
- <title>Definition of Custom Style Selectors</title>
-
- <para>On the screenshot there are CSS selectors that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/editor3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table>
- <title>CSS selectors for the layout of the editor</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Class name (selector)</entry>
- <entry>Description</entry>
- <entry>Skin Parameter</entry>
- <entry>CSS property</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>.richfacesSkin .mceButton</entry>
- <entry>Defines styles for the buttons</entry>
- <entry>n/a</entry>
- <entry>background-image</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceButtonDisabled .mceIcon </entry>
- <entry>Defines styles for the icons</entry>
- <entry>n/a</entry>
- <entry>opacity</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceIframeContainer</entry>
- <entry>Defines styles for the container</entry>
- <entry>panelBorderColor</entry>
- <entry>border-top-color, border-bottom-color</entry>
- </row>
-
- <row>
- <entry morerows="2">.richfacesSkin .mceListBox .mceText</entry>
- <entry morerows="2">Defines styles for the list box</entry>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceExternalToolbar</entry>
- <entry>Defines styles for the toolbar</entry>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceMenu</entry>
- <entry>Defines styles for the menus</entry>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceMenu .mceMenuItemActive</entry>
- <entry>Defines styles for the active menu items</entry>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin .mceSeparator</entry>
- <entry>Defines styles for the buttons separator</entry>
- <entry>n/a</entry>
- <entry>background-image</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin table.mceLayout</entry>
- <entry>Defines styles for the table layout</entry>
- <entry>panelBorderColor</entry>
- <entry>border-left-color, border-right-color</entry>
- </row>
-
- <row>
- <entry>.richfacesSkin table.mceToolbar</entry>
- <entry>Defines styles for the rows of icons within toolbar</entry>
- <entry>n/a</entry>
- <entry>padding</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:editor></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="EditorDefinitionofCustomStyleSelectors">above</link>) and define necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.richfacesSkin .mceButton {
- border: 1px solid red;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Redefinition styles with predefined selectors</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/editor4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>It's also possible to change styles of a particular
- <emphasis role="bold"> <property><rich:editor></property></emphasis> component. In this case you should create own style classes and use them in corresponding
- <emphasis role="bold"><property><rich:editor></property></emphasis> <emphasis><property>"styleClass"</property></emphasis> attributes. An example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- margin-top: 20px;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:editor> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:editor value="#{bean.text}" styleClass="myClass"/>
-]]></programlisting>
-
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
-
- <para>The <emphasis role="bold"> <property><rich:editor></property></emphasis> is based on TinyMCE editor and supports almost all its features and properties some of which are not described here since you can find more detailed documentation on them on the official <ulink url="http://wiki.moxiecode.com/index.php/TinyMCE:Index">web site.</ulink></para>
-
-
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/editor.jsf?c=editor"
- >On RichFaces LiveDemo page </ulink> you can see an example of <emphasis
- role="bold">
- <property><rich:editor></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:effect</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:effect></property></emphasis> utilizes a set of effects provided by the scriptaculous JavaScript library.
- It allows to attach effects to JSF components and html tags.
- </para>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>No developers JavaScript writing needed to use it on pages</para></listitem>
- <listitem><para>Presents scriptaculous JavaScript library functionality</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/effect.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,252 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>effect</keyword>
- <keyword>rich:effect</keyword>
- <keyword>HtmlEffect</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Effect</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlEffect</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Effect</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.EffectRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.EffectTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <emphasis role="bold"><property><rich:effect></property></emphasis> on a page, use the
- following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:effect for="componentId" type="Appear"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlRichEffect;
-...
-HtmlRichEffect myEffect = new HtmlRichEffect();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> It is possible to use <emphasis role="bold"><property><rich:effect></property></emphasis> in two modes: <itemizedlist>
- <listitem><para>attached to the JSF components or html tags and triggered by a particular event.
- Wiring effect with JSF components might occur on the server or client. Wiring with html
- tag is possible only on the client side </para></listitem>
- <listitem><para>invoking from the JavaScript code by an effect name. During the rendering,
- <emphasis role="bold"><property><rich:effect></property></emphasis> generates the JavaScript function with defined name.
- When the function is called, the effect is applied </para></listitem>
- </itemizedlist>
- </para>
- <para>
- <emphasis role="bold">Those a the typical variants of using:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<!-- attaching by event -->
-<rich:panel>
- <rich:effect event="onmouseout" type="Opacity" params="duration:0.8,from:1.0,to:0.3" />
- <!--panel content-->
-</rich:panel>
-...
-
-<!-- invoking from JavaScript -->
-<div id="contentDiv">
- <!--div content-->
-</div>
-
-<input type="button" onclick="hideDiv({duration:0.7})" value="Hide" />
-<input type="button" onclick="showDiv()" value="Show" />
-
-<rich:effect name="hideDiv" for="contentDiv" type="Fade" />
-<rich:effect name="showDiv" for="contentDiv" type="Appear" />
-
-<!-- attaching to window on load and applying on particular page element -->
-<rich:effect for="window" event="onload" type="Appear" params="targetId:'contentDiv',duration:0.8,from:0.3,to:1.0" />
-...
-]]></programlisting>
-
- <figure>
- <title>Initial</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/effect_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <figure>
- <title>When the mouse cursor is over</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/effect_2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- <emphasis>
- <property>"name"</property>
- </emphasis> attribute defines a name of the JavaScript function that is be generated on a page
- when the component is rendered. You can invoke this function to activate the effect. The
- function accesses one parameter. It is a set of effect options in JSON format. </para>
-
- <para>
- <emphasis>
- <property>"type"</property>
- </emphasis> attribute defines the type of an effect. For example, "Fade", "Blind", "Opacity".
- Have a look at <ulink url="http://script.aculo.us">scriptaculous documentation</ulink> for set
- of available effect. </para>
-
- <para>
- <emphasis>
- <property>"for"</property>
- </emphasis> attribute defines the id of the component or html tag, the effect is attached
- to. RichFaces converts the <emphasis>
- <property>"for"</property>
- </emphasis> attribute value to the client id of the component if such component is found. If
- not, the value is left as is for possible wiring with on the DOM element's id on the client
- side. By default, the target of the effect is the same element that effect pointed to.
- However, the target element is might be overridden with <emphasis>
- <property>"targetId"</property>
- </emphasis> option passed with <emphasis>
- <property>"params"</property>
- </emphasis> attribute of with function paramenter. </para>
-
- <para>
- <emphasis>
- <property>"params"</property>
- </emphasis> attribute allows to define the set of options possible for particurar effect. For
- example, 'duration', 'delay', 'from', 'to'. Additionally to the options used by the effect
- itself, there are two option that might override the <emphasis role="bold"><property><rich:effect></property></emphasis>
- attribute. Those are: <itemizedlist>
- <listitem><para><emphasis>
- <property>"targetId"</property>
- </emphasis> allows to re-define the target of effect. The option is override the value of <emphasis>
- <property>"for"</property>
- </emphasis> attribute.</para></listitem>
- <listitem><para><emphasis>
- <property>"type"</property>
- </emphasis> defines the effect type. The option is override the value of <emphasis>
- <property>"type"</property>
- </emphasis> attribute.</para></listitem>
- </itemizedlist>
- </para>
-
- <para> You can use a set of effects directly without defining the <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis> component on a page if it's convenient for you. For that, load the
- scriptaculous library to the page with the following code: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<a4j:loadScript src="resource://scriptaculous/effect.js" />
-...
-]]></programlisting>
- <para> If you do use the <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis>component, there is no need to include this library because it's already here. </para>
-
- <para>For more information look at <ulink
- url="http://jboss.com/index.html?module=bb&op=viewtopic&t=119044">RichFaces
- Users Forum</ulink>.</para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:effect></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://wiki.jboss.org/wiki/CreateABannerUsingEffectsAndPoll">
- Here
- </ulink>
- you can get additional information how to create an image banner
- using
- <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis>
- and
- <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis>
- components and figure out how to create an HTML banner from
- <ulink
- url="http://wiki.jboss.org/auth/wiki/CreateAHTMLBannerUsingEffectsAndPoll">
- "Creating HTML Banner Using Effects And Poll RichFaces Wiki" article
- </ulink>
- .
- </para>
- <para>In the
- <ulink url="http://wiki.jboss.org/auth/wiki/RichFacesCookbook/SlideShow">RichFaces Cookbook article</ulink>
- you can find information how to make a Slide Show with help of the
- <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis>
- and <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> components.
- </para>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/effect.jsf?c=effect"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis> usage. </para>
- <para>How to save <emphasis role="bold">
- <property><rich:effect></property>
- </emphasis>status see on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=118833"
- >RichFaces Users Forum</ulink>.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN" "http://www.oasis-open.org/docbook/xml/4.3CR3/docbookx.dtd"
-[
-<!ENTITY extDataTable "rich:extendedDataTable">
-]
->
-
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>&extDataTable;</keyword>
- </keywordset>
- <releaseinfo>3.2.2</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The component for tables extending standard component <emphasis
- role="bold">
- <property><rich:dataTable></property>
- </emphasis>.</para>
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init.png"
- width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>Possibility to scroll data</para>
- </listitem>
- <listitem>
- <para>Possibility to add an attribute to set the kind of
- selection (none, single line or multiple
- lines)</para>
- </listitem>
- <listitem>
- <para>Possibility to change the sequence of the displayed
- columns by dragging the column-header to another
- position</para>
- </listitem>
- <listitem>
- <para>Possibility to show or hide columns by selecting or
- deselecting them in a context menu</para>
- </listitem>
- <listitem>
- <para>Possibility to save the current settings (visible
- columns, column width, sequence of the columns) to
- be reused the next time the page will be
- shown</para>
- </listitem>
- <listitem>
- <para>Possibility to combine rows to groups</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/extendedDataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,633 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN" "http://www.oasis-open.org/docbook/xml/4.3CR3/docbookx.dtd"
-[
-<!ENTITY extDataTable "rich:extendedDataTable">
-]
->
-
-<section role="new">
- <sectioninfo>
- <keywordset>
- <keyword>table</keyword>
- <keyword>&extDataTable;</keyword>
- <keyword>HtmlDataTable</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ExtendedDataTable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlExtendedDataTable</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ExtendedDataTable</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ExtendedDataTableRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ExtendedDataTableTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:extendedDataTable value="#{extendedDT.dataModel}" var="edt">
- <rich:column>
- ...
- </rich:column>
-</rich:extendedDataTable>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically from Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlExtendedDataTable;
-...
-HtmlExtendedDataTable myTable = new HtmlExtendedDataTable();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component is similar to the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>. The data in component is scrollable. You can also set the
- type of selection (<emphasis>
- <property>"none",</property>
- </emphasis>
- <emphasis>
- <property>"single"</property>
- </emphasis> or <emphasis>
- <property>"multi"</property>
- </emphasis> lines). Selection of multiple lines is possible using
- Shift and Ctrl keys.</para>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:extendedDataTable id="edt" value="#{extendedDT.dataModel}" var="edt" width="500px" height="500px" selectedClass="dataTableSelectedRow" sortMode="single" selectionMode="multi" selection="#{extendedDT.selection}" rowKeyVar="rkvar" tableState="#{extendedDT.tableState}">
- <rich:column id="id" headerClass="dataTableHeader" width="50" label="Id" sortable="true" sortBy="#{edt.id}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
- <f:facet name="header">
- <h:outputText value="Id" />
- </f:facet>
- <h:outputText value="#{edt.id}" />
- </rich:column>
- <rich:column id="name" width="300" headerClass="dataTableHeader" label="Name" sortable="true" sortBy="#{edt.name}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon" filterBy="#{edt.name}" filterEvent="onkeyup" visible="false">
- <f:facet name="header">
- <h:outputText value="Name" />
- </f:facet>
- <h:outputText value="#{edt.name}" />
- </rich:column>
- <rich:column id="date" width="100" headerClass="dataTableHeader" label="Date" sortable="true" comparator="#{extendedDT.dateComparator}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
- <f:facet name="header">
- <h:outputText value="Date" />
- </f:facet>
- <h:outputText value="#{edt.date}"><f:convertDateTime pattern="yyyy-MM-dd HH:mm:ss" />
- </h:outputText>
- </rich:column>
- <rich:column id="group" width="50" headerClass="dataTableHeader" label="Group" sortable="true" sortBy="#{edt.group}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
- <f:facet name="header">
- <h:outputText value="Group" />
- </f:facet>
- <h:outputText value="#{edt.group}" />
- </rich:column>
-</rich:extendedDataTable>
-...]]></programlisting>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component with selected multiple lines</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init2.png"
- width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Information about sorting and filtering can be found in <link linkend="sort"
- >RichFaces Developer Guide section on sorting</link>.
- </para>
- <para>
- For external filtering
- <emphasis role="bold"><property><&extDataTable;></property></emphasis>
- component supports <emphasis><property>"filter"</property></emphasis> facet
- for <emphasis role="bold"><property><rich:column></property></emphasis> component.
- In this facet you can define your own controls for filtering which will be positioned like built-in filter controls.
- Rest of the filter scenario is the same as described <link linkend="filter">RichFaces Developer Guide section on filtering</link>.
- </para>
-
- <para> In the example <emphasis>
- <property>"selection"</property>
- </emphasis> attribute contains object with selected rows. </para>
-
- <note>
- <title>Note:</title>
- <para> Attribute<emphasis>
- <property>"height"</property>
- </emphasis>is mandatory. The default value is <emphasis>
- <property>"500px"</property>
- </emphasis>. </para>
- </note>
-
- <para> Menu on the right side of the column header is used to perform action:
- sorting, grouping, hiding columns. </para>
-
- <para>This is an example:</para>
-
- <figure>
- <title>Column menu</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init3.png"
- width="50%"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> After selecting a "Group by this column" option, you can see the data
- grouped. You can collapse and expand groups by clicking on a group
- header. </para>
-
- <para>This is an example:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component with grouped data</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init4.png"
- width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute in <emphasis role="bold">
- <property><rich:column></property>
- </emphasis> sets the name of the column, which is used when dragging
- columns (in drag window) and in context menu, in "Columns" submenu. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:column id="name" label="#{msg['name']}"
-...]]></programlisting>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component with Drag&Drop column 'Name'</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init5.png"
- width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> In the component <emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> columns can hidden: </para>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component with hidden column 'Id' and 'Group'</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_init6.png"
- width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <!-- <para>
- For each column can be set the filter.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:column id="name"
- filterBy="#{entity.name}" filterEvent="onkeyup">
-...
-]]></programlisting>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component with filtered column 'Name'</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/extendedDataTable_filtered.png" width="75%"/>
- </imageobject>
- </mediaobject>
- </figure>
- -->
- <para><emphasis>
- <property>"tableState"</property>
- </emphasis> attribute can be used to bind state of the table (column
- width, column position, visible, sequence, grouping...) to a
- backing-bean string property, for a later used. This state can be for
- example saved to a database, and it is different form standard JSF
- state saving mechanisms.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:extendedDataTable tableState="#{extendedDT.tableState}">
-...
-]]></programlisting>
-
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Redefines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Redefines the footer content</entry>
- </row>
- <row>
- <entry>caption</entry>
- <entry>Redefines the caption content</entry>
- </row>
- </tbody>
- </tgroup>
-
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="ExtSPR">
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a footer</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableFooterBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a column header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a column footer</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableSubfooterBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for cells</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section id="ExtDofCCS">
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> class names</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/extendedDataTable_cn.png"
- width="100%"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="ExtdTC">
- <title>Classes names that define a whole component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-extdt</entry>
- <entry>Defines styles for all
- table</entry>
- </row>
- <row>
- <entry>rich-extdt-caption</entry>
- <entry>Defines styles for a
- "caption"
- facet element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define header and footer elements</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-extdt-header</entry>
- <entry>Defines styles for a table header
- row</entry>
- </row>
-
- <row>
- <entry>rich-extdt-header-continue</entry>
- <entry>Defines styles for all header
- lines after the first</entry>
- </row>
- <row>
- <entry>rich-extdt-subheader</entry>
- <entry>Defines styles for a column
- header</entry>
- </row>
-
- <row>
- <entry>rich-extdt-footer</entry>
- <entry>Defines styles for a footer
- row</entry>
- </row>
-
- <row>
- <entry>rich-extdt-footer-continue</entry>
- <entry>Defines styles for all footer
- lines after the first</entry>
- </row>
- <row>
- <entry>rich-extdt-subfooter</entry>
- <entry>Defines styles for a column
- footer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define rows and cells of a table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-extdt-headercell</entry>
- <entry>Defines styles for a header
- cell</entry>
- </row>
-
- <row>
- <entry>rich-extdt-subheadercell</entry>
- <entry>Defines styles for a column
- header cell</entry>
- </row>
- <row>
- <entry>rich-extdt-cell</entry>
- <entry>Defines styles for a table
- cell</entry>
- </row>
- <row>
- <entry>rich-extdt-row</entry>
- <entry>Defines styles for a table
- row</entry>
- </row>
- <row>
- <entry>rich-extdt-firstrow</entry>
- <entry>Defines styles for a table start
- row</entry>
- </row>
-
- <row>
- <entry>rich-extdt-footercell</entry>
- <entry>Defines styles for a footer
- cell</entry>
- </row>
-
- <row>
- <entry>rich-extdt-subfootercell</entry>
- <entry>Defines styles for a column
- footer cell</entry>
- </row>
-
- <row>
- <entry>rich-extdt-group-cell</entry>
- <entry>Defines styles for a grouping row cell</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para> An example of use the styles for component <emphasis role="bold">
- <property><&extDataTable;></property>
- </emphasis> is similar to <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- </para>
-
- </section>
-
-<section>
- <title>Relevant resources links</title>
- <para>
- Some additional information about usage of component can be found
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/extendedDataTable.jsf...">on its LiveDemo page</ulink>.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section role="updated">
- <sectioninfo>
- <keywordset>
- <keyword>fileUpload</keyword>
- <keyword>rich:fileUpload</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component designed to perform Ajax-ed files upload to server.
- </para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>ProgressBar shows the status of downloads</para></listitem>
- <listitem><para>Restriction on File type, file size and number of files to be uploaded</para></listitem>
- <listitem><para>Multiple files upload support</para></listitem>
- <listitem><para>Embedded Flash module</para></listitem>
- <listitem><para>Possibility to cancel the request</para></listitem>
- <listitem><para>One request for every upload</para></listitem>
- <listitem><para>Automatic uploads</para></listitem>
- <listitem><para>Supports standard JSF internationalization</para></listitem>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Disablement support</para></listitem>
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/fileUpload.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1393 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:fileUpload</keyword>
- <keyword>fileUpload</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.FileUpload</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlFileUpload</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.FileUpload</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.FileUploadRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.FileUploadTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload />
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlFileUpload;
-...
-HtmlFileUpload myFileUpload = new HtmlFileUpload();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component consists of two parts:<itemizedlist>
- <listitem>
- <para>
- <property>List of files</property> which contains the list of currently
- chosen files to upload with possibility to manage every file </para>
- </listitem>
- <listitem>
- <para>
- <property>Component controls</property> - the bar with controls for managing
- the whole component </para>
- </listitem>
- </itemizedlist>
- </para>
-
-
- <para> There are two places where the uploaded files are stored: </para>
- <itemizedlist>
- <listitem>
- <para> In the temporary folder (depends on OS) if the value of the
- <code>createTempFile</code> parameter in <property>Ajax4jsf
- Filter</property> (in web.xml) section is "true" (by Default) </para>
- <programlisting role="XML"><![CDATA[...
-<init-param>
- <param-name>createTempFiles</param-name>
- <param-value>true</param-value>
-</init-param>
-...]]></programlisting>
- </listitem>
- <listitem>
- <para> In the RAM if the value of the <code>createTempFile</code> parameter in
- <property>Ajax4jsf Filter</property> section is "false".
- This is a better way for storing small-sized files. </para>
- </listitem>
- </itemizedlist>
-
- <para> The <emphasis>
- <property>"uploadData"</property>
- </emphasis> attribute defines the collection of files uploaded. See the example below. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload uploadData="#{bean.data}"/>
-...]]></programlisting>
-
- <para>The <emphasis>
- <property>"fileUploadedListener"</property>
- </emphasis> is called at server side after every file uploaded and used for the saving
- files from temporary folder or RAM. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}"/>
- ...]]></programlisting>
- <para> The following methods for processing the uploaded files are available: </para>
- <itemizedlist>
- <listitem>
- <para>
- <code>isMultiUpload()</code>. It returns "true" if several
- files have been uploaded </para>
- </listitem>
- <listitem>
- <para>
- <code>getUploadItems()</code>. It returns the list of the uploaded files. If one
- file was uploaded, the <code>getUploadItems()</code> method will return the list
- consisting of one file </para>
- </listitem>
- <listitem>
- <para>
- <code>getUploadItem()</code>. It returns the whole list in case of uploading one
- file only. If several files were uploaded, the <code>getUploadItem()</code>
- method will return the first element of the uploaded files list. </para>
- </listitem>
- </itemizedlist>
- <para> Automatically files uploading could be performed by means of the <emphasis>
- <property> "immediateUpload"</property>
- </emphasis> attribute. If the value of this attribute is "true" files
- are uploaded automatically once they have been added into the list. All next files in
- the list are uploaded automatically one by one. If you cancel uploading process next
- files aren't started to upload till you press the "Upload"
- button or clear the list. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}" immediateUpload="true"/>
- ...]]></programlisting>
-
- <para> The <emphasis>
- <property> "autoclear"</property>
- </emphasis> attribute is used to remove automatically files from the list after upload
- completed. See the simple example below. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload uploadData="#{bean.data}" autoclear="true"/>
-...]]></programlisting>
- <para> Each file in list waiting for upload has link "Cancel" opposite its name.
- Clicking this link invokes JS API <code>remove()</code> function, which gets <code>$('id').component.entries[i]</code> as a parameter
- and removes the particular file from list and from the queue for upload.
- After a file has been uploaded the link "Cancel" changes to "Clear".
- Clicking "Clear" invokes <code>clear()</code> JS API function, which also gets ID of the particular entry and removes it from the list.
- Uploaded to server file itself is kept untouched.
- </para>
-
- <!--RESTRICTIONS-->
-
- <para> The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component provides following restrictions: </para>
- <itemizedlist>
- <listitem>
- <para> On <property> file types</property>, use <emphasis>
- <property> "acceptedTypes"</property>
- </emphasis> attribute to define file types accepted by component. In the example
- below only files with "html" and "jpg"
- extensions are accepted to upload. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload acceptedTypes="html, jpg"/>
-...]]></programlisting>
- </listitem>
- <listitem>
- <para> On <property> file size</property>, use the <code>maxRequestSize</code>
- parameter(value in bytes) inside <property>Ajax4jsf Filter</property> section in
- <property>web.xml</property>: </para>
- <programlisting role="XML"><![CDATA[...
-<init-param>
- <param-name>maxRequestSize</param-name>
- <param-value>1000000</param-value>
-</init-param>
-...]]></programlisting>
- </listitem>
- <listitem>
- <para> On <property>max files quantity</property>, use the <emphasis>
- <property> "maxFilesQuantity"</property>
- </emphasis> attribute to define max number of files allowed to be uploaded.
- After a number of files in the list equals to the value of this attribute
- "Add" button is disabled and nothing could be uploaded even if
- you clear the whole list. In order to upload files again you should rerender the
- component. As it could be seen in the example below, only 2 files are accepted
- for uploading. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload maxFilesQuantity="2"/>
-...]]></programlisting>
- <para> This is the result: </para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis>with <emphasis>
- <property> "maxFilesQuantity"</property>
- </emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- </itemizedlist>
-
-
-
-
- <para id="fileUploadEventAttributes">The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component provides a number of specific event attributes: </para>
- <itemizedlist>
-
- <listitem>
- <para> The <emphasis>
- <property> "onadd"</property>
- </emphasis>a event handler called on an add file operation </para>
- </listitem>
-
- <listitem>
- <para> The <emphasis>
- <property> "onupload"</property>
- </emphasis> which gives you a possibility to cancel the upload at client side
- </para>
- </listitem>
- <listitem>
- <para> The <emphasis>
- <property> "onuploadcomplete"</property>
- </emphasis> which is called after all files from the list are uploaded </para>
- </listitem>
- <listitem>
- <para> The <emphasis>
- <property> "onuploadcanceled"</property>
- </emphasis> which is called after upload has been canceled via cancel control
- </para>
- </listitem>
- <listitem>
- <para> The <emphasis>
- <property> "onerror"</property>
- </emphasis> which is called if the file upload was interrupted according to any
- errors </para>
- </listitem>
- </itemizedlist>
-
-
-
-
- <!--Flash Module-->
- <para> The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component has an embedded Flash module that adds extra functionality to the
- component. The module is enabled with <emphasis>
- <property> "allowFlash"</property>
- </emphasis> attribute set to "true". </para>
- <para>These are the additional features that the Flash module provides:</para>
-
- <itemizedlist>
- <listitem>
- <para>Multiple files choosing;</para>
- </listitem>
- <listitem>
- <para>Permitted file types are specified in the "Open File" dialog
- window;</para>
- </listitem>
- <listitem>
- <para>A number of additional entry object properties are also available, which can
- be found <link linkend="objectProperties">RichFaces Developer Guide section on object properties</link>. </para>
- </listitem>
- </itemizedlist>
-
- <para>Apart from uploading files to the sever without using Ajax, the Flash module provides
- a number of useful API functions that can be used to obtain information about the
- uploaded file. </para>
-
- <para>There are 2 ways to obtain the data stored in the FileUploadEntry object. </para>
-
- <itemizedlist>
- <listitem>
- <para>By means of JavaScript on the client side. Use the following syntax for that
- <code>entries[i].propertyName</code>. For example
- <code>entries[0].state</code> will return the state of the file the is being
- processed or has just been processed.</para>
- </listitem>
-
-
- <listitem>
- <para>The properties of <code>FileUploadEntry</code> object can be retrieved using
- the <code>entry.propertyName</code> expression in the specific event attributes.
- For example,
- <code>onupload="alert(event.memo.entry.fileName);" </code>
- will display a message with the name of the file at the very moment when upload
- operation starts. A full list of properties can be found in <link
- linkend="objectPropertiesWithAttributes">RichFaces Developer Guide section on properties and their attributes</link>.</para>
- </listitem>
-
-
- </itemizedlist>
- <para>The given bellow code sample demonstrates how the properties can be used. Please study
- it carefully. </para>
- <programlisting role="XML"><![CDATA[...
-<head>
- <script>
- function _onaddHandler (e) {
- var i = 0;
- for (; i < e.memo.entries.lenght; i++) {
- alert(e.memo.entries[i].creator); //Shows creators of the added files
- }
- }
-
- function _onerrorhandle(e) {
- alert(e.memo.entry.fileName + "file was not uploaded due transfer error");
- }
- </script>
-</head>
- ...]]></programlisting>
-
-
-
- <para> Moreover, embedded Flash module provides a smoother representation of progress bar
- during the uploading process: the polling is performed is not by Ajax, but my means of
- the flash module. </para>
- <figure>
- <title> Uploading using Flash module <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis>
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/flash_fileUpload.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>However, the Flash module doens't perform any visual representation of the
- component.</para>
-
- <!--End of Flash Module-->
-
-
-
-
-
- <para> In order to customize the information regarding the ongoing process you could use <emphasis>
- <property>"label"</property>
- </emphasis> facet with the following macrosubstitution: <itemizedlist>
- <listitem>
- <para>
- <code> {B}</code>, <code>{KB}</code>, <code>{MB}</code> contains the size of
- file uploaded in bytes, kilobytes, megabytes respectively </para>
- </listitem>
- <listitem>
- <para>
- <code>{_B}</code>, <code>{_KB}</code>, <code>{_MB}</code> contains the
- remain file size to upload in bytes, kilobytes, megabytes respectively
- </para>
- </listitem>
- <listitem>
- <para>
- <code>{ss}</code>, <code>{mm}</code>, <code>{hh}</code> contains elapsed
- time in seconds, minutes and hours respectively </para>
- </listitem>
- </itemizedlist>
- </para>
-
- <!--
- There is a number of facets providing for this component:
- <emphasis>
- <property> "header"</property></emphasis>
-
- <emphasis>
- <property> "footer"</property></emphasis>
- <emphasis>
- <property> "label"</property></emphasis>. could be used to provide displaying the progress of uploading.
- -->
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}">
- <f:facet name="label">
- <h:outputText value="{_KB}KB from {KB}KB uploaded --- {mm}:{ss}" />
- </f:facet>
-</rich:fileUpload>
-...]]></programlisting>
- <para>This is the result:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> with <emphasis>
- <property> "label"</property>
- </emphasis> facet </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>You could define labels of the <property>component controls</property> with the help
- of <emphasis>
- <property> "addControlLabel"</property>
- </emphasis>, <emphasis>
- <property> "clearAllControlLabel"</property>
- </emphasis>, <emphasis>
- <property> "clearControlLabel"</property>
- </emphasis>, <emphasis>
- <property> "stopEntryControlLabel"</property>
- </emphasis>, <emphasis>
- <property> "uploadControlLabel"</property>
- </emphasis> attributes. See the following example. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload addControlLabel="Add file..." clearAllControlLabel="Clear all" clearControlLabel="Clear"
- stopEntryControlLabel="Stop process" uploadControlLabel="Upload file"/>
-...]]></programlisting>
- <para> This is the result: </para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> with labels </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para> The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component allows to use sizes attributes: </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property> "listHeight"</property>
- </emphasis> attribute specify height for list of files in pixels </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property> "listWidth"</property>
- </emphasis> attribute specify width for list of files in pixels </para>
- </listitem>
- </itemizedlist>
-
- <para> In order to disable the whole component you could use the <emphasis>
- <property> "disabled"</property>
- </emphasis> attribute. See the following example. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload disabled="true"/>
-...]]></programlisting>
- <para>This is the result:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis>with <emphasis>
- <property> "disabled"</property>
- </emphasis> attribute </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>It's possible to handle events for fileUpload using JavaScript code. A
- simplest example of usage JavaScript API is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload id="upload" disabled="false"/>
-<h:commandButton onclick="${rich:component('upload')}.disable();" value="Disable" />
-...]]></programlisting>
-
- <para>
- <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component also provides a number of JavaScript property, that can be used to
- process uploaded files, file states etc. The given below example illustrates how the
- <code>entries[0].state</code> property can be used to get access to the file state.
- Full list of JavaScript properties can be found <link linkend="objectProperties"
- >below</link>. </para>
-
-
- <programlisting role="XML"><![CDATA[...
-<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}"
- maxFilesQuantity="#{fileUploadBean.uploadsAvailable}"
- id="upload"
- immediateUpload="#{fileUploadBean.autoUpload}"
- acceptedTypes="jpg, gif, png, bmp"/>
- <a4j:support event="onuploadcomplete" reRender="info" />
-</rich:fileUpload>
-<h:commandButton onclick="if($('j_id232:upload').component.entries[0].state == FileUploadEntry.UPLOAD_SUCCESS) alert ('DONE');" value="Check file state"/>
-...]]></programlisting>
-
-
- <para>The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component allows to use internationalization method to redefine and localize
- the labels. You could use application resource bundle and define
- <code>RICH_FILE_UPLOAD_CANCEL_LABEL</code>,
- <code>RICH_FILE_UPLOAD_STOP_LABEL</code>, <code>RICH_FILE_UPLOAD_ADD_LABEL</code>,
- <code>RICH_FILE_UPLOAD_UPLOAD_LABEL</code>,
- <code>RICH_FILE_UPLOAD_CLEAR_LABEL</code>,
- <code>RICH_FILE_UPLOAD_CLEAR_ALL_LABEL</code>,
- <code>RICH_FILE_UPLOAD_PROGRESS_LABEL</code>,
- <code>RICH_FILE_UPLOAD_SIZE_ERROR_LABLE</code>,
- <code>RICH_FILE_UPLOAD_TRANSFER_ERROR_LABLE</code>,
- <code>RICH_FILE_UPLOAD_ENTRY_STOP_LABEL</code>,
- <code>RICH_FILE_UPLOAD_ENTRY_CLEAR_LABEL</code>,
- <code>RICH_FILE_UPLOAD_ENTRY_CANCEL_LABEL</code> there. </para>
-
-
-
- <!--para> The <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component could work together with Seam framework. <ulink
- url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."
- >On RichFaces LiveDemo page </ulink> you can see how to configure filter for this framework in web.xml file
- in order to handle <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> requests. </para-->
- <para>To make <property><rich:fileUpload></property> component work properly
- with MyFaces extensions, the order in which filters are defined and mapped in web.xml,
- is important. See <ulink
- url="http://www.jboss.org/community/docs/DOC-13537"
- >corresponding FAQ chapter</ulink>. </para>
-
- </section>
- <!-- JavaScript API-->
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>beforeSubmit()</entry>
- <entry>Sets up necessary request parameters for file uploading and submits
- form to server by command button. This method should be used together
- with commands. </entry>
- </row>
-
- <row>
- <entry>clear()</entry>
- <entry>Removes all files from the list. The function can also get the <code>$('id').component.entries[i]</code> as a parameter to remove a particular file.</entry>
- </row>
-
- <row>
- <entry>disable()</entry>
- <entry>Disables the component</entry>
- </row>
-
- <row>
- <entry>enable()</entry>
- <entry>Enables the component</entry>
- </row>
-
- <row>
- <entry>remove()</entry>
- <entry>Cancels the request for uploading a file by removing this file from
- upload list and upload queue. Gets <code>$('id').component.entries[i]</code> as a parameter.</entry>
- </row>
-
- <row>
- <entry>stop()</entry>
- <entry>Stops the uploading process</entry>
- </row>
-
- <row>
- <entry>submitForm()</entry>
- <entry>Submits form to server. All added files will be put to model and
- event.</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table id="objectProperties">
- <title>Client-side object properties</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Property</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>entries</entry>
- <entry>Returns a array of all files in the list </entry>
- </row>
-
-
-
- <row>
- <entry>entries.length</entry>
- <entry>Returns the number of files in the list </entry>
- </row>
-
-
- <row>
- <entry>entries[i].fileName</entry>
- <entry>Returns the file name, that is retrieved by the array index </entry>
- </row>
-
-
-
- <row>
- <entry>entries[i].state </entry>
- <entry>Returns the file state. Possible states are <itemizedlist>
-
- <listitem>
- <para>"initialized" - the file is added,
- corresponds to FileUploadEntry.INITIALIZED constant </para>
- </listitem>
- <listitem>
- <para>"progress" - the file is being uploaded,
- corresponds to FileUploadEntry.UPLOAD_IN_PROGRESS
- constant</para>
- </listitem>
- <listitem>
- <para>"ready" - uploading is in process,
- corresponds to FileUploadEntry.READY constant The file will
- be uploaded on queue order.</para>
- </listitem>
- <listitem>
- <para>"canceled" - uploading of the file is
- canceled, corresponds to FileUploadEntry.UPLOAD_CANCELED
- constant </para>
- </listitem>
- <listitem>
- <para>"done" - the file is uploaded
- successfully, corresponds to FileUploadEntry.UPLOAD_SUCCESS
- constant</para>
- </listitem>
- <listitem>
- <para>"transfer_error" - a file transfer error
- occurred, corresponds to
- FileUploadEntry.UPLOAD_TRANSFER_ERROR constant </para>
- </listitem>
- <listitem>
- <para>"size_error" - the file exceeded maximum
- size, corresponds to FileUploadEntry.UPLOAD_SIZE_ERROR
- constant</para>
- </listitem>
-
-
- </itemizedlist>
- </entry>
- </row>
-
-
-
- <row>
- <entry>entries[i].size</entry>
- <entry> Returns the size of the file. Available in flash enabled version
- only</entry>
- </row>
- <row>
- <entry>entries[i].Type</entry>
- <entry>Returns the mime type of the file. Available in flash enabled version
- only</entry>
- </row>
- <row>
- <entry>entries[i].creator </entry>
- <entry>Returns the name of the author of the file. Available in flash
- enabled version only</entry>
- </row>
- <row>
- <entry>entries[i].creationDate</entry>
- <entry>Returns the date when the file was created. Available in flash
- enabled version only</entry>
- </row>
- <row>
- <entry>entries[i].modificationDate</entry>
- <entry>Returns the date of the last file modification. Available in flash
- enabled version only</entry>
- </row>
-
-
-
-
- </tbody>
- </tgroup>
- </table>
-
-
-
-
- <table id="objectPropertiesWithAttributes">
- <title>Client-side object properties available with specific <link
- linkend="fileUploadEventAttributes"> event attributes</link></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Property</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
-
-
-
- <row>
- <entry>entry.state </entry>
- <entry>Returns the file state. Possible states are <itemizedlist>
-
- <listitem>
- <para>"initialized" - the file is added,
- corresponds to FileUploadEntry.INITIALIZED constant </para>
- </listitem>
- <listitem>
- <para>"progress" - the file is being uploaded,
- corresponds to FileUploadEntry.UPLOAD_IN_PROGRESS
- constant</para>
- </listitem>
- <listitem>
- <para>"ready" - uploading is in process,
- corresponds to FileUploadEntry.READY constant The file will
- be uploaded on queue order.</para>
- </listitem>
- <listitem>
- <para>"canceled" - uploading of the file is
- canceled, corresponds to FileUploadEntry.UPLOAD_CANCELED
- constant </para>
- </listitem>
- <listitem>
- <para>"done" - the file is uploaded
- successfully, corresponds to FileUploadEntry.UPLOAD_SUCCESS
- constant</para>
- </listitem>
- <listitem>
- <para>"transfer_error" - a file transfer error
- occurred, corresponds to
- FileUploadEntry.UPLOAD_TRANSFER_ERROR constant </para>
- </listitem>
- <listitem>
- <para>"size_error" - the file exceeded maximum
- size, corresponds to FileUploadEntry.UPLOAD_SIZE_ERROR
- constant</para>
- </listitem>
-
-
- </itemizedlist>
- </entry>
- </row>
-
- <row>
- <entry>entry.fileName </entry>
- <entry>Returns the file's name. This property works with all event
- handlers except for "onadd". </entry>
- </row>
-
-
-
- <row>
- <entry>entry.size</entry>
- <entry> Returns the size of the file. Available in flash enabled version
- only</entry>
- </row>
- <row>
- <entry>entry.Type</entry>
- <entry>Returns the mime type of the file. Available in flash enabled version
- only</entry>
- </row>
- <row>
- <entry>entry.creator </entry>
- <entry>Returns the name of the author of the file. Available in flash
- enabled version only</entry>
- </row>
- <row>
- <entry>entry.creationDate</entry>
- <entry>Returns the date when the file was created. Available in flash
- enabled version only</entry>
- </row>
- <row>
- <entry>entry.modificationDate</entry>
- <entry>Returns the date of the last file modification. Available in flash
- enabled version only</entry>
- </row>
-
-
-
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- </section>
- <!-- End of JavaScript API-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>label</entry>
- <entry>Defines the information regarding the ongoing process</entry>
- </row>
- <row>
- <entry>progress</entry>
- <entry>Defines the information regarding the uploading process</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> components at once: <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
- <listitem>
- <para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a component</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a font</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a toolbar</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>border-left-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for items in the list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a "Cancel",
- "Clear" links</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalLinkColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a button border</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a highlighted button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a pressed button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for "Upload",
- "Clean" buttons</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled "Start" button
- icon</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled "Clear" button
- icon</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>The following picture illustrates how CSS classes define styles for component
- elements.</para>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload_cn2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="fileUploadCN">
- <title>Classes names that define a component representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-fileupload-list-decor</entry>
- <entry>Defines styles for a wrapper <div> element of a
- fileUpload</entry>
- </row>
- <row>
- <entry>rich-fileupload-font</entry>
- <entry>Defines styles for a font of buttons and items</entry>
- </row>
- <row>
- <entry>rich-fileupload-toolbar-decor</entry>
- <entry>Defines styles for a toolbar</entry>
- </row>
- <row>
- <entry> rich-fileupload-list-overflow</entry>
- <entry>Defines styles for a list of files</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Classes names that define buttons representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-fileupload-button</entry>
- <entry>Defines styles for a buttons</entry>
- </row>
- <row>
- <entry>rich-fileupload-button-border</entry>
- <entry>Defines styles for a border of buttons</entry>
- </row>
- <row>
- <entry>rich-fileupload-button-light</entry>
- <entry>Defines styles for a highlight of button</entry>
- </row>
- <row>
- <entry>rich-fileupload-button-press</entry>
- <entry>Defines styles for a pressed button</entry>
- </row>
- <row>
- <entry>rich-fileupload-button-dis</entry>
- <entry>Defines styles for a disabled button</entry>
- </row>
- <row>
- <entry>rich-fileupload-button-selection</entry>
- <entry>Defines styles for "Upload",
- "Clean" buttons</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define the representation of the buttons' icons</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-fileupload-ico</entry>
- <entry>Defines styles for an icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-add</entry>
- <entry>Defines styles for a "Add" button icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-start</entry>
- <entry>Defines styles for a "Upload" button icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-stop</entry>
- <entry>Defines styles for a "Stop" button icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-clear</entry>
- <entry>Defines styles for a "Clear" button icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-add-dis</entry>
- <entry>Defines styles for a disabled "Add" button
- icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-start-dis</entry>
- <entry>Defines styles for a disabled "Upload" button
- icon</entry>
- </row>
- <row>
- <entry>rich-fileupload-ico-clear-dis</entry>
- <entry>Defines styles for a disabled "Clear" button
- icon</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define list items representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-fileupload-table-td</entry>
- <entry>Defines styles for a wrapper <td> element of a list
- items</entry>
- </row>
- <row>
- <entry>rich-fileupload-anc</entry>
- <entry>Defines styles for "Cancel",
- "Stop", "Clear" links</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> components on a page using CSS, it's enough to create classes with
- the same names (possible classes could be found in the tables <link
- linkend="fileUploadCN"> above</link>) and define necessary properties in them. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-fileupload-anc{
- font-weight:bold;
- text-decoration:none;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example above the font weight and text decoration for
- "Cancel" and "Clear" links are changed.</para>
-
- <para> Also it's possible to change styles of particular <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> component. In this case you should create own style classes and use them in
- the corresponding <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para> The <emphasis>
- <property>"addButtonClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> is defined as it's shown in the example below: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:fileUpload ... addButtonClass="myClass"/>
-]]></programlisting>
-
- <para>This is the result:</para>
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/fileUpload_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for "Add"
- button is changed.</para>
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf?c=file..."
- >On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
- <property><rich:fileUpload></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:form</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:form></property></emphasis> component is very similar to JSF <emphasis role="bold"><property><h:form></property></emphasis> the only difference is in generation of links inside and possibility of default Ajax submission.
- </para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/form.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,120 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:form</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Form</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Form</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.AjaxForm</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.FormRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Component definition on a page is similar to definition of the original
- component from JSF HTML library. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:form>
- <h:panelGrid>
- <h:commandButton value="Button" action="#{userBean.nameItMark}" />
- </h:panelGrid>
-</a4j:form>
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.AjaxForm;
-...
-AjaxForm myForm = new AjaxForm();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of usahe</title>
- <para>
- The difference with the original component is that all hidden fields
- required for command links are always rendered and it doesn't depend
- on links rendering on the initial page. It solves the problem with
- invalid links that weren't rendered on a page immediately, but after
- some Ajax request.</para>
- <para>Beginning with release 1.0.5 additional attributes that make this form
- variant universal have appeared. </para>
- <para> If <emphasis><property>"ajaxSubmit"</property>
- </emphasis> attribute is true, it becomes possible to set Ajax
- submission way for any components inside with the help of the javascript
- <code>A4J.AJAX.Submit(...)</code>call. In this case, the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains a list of Ids of components defined for
- re-rendering. If you have <emphasis role="bold">
- <property><h:commandButton></property>
- </emphasis> or <emphasis role="bold">
- <property><h:commandLink></property>
- </emphasis> inside the form, they work as <emphasis role="bold">
- <property><a4j:commandButton></property>
- </emphasis>. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:form id="helloForm" ajaxSubmit="true" reRender="table">
- ...
- <t:dataTable id="table"... >
- ...
- </t:dataTable>
- ...
- <t:datascroller for="table"... >
- ...
- </t:datascroller>
- ...
-</a4j:form>
-]]></programlisting>
- <para>
- This example shows that in order to make <emphasis role="bold"><property><t:datascroller></property></emphasis> submissions to be Ajax ones it's required only to place this <emphasis role="bold"><property><t:datascroller></property></emphasis> into <emphasis role="bold"><property><a4j:form></property></emphasis>.
- In the other case it is necessary to redefine renders for its child links elements that are defined as <emphasis role="bold"><property><h:commandLink></property></emphasis> and can't be made Ajax ones with using e.g. <emphasis role="bold"><property><a4j:support></property></emphasis>.
- </para>
- <para>
- With the help of <emphasis><property>"limitToList"</property></emphasis> attribute you can limit areas, which are updated after the responses.
- If <emphasis><property>"limitToList"</property></emphasis> is true, only the reRender attribute is taken in account.
- Therefore, if you use blocks of text wrapped with <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> and <code>ajaxRendered= "true"</code>, blocks of text are ignored.
- </para>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find in the "<link linkend="process">Decide what to process</link>" guide section.
- </para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/form.jsf?c=form">AjaxForm</ulink> at RichFaces Livedemo for examples of component usage and their sources.
- a</para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:gmap</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>Component that presents the Google <property>map</property> in the JSF applications.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:gmap></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/gmap_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Presents all the Google <property>map</property> functionality</para></listitem>
- <listitem><para>Highly customizable via attributes</para></listitem>
- <listitem><para>No developers JavaScript writing needed to use on a pages</para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/gmap.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,422 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>map</keyword>
- <keyword>gmapVar</keyword>
- <keyword>HtmlGmap</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Gmap</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlGmap</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Gmap</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.GmapRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.GmapTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following
- syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:gmap gmapKey="..."/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlGmap;
-...
-HtmlGmap myMap = new HtmlGmap();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- To use
- <emphasis>
- <property>Google Map</property>
- </emphasis>
- in your application, generate a key on
- <ulink url="http://google.com/apis/maps">
- Google Map official resource
- </ulink>
- . One key could be used for one directory on the server.
- </para>
- <para>
- Here are the main settings of initial rendering performed
- with a component
- <property>map</property>
- that are accessible with the following attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"zoom"</property>
- </emphasis>
- defines an approximation size (boundary values 1-18)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"lat"</property>
- </emphasis>
- specifies an initial latitude coordinate in degrees,
- as a number between -90 and +90
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"lng"</property>
- </emphasis>
- specifies an initial longitude coordinate in
- degrees, as a number between -180 and +180
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"mapType"</property>
- </emphasis>
- specifies a type of a rendered map (<code>G_NORMAL_MAP</code>,
- <code>G_SATELLITE_MAP</code> (DEFAULT), <code>G_HYBRID_MAP</code>)
- </para>
- </listitem>
- </itemizedlist>
- <para>
- For example, the city of Paris is shown after rendering with
- the following initial settings:
- <code>lat = "48.44"</code>
- ,
- <code>lng = "2.24"</code>
- and
- <code>zoom = "5"</code>
- .
- </para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- initial rendering
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/gmap2.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- It's also possible to set accessible controls on the
- <property>map</property>
- with the help of the attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>
- "showGMapTypeControl"
- </property>
- </emphasis>
- determines whether the controls for a map type
- definition are switched on
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>
- "showGScaleControl"
- </property>
- </emphasis>
- determines whether the controls for scaling are
- switched on
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>
- "showGLargeMapControl"
- </property>
- </emphasis>
- determines whether the control for
- <property>map</property>
- scale rendering is rendered
- </para>
- </listitem>
- </itemizedlist>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- accessible controls
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/gmap3.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- To set the controls as well as to perform other activities (Zoom
- In/Out etc.) is possible with your JavaScript, i.e. declare
- a name of a <property>map</property> object in the
- <emphasis>
- <property>"gmapVar"</property>
- </emphasis>
- attribute and then call the object directly with
- <emphasis>
- <property>Google Maps</property>
- </emphasis> API.
- </para>
-
- <para>
- For instance, if you have <code>gmapVar = "map"</code> declared for your component, to zoom in a map you should call <code>map.zoomIn()</code> on an
- event. See also an example of <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis> usage on the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/gmap.jsf?c=gmap">RichFaces Live Demo</ulink>.
- </para>
-
- <tip>
- <title>Tip:</title>
- <para>You do not need to use reRender to perform uptades for the <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis> component. Use the <emphasis>
- <property>"gmapVar"</property></emphasis> attribute and
- <ulink url="http://code.google.com/intl/ru/apis/maps/documentation/reference.html">Google Maps native API</ulink> instead as it's described above.</para>
- </tip>
-
- <para>
- Moreover, to add e.g. some JavaScript effects, events
- defined on it are used.
- </para>
- <itemizedlist>
- <listitem>
- <para><emphasis><property>"onmouseover"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onclick"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onmouseout"</property></emphasis></para>
- </listitem>
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>
- Google Map does not support XHTML format of the page.
- Thus, if you use Facelets and JSF 1.2, do not forget to
- put the following tags somewhere on the page:
- </para>
- <programlisting role="XML"><![CDATA[...
-<f:view contentType="text/html">...</f:view>
-...
-]]></programlisting>
- </note>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- component isn't tied to skin parameters, as there is no
- additional elements on it, except the ones provided with
- <emphasis>
- <property>Google Map</property>
- .
- </emphasis>
- </para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="gC">
- <title>
- Classes names that define a component appearance
- </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-gmap</entry>
- <entry>
- Defines styles for a wrapper <div>
- element of a component
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- In order to redefine styles for all
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- components on a page using CSS, it's enough to create
- classes with the same names (possible classes could be found
- in the tables
- <link linkend="gC">above</link>
- ) and define necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-gmap{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/gmap_pc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- In the example the font style for buttons was changed.
- </para>
-
- <para>
- Also it's possible to change styles of particular
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- component. In this case you should create own style classes
- and use them in corresponding
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- <property>styleClass</property>
- attributes. An example is placed below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>
- The
- <emphasis>
- <property>"styleClass"</property>
- </emphasis>
- attribute for
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- is defined as it's shown in the example below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:gmap ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>
- Redefinition styles with own classes and
- <emphasis>
- <property>"styleClass"</property>
- </emphasis>
- attributes
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/gmap_oc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- As it could be seen on the picture above, the font weight
- for buttons was changed.
- </para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/gmap.jsf?c=gmap">
- On the component Live Demo page
- </ulink>
- you can see the example of
- <emphasis role="bold">
- <property><rich:gmap></property>
- </emphasis>
- usage and sources for the given example.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section id="graphValidator" role="new">
- <sectioninfo>
- <keywordset>
- <keyword>rich:graphValidator</keyword>
- </keywordset>
- <releaseinfo>3.2.2</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The<emphasis role="bold">
- <property><rich:graphValidator></property>
- </emphasis>component allows to register Hibernate Validators for multiple input components.</para>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Skips all JSF processing except validation</para></listitem>
-
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/graphValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:graphValidator</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.graphValidator</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlgraphValidator</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.graphValidator</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.graphValidatorRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.graphValidatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:outputText value="Name:" />
-<h:inputText value="#{userBean.name}" id="name" required="true">
- <f:validateLength minimum="3" maximum="12"/>
- <rich:graphValidator event="onblur"/>
-</h:inputText>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlCalendar;
-...
-HtmlgraphValidator mygraphValidator= new HtmlgraphValidator();
-...]]></programlisting>
- </section>
-
-<section>
- <title>Details of usage</title>
- <para>
- The<emphasis role="bold"><property><rich:graphValidator></property></emphasis>component behaves basically the same way as the <emphasis role="bold">
- <property><rich:beanValidator></property>
- </emphasis> The deference between these two components is that in order to
- validate some input data with a <emphasis role="bold">
- <property><rich:beanValidator></property>
- </emphasis> component, it should be a nested element of an input component,
- whereas <emphasis role="bold">
- <property><rich:graphValidator></property>
- </emphasis> wraps multiple input components and validates the data received from
- them. </para>
-
- <para>The following example demonstrates a pattern of how the <emphasis role="bold">
- <property><rich:graphValidator></property>
- </emphasis> can be used:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:graphValidator>
- <h:panelGrid columns="3">
- <h:outputText value="Name:" />
- <h:inputText value="#{validationBean.name}" id="name">
- <f:validateLength minimum="2" />
- </h:inputText>
- <rich:message for="name" />
- <h:outputText value="Email:" />
- <h:inputText value="#{validationBean.email}" id="email" />
- <rich:message for="email" />
- </h:panelGrid>
-</rich:graphValidator>
-...]]></programlisting>
-
- <para>The data validation can be also performed using Hibernate Validator, the same way as
- it is done with <emphasis role="bold">
- <property><rich:beanValidator></property>
- </emphasis>. </para>
-
-
-
- <para>The components's architecture provides an option to bind the component to a
- managed bean, which is done with the <emphasis>
- <property>"value"</property>
- </emphasis> attribute. The attribute ensures that the entered data is valid
- after the model is updated by revalidating the bean properties.</para>
- <para>Please look at the example below.</para>
-
-
- <programlisting role="XML"><![CDATA[...
-<rich:graphValidator summary="Invalid values: " value="#{dayStatistics}">
- <a4j:repeat value="#{dayStatistics.dayPasstimes}" var="pt" id="table">
- <h:outputText value="#{pt.title}" />
- <rich:inputNumberSpinner minValue="0" maxValue="24" value="#{pt.time}" id="time" />
- <rich:message for="time" />
- </a4j:repeat>
-</rich:graphValidator>
-...]]></programlisting>
-
-
-<para>Hence, the given above code will provide the functionality that is illustrated on the images below.</para>
-
- <figure>
- <title>"Games" field did not pass validation</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/graphValidator11.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>As you can see from the picture the "Games" field did not pass validation, as <emphasis role="bold"><property><rich:graphValidator></property>
- </emphasis> can be used to perform validation of a single input item.
- </para>
-
- <figure>
- <title>Total sum of all input values is incorrect</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/graphValidator12.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para> The figure above shows that the entered data was revalidated after all fields were completed, and the data did not pass revalidation since the total sum was incorrect. </para>
-</section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/graphValidator.jsf?c=...">GraphValidator page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>hotKey</keyword>
- <keyword>rich:hotKey</keyword>
- </keywordset>
- <releaseinfo>3.2.2</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:hotKey></property>
- </emphasis> component allows to register hot keys for the page or particular elements and to define client-side processing functions for these keys.
- </para>
- </section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>
- Includes all features of the <ulink url="http://code.google.com/p/js-hotkeys/">Javascript jQuery Hotkeys Plugin</ulink>
- </para>
- </listitem>
- <listitem>
- <para>
- Hot key registration by request through JavaScript API
- </para>
- </listitem>
- <listitem>
- <para>
- Possibility to attach <emphasis role="bold"><property><rich:hotKey></property></emphasis> to a whole page or
- to a particular element using <emphasis><property>"selector"</property></emphasis> attribute
- </para>
- </listitem>
- <listitem>
- <para>
- Hot key registration timing
- </para>
- </listitem>
-
- <listitem>
- <para>
- Enabling/disabling the <emphasis role="bold"><property><rich:hotKey></property></emphasis> using JavaScript API
- </para>
- </listitem>
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/hotKey.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:hotKey</keyword>
- <keyword>hotKey</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.HotKey</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlHotKey</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.HotKey</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.HotKeyRenderer</entry>
- </row>
- <!--row>
- <entry>tag-class</entry>
- <entry></entry>
- </row-->
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:hotKey key="alt+a" handler="alert('alt+A is pressed')" />
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlHotKey;
-...
-HtmlHotKey myHotKey = new HtmlHotKey();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- There are two ways to register <emphasis role="bold"><property><rich:hotKey></property></emphasis>:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- just place it anywhere on the page. In this case the <emphasis role="bold"><property><rich:hotKey></property></emphasis>
- component is attached to the whole page (<property>html[0] element</property>). This is default scenario.
- </para>
- </listitem>
- <listitem>
- <para>
- attach it with <emphasis><property>"selector"</property></emphasis> attribute to all the elements defined using this selector.
- This attribute uses defined by <ulink url="http://www.w3.org">w3c consortium</ulink> syntax for CSS rule selector with some jQuery extensions.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <emphasis><property>"key"</property></emphasis> attribute defines the hot key itself
- which is processed by the component.
- </para>
- <para>
- After the hot key has been registered and defined you could set the <emphasis><property>"handler"</property></emphasis>
- attribute which determines a JavaScript function to be called every time when corresponding keys are pressed.
- </para>
- <para>
- <emphasis role="bold">
- Example:
- </emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle var="cap" sourceValue="#{capitalsBean.capitals}" id="ls">
- <rich:column>
- <f:facet name="header">
- <h:outputText value="State flag"/>
- </f:facet>
- <h:graphicImage value="#{cap.stateFlag}"/>
- </rich:column>
- <rich:column>
- <f:facet name="header">
- <h:outputText value="State name"/>
- </f:facet>
- <h:outputText value="#{cap.name}"/>
- </rich:column>
-</rich:listShuttle>
-<rich:hotKey selector="#ls" key="right" handler="#{rich:component('ls')}.copy()"/>
-<rich:hotKey selector="#ls" key="left" handler="#{rich:component('ls')}.remove()"/>
-<rich:hotKey selector="#ls" key="end" handler="#{rich:component('ls')}.copyAll()"/>
-<rich:hotKey selector="#ls" key="home" handler="#{rich:component('ls')}.removeAll()"/>
-...]]></programlisting>
- <para>
- In the example above the <emphasis><property>"selector"</property></emphasis> attribute is used.
- So the keys work only if <emphasis role="bold"><property><rich:listShuttle></property></emphasis> component is focused.
- </para>
- <para>
- You could press <property>Right</property> or <property>Left</property> keys in order to move some selected items between lists.
- You could press <property>Home</property> or <property>End</property> buttons in order to move all items between lists.
- </para>
- <para>
- With the help of the <emphasis><property>"timing"</property></emphasis> attribute
- you could manage <emphasis role="bold"><property><rich:hotKey></property></emphasis> registration timing.
- There are three possible values of this attribute:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- "immediate" - the component is rendered in browser immediately (by default)
- </para>
- </listitem>
- <listitem>
- <para>
- "onload" - the component is rendered after the page is fully loaded
- </para>
- </listitem>
- <listitem>
- <para>
- "onregistercall" - the component is rendered only after JavaScript API for the key registration is used.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- The <emphasis><property>"type"</property></emphasis> attribute defines the type of keyboard event. Possible values are:
- "onkeyup", "onkeypress" and "onkeydown".
- </para>
-<!--EXAMPLE -->
- <para>
- The <emphasis><property>"disableInInput"</property></emphasis> attribute disables the <emphasis role="bold"><property><rich:hotKey></property></emphasis> if it is activated on input elements and the value of this attribute is "true".
- </para>
- <para>
- The <emphasis><property>"checkParent"</property></emphasis> attribute defines the hotkey handling of events generated by child components nested into the parent component to which the <emphasis role="bold"><property><rich:hotKey></property></emphasis> is attached.
- </para>
- <para>
- The <emphasis role="bold"><property><rich:hotKey></property></emphasis> component also provides a number of JavaScript API functions. There is an example below.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form id="myForm">
- <rich:hotKey id="myKey" key="ctrl+g" handler="alert('Ctrl+G is pressed')" />
- <button onclick="${rich:component('myKey')}.enable(); return false;">Turn Ctrl+G On</button>
- <button onclick="${rich:component('myKey')}.disable(); return false;">Turn Ctrl+G Off</button>
-</h:form>
-...]]></programlisting>
- <para>
- In the example above the <property>Ctrl+G</property> is registered as a global hotkey,
- so if you press this key combination the alert window with the <property>"Ctrl+G is pressed"</property> text appears. With the help
- of <property>enable()</property>, <property>disable()</property> JavaScript API fucntions you could enable or disable registered hotkey.
- </para>
- </section>
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- add(selector, key, handler)
- </entry>
- <entry>
- Adds the hotkey(from key param) for elements targeted by selector. it assigns a handler function to the key
- </entry>
- </row>
- <row>
- <entry>remove()</entry>
- <entry>Removes hotkey registration</entry>
- </row>
- <row>
- <entry>enable()</entry>
- <entry>Enables registered hotkey</entry>
- </row>
- <row>
- <entry>disable()</entry>
- <entry>Disables registered hotkey</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para><emphasis role="bold">
- <property><rich:hotKey></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/hotKey.jsf?c=hotKey">On RichFaces LiveDemo page </ulink> you can see an example of
- <emphasis role="bold"><property><rich:hotKey></property></emphasis> usage and sources for the given example.
- </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:htmlCommandLink</keyword>
- </keywordset>
- </sectioninfo>
-
-<title>Description</title>
- <para>The <emphasis role="bold">
- <property><a4j:htmlCommandLink></property>
- </emphasis> component is very similar to the same component from the JSF HTML library, the only slight difference is in links generation and problem solving that occurs when an original component is used.</para>
-</section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/htmlCommandLink.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,94 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:htmlCommandLink</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>javax.faces.HtmlCommandLink</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Command</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>javax.faces.component.html.HtmlCommandLink</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.HtmlCommandLinkRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Component definition on a page is the same as for the original component from the JSF HTML library.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:htmlCommandLink value="value" action="action"/>
-]]></programlisting>
-</section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import javax.faces.component.html.HtmlCommandLink;
-...
-HtmlCommandLink myCommandLink = new HtmlCommandLink();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Key attributes and ways of usage</title>
- <para>The difference with the original component is that all hidden fields required for command links with the child <emphasis role="bold">
- <property><f:param></property>
- </emphasis> elements are always rendered and it doesn't depend on links rendering on the initial page. It solves the problem with invalid links that weren't rendered on a page immediately, but after some Ajax request.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:form>
- ...
- <a4j:htmlComandLink action="action" value="link" rendered="#{bean.rendered}">
- <f:param .../>
- <a4j:htmlComandLink>
- ...
-</a4j:form>
-]]></programlisting>
-<para>In this example <emphasis role="bold">
- <property><a4j:htmlCommandLink></property>
- </emphasis>works as standard <emphasis role="bold">
- <property><h:commandLink></property>
- </emphasis>, but here hidden fields required for correct functionality are rendered before the first downloading of a page, though it doesn't happen if its attribute isn't set to "false".</para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/htmlCommandLink.jsf?c...">On RichFaces LiveDemo page </ulink> you can found some additional information for <emphasis role="bold"
- ><property><a4j:htmlCommandLink></property></emphasis> component usage.
- </para>
- <para>
- <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/param.html">On RichFaces LiveDemo page </ulink> you can found some additional information about <emphasis role="bold"><property><f:param></property></emphasis> component.
- </para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:include</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:include></property></emphasis> component is used to include one view as part of another and navigate there using standard JSF navigation.
- </para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/include.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,97 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:include</keyword>
- </keywordset>
- </chapterinfo>
- <table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Include</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Output</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.Include</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxIncludeRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant of the component on a page use the following syntax:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:panelGrid>
- <a4j:include viewId="/pages/include/first.xhtml" />
-</rich:panelGrid>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- This component cannot be created dynamically.
- </para>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The component is used to include one view as part of another and may be put anywhere in the page code.
- The <emphasis><property>'viewID'</property></emphasis> attribute is used to point at the part to be included and should present a full context-relative path of the resource in order to be used as from-view and to-view in the JSF navigation cases.
- In general the component functions as Fecelets <emphasis role="bold"><property><ui:include></property></emphasis> tag but with partial page navigation in Ajax mode as an advantage.
- </para>
- <note>
- <title>Note:</title>
- <para>
- To make the RichFaces<emphasis role="bold"><property><a4j:include></property></emphasis> component (as well as Facelets<emphasis role="bold"><property><ui:include></property></emphasis> tag) work properly when including the part of the page check that included page does not generates extra HTML <!DOCTYPE>, <html>, <body> tags.
- </para>
- </note>
-
- <para>
- The navigation rules could look as following:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<navigation-rule>
- <from-view-id>/pages/include/first.xhtml</from-view-id>
- <navigation-case>
- <from-outcome>next</from-outcome>
- <to-view-id>/pages/include/second.xhtml</to-view-id>
- </navigation-case>
-</navigation-rule>]]></programlisting>
-
- </section>
-
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/include.jsf?c=include">Include page</ulink> for examples of component usage and their sources.
- </para>
-
- </section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>inplaceInput</keyword>
- <keyword>rich:inplaceInput</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:inplaceInput></property>
- </emphasis> is an input component used for displaying and editing data inputted. </para>
- <figure>
- <title><emphasis role="bold"><property><rich:inplaceInput></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>View/changed/edit states highly customizable representations</para>
- </listitem>
- <listitem>
- <para>Changing state event customization</para>
- </listitem>
- <listitem>
- <para>Possibility to call custom JavaScript function on state changes</para>
- </listitem>
- <listitem>
- <para>Optional "inline" or "block" element rendering on a page</para>
- </listitem>
- <listitem>
- <para>Edit mode activation when the component gets focus with the "Tab"</para>
- </listitem>
- <listitem>
- <para>Sizes synchronizations between modes</para>
- </listitem>
- <listitem>
- <para>Controls customization</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceInput.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,824 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:inplaceInput</keyword>
- <keyword>inplaceInput</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.inplaceInput</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlInplaceInput</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.inplaceInput</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.inplaceInputRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.inplaceInputTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example of how the component can be used on a page: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}"/>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.inplaceInput;
-...
-HtmlInpaceInput myInplaceInput = new InplaceInput();
-...]]></programlisting>
- </section>
-
- <!-- Start Details of Usage-->
- <section>
- <title>Details of Usage</title>
-
- <para>
- The
- <emphasis role="bold"><property><rich:inplaceInput></property></emphasis>
- component was designed to facilitate displaying and inputting(editing) some data.
- </para>
-
- <para>
- The <emphasis><property>"value"</property></emphasis> attribute is a value-binding expression for the current value of the component.
- </para>
-
- <!--para>
- However, if
- <emphasis><property>"value"</property></emphasis>
- attribute is not defined, you can use
- <emphasis><property>"defaultLabel"</property></emphasis> attribute
- which displays some default text while
- <emphasis><property>"value"</property></emphasis>
- attribute stays undefined.
- </para-->
-
- <para>
- The component has three functional states:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <property>View</property> state displays default label with the value taken from
- <emphasis><property>"value"</property></emphasis> or <emphasis><property>"defaultLabel"</property></emphasis> attributes.
- </para>
- <para>
- If the initial value of the <emphasis><property>"value"</property></emphasis>
- attribute is "null" or <property>empty string</property>
- the <emphasis><property>"defaultLabel"</property></emphasis> attribute is used to define default label.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" defaultLabel="click to edit"/>
-...]]> </programlisting>
-
-<!-- <para>
- The managed bean code:
- </para>-->
-<!-- <programlisting role="JAVA"><![CDATA[...
-private String value = null;
-...]]> </programlisting>-->
- <para>
- In the example above the <emphasis><property>"value"</property></emphasis> attribute is not initialized
- therefore "<code>click to edit</code>" text, that
- <emphasis><property>"defaultLabel"</property></emphasis>, contains is displayed.
- </para>
- <para>
- This is the result:
- </para>
- <figure>
- <title>View state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- <listitem>
- <para>
- <property>Edit</property> state - input representation to allow value edit
- </para>
- <figure>
- <title>Edit state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- <listitem>
- <para><property>Changed</property> state - value representation after it was changed</para>
- <figure>
- <title>Changed state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- </itemizedlist>
-
- <para>
- The <emphasis><property>"editEvent"</property></emphasis> attribute provides an option to assign a JavaScript action
- to initiate the change of the state from <property>view</property>/<property>changed</property> to <property>edit</property>.
- The default value is "onclick".
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" editEvent="ondblclick"/>
-...]]> </programlisting>
-
- <!--note>
- <title>Note:</title>
- <para>
- Do not use "on" prefix applying event action. E.g. use "click" instead of "onClick", use "mouseover" instead of "onMouseOver".
- </para>
- </note-->
-
-
- <para>
- The <emphasis role="bold"><property><rich:inplaceInput></property></emphasis>
- component provides specific event attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>"oneditactivation"</property></emphasis> which is fired on <property>edit</property> state activation
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"oneditactivated"</property></emphasis> which is fired when <property>edit</property> state is activated
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"onviewactivation"</property></emphasis> which is fired on <property>view</property> state activation
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"onviewactivated"</property></emphasis> which is fired after the component is changed to representation state
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" oneditactivation="if (!confirm('Are you sure you want to change the value?')){return false;}" />
-...]]> </programlisting>
- <para>
- The given code illustrates how <emphasis><property>"oneditactivation"</property></emphasis> attribute works,
- namely when the state is being changed from <property>view</property> to <property>edit</property>,
- a confirmation window with a message <code>"Are you sure you want to change value?"</code> comes up.
- </para>
-
- <para>
- Using the boolean <emphasis><property>"selectOnEdit"</property></emphasis> attribute set to true,
- the text in the input field will be selected when
- the change from <property>view</property>/<property>changed</property> state to <property>edit</property> occurs.
- </para>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Usage of the <emphasis><property>"selectOnEdit"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
-
- <para>
- If the <emphasis role="bold"><property><rich:inplaceInput></property></emphasis> loses focus, input data is saved automatically
- and the component displays a new value. Additionally, the data is saved when "Enter" is pressed.
- Nevertheless, you can use the <emphasis><property>"showControls"</property></emphasis>
- attribute, which makes "Save" and "Cancel" buttons appear next to the input field.
- If the controls are used, data is not saved automatically when the form loses focus: user has to confirm that he/she wants to save/discard the data explicitly.
- In both cases(with controls or without them) the input data can be discarded by pressing "Esc" key.
-
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" showControls="true"/>
-...]]> </programlisting>
-
- <figure>
- <title>Usage <emphasis><property>"showControls"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput6.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- You can also position the controls relatively to the input field, by means of
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The <emphasis><property>"controlsHorizontalPosition"</property></emphasis> attribute
- with "left", "right" and "center" definitions
- </para>
- </listitem>
- <listitem>
- <para>
- The <emphasis><property>"controlsVerticalPosition "</property></emphasis> attribute
- with "bottom", "center" and "top" definitions
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" showControls="true" controlsVerticalPosition="bottom" controlsHorizontalPosition="left"/>
-...]]> </programlisting>
- <para>
- This is the result:
- </para>
- <figure>
- <title>Positioning of "Save" and "Cancel" buttons</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput7.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- It is also possible to use <emphasis><property>"controls"</property></emphasis> facet in order to replace the default controls with facets content.
- See the example below.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput defaultLabel="Click here to edit" showControls="true" controlsHorizontalPosition="left" controlsVerticalPosition="bottom" id="inplaceInput">
- <f:facet name="controls">
- <h:commandButton value="Save" onclick="#{rich:component('inplaceInput')}.save();" type="button" />
- <h:commandButton value="Cancel" onclick="#{rich:component('inplaceInput')}.cancel();" type="button" />
- </f:facet>
-</rich:inplaceInput>
-...]]> </programlisting>
- <para>
- This is the result:
- </para>
- <figure>
- <title><emphasis><property>"controls"</property></emphasis> facet usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput8.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <note>
- <title>Note:</title>
- <para>
- The <emphasis> <property>"controls"</property></emphasis>facet also implies using
- <emphasis><property>"showControls"</property></emphasis>
- attribute and it has to be defined as "true".
- </para>
- </note>
- <para>
- Redefinition of the
- "save" and "cancel" icons can be performed using
- <emphasis><property>"saveControlIcon"</property></emphasis>
- and
- <emphasis><property>"cancelControlIcon"</property></emphasis>
- attributes. You need to define the path to where your images are located.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceInput value="#{bean.value}" defaultLabel='click to edit'
- showControls="true"
- controlsHorizontalPosition="left"
- controlsVerticalPosition="top"
- saveControlIcon="/images/cancel.gif"
- cancelControlIcon="/images/save.gif"/>
- ...]]> </programlisting>
- <figure>
- <title>Redefining of "save" and "cancel" buttons</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput9.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- The <emphasis role="bold"><property><rich:inplaceInput></property></emphasis> component could be rendered with
- <emphasis role="bold"><property><span></property></emphasis> or <emphasis role="bold"><property><div></property></emphasis>
- elements to display its value.
- In order to change default <emphasis role="bold"><property><span></property></emphasis> output,
- use <emphasis><property>"layout"</property></emphasis> attribute with "block" value.
- </para>
-
- <para>
- The <emphasis role="bold"><property><rich:inplaceInput></property></emphasis> component supports standard
- <emphasis><property>"tabindex"</property></emphasis> attribute.
- When the component gets focus the <property>edit</property> mode is activated.
- </para>
-
- <para>
- The
- <emphasis><property>"inputWidth"</property></emphasis>,
- <emphasis><property>"minInputWidth"</property></emphasis>,
- <emphasis><property>"maxInputWidth"</property></emphasis>
- attributes are provided to specify the width, minimal width and maximal width for the input element respectively.
- </para>
-
- <table>
- <title>Keyboard usage</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>ENTER</entry>
- <entry>Saves the input data, and changes the state from edit to changed</entry>
- </row>
- <row>
- <entry>ESC</entry>
- <entry>Changes the state from edit to view or changed, value is not affected</entry>
- </row>
- <row>
- <entry>TAB</entry>
- <entry>Switches between the components</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </section>
- <!-- End. Details of Usage-->
-
-
- <!-- JavaScript API-->
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
-
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>edit()</entry>
- <entry>Changes the state to edit </entry>
- </row>
- <row>
- <entry>cancel()</entry>
- <entry>Changes its state to the previous one before editing (changed or view)</entry>
- </row>
- <row>
- <entry>save()</entry>
- <entry>Changes its state to changed with a new value</entry>
- </row>
- <row>
- <entry>getValue()</entry>
- <entry>Gets the current value</entry>
- </row>
- <row>
- <entry>setValue(newValue) </entry>
- <entry>Sets the current value (to be implemented)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <!-- End of JavaScript API-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controls</entry>
- <entry>Defines the contols contents. Related attributes are "saveControlIcon" and "cancelControlIcon"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <!-- Look-and-Feel Customization-->
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:inplaceInput></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:inplaceInput></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for "save" and "cancel" controls</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
-
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for view state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editorBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters redefinition for "Changed" state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editorBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalTextColo</entry>
- <entry>border-bottom-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define input field look and feel in edit state </title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </section>-->
- <!-- END Skin Parameters Redefinition-->
-
- <!-- Definition of Custom Style Classes-->
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table>
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace</entry>
- <entry>Defines styles for a wrapper <span> (or <div>) element of a component</entry>
- </row>
- <row>
- <entry>rich-inplace-input</entry>
- <entry>Defines styles for the component input field</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table id="tab_cn_iI">
- <title>Class name for the view state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-view</entry>
- <entry>Defines styles for the view state</entry>
- </row>
- <row>
- <entry>rich-inplace-input-view-hover</entry>
- <entry>Defines styles for hovered text in the view state </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Class name for the input field in edit state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-field</entry>
- <entry>Defines styles for the input field look and feel in edit state</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Class name for the "Changed" state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-changed</entry>
- <entry>Defines styles for the "Changed" state</entry>
- </row>
- <row>
- <entry> rich-inplace-input-changed-hover </entry>
- <entry>Defines styles for the hovered text in the "Changed" state</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
-
- <table>
- <title>Classes names for "save" and "cancel" controls in Edit state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-inplace-control</entry>
- <entry>Defines styles for the controls</entry>
- </row>
- <row>
- <entry>rich-inplace-control-press</entry>
- <entry>Defines styles for the controls when either of the buttons is pressed</entry>
- </row>
- <row>
- <entry>rich-inplace-shadow-size</entry>
- <entry>Defines size of the shadow</entry>
- </row>
- <row>
- <entry>rich-inplace-shadow-tl</entry>
- <entry>Defines styles for the shadow in the top left corner </entry>
- </row>
- <row>
- <entry>rich-inplace-shadow-tr</entry>
- <entry>Defines styles for the shadow in the top right corner</entry>
- </row>
- <row>
- <entry>rich-inplace-shadow-bl</entry>
- <entry>Defines styles for the shadow in the bottom left corner</entry>
- </row>
- <row>
- <entry>rich-inplace-shadow-br</entry>
- <entry>Defines styles for the shadow in the bottom right corner</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>
- In order to redefine styles for all <emphasis role="bold"><property><rich:inplaceInput></property></emphasis> components on a page using CSS,
- it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_cn_iI"> above</link>) and define necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-inplace-field {
- font-style: italic;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the shown example the font in <property>edit</property> state is changed to bold.</para>
-
- <para>
- It's aslo possible to change styles of a particular <emphasis role="bold"> <property><rich:inplaceInput></property></emphasis> component.
- In this case you should create own style classes and use them in corresponding
- <emphasis role="bold"><property><rich:inplaceInput></property></emphasis><emphasis><property>styleClass</property></emphasis> attributes.
- An example is placed below:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- color: #008cca;
-}
-...]]></programlisting>
- <para>
- The <emphasis><property>"viewClass"</property></emphasis> attribute for
- the <emphasis role="bold"><property><rich:inplaceInput></property></emphasis> is defined as it's shown in the example below:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:inplaceInput value="click to edit" styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Modificaton of a look and feel with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceInput_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font color of the text on the component was changed.</para>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceInput.jsf?c=in...">On the component Live Demo page</ulink>
- you can see the example of <emphasis role="bold">
- <property><rich:inplaceIput></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:inplaceSelect</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:inplaceSelect></property>
- </emphasis> is used for creation select based inputs: it shows the value as text in one state and enables editing the value, providing a list of options in another state</para>
-
- <figure>
- <title>Three states of <emphasis role="bold"><property><rich:inplaceSelect></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>View/changed/edit states highly customizable representations</para>
- </listitem>
- <listitem>
- <para>Optional "inline" or "block" element rendering on a page</para>
- </listitem>
- <listitem>
- <para>Changing state event customization</para>
- </listitem>
- <listitem>
- <para>Possibility to call custom JavaScript function on state changes</para>
- </listitem>
- <listitem>
- <para>Edit mode activation when the component got focus with the "Tab"</para>
- </listitem>
- <listitem>
- <para>Sizes synchronizations between modes</para>
- </listitem>
- <listitem>
- <para>Highly customizable look and feel</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inplaceSelect.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,934 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:inplaceSelect</keyword>
- <keyword>inplaceSelect</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.InplaceSelect</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlInplaceSelect</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.InplaceSelect</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.InplaceSelectRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.InplaceSelectTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example of how the component can be used on a page: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <!-- itemLabels has to have realy value-->
-
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}">
- <f:selectItem itemValue="1" itemLabel="factory"/>
-</rich:inplaceSelect>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.inplaceSelect;
-...
-HtmlInpaceSelect myInplaceSelect = new InplaceSelect();
-...]]></programlisting>
- </section>
-
- <!-- Start Details of Usage-->
- <section>
- <title>Details of Usage</title>
-
-
- <para>
- The <emphasis><property>"value"</property></emphasis> attribute is a value-binding expression for the current value of the component.
- </para>
- <para>
- The <emphasis role="bold"><property><rich:inplaceSelect></property> </emphasis> component has three functional states:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <property>View</property> state displays default label with the value taken from
- <emphasis><property>"value"</property></emphasis> or <emphasis><property>"defaultLabel"</property></emphasis> attributes.
- </para>
- <para>
- If the initial value of the <emphasis><property>"value"</property></emphasis>
- attribute is "null" or <property>empty string</property>
- the <emphasis><property>"defaultLabel"</property></emphasis> attribute is used to define default label.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.value}" defaultLabel="click to edit">
- <f:selectItems value="#{bean.selectItems}" />
-</rich:inplaceSelect>
-...]]> </programlisting>
- <!-- <para>
- The managed bean code:
- </para>
- <programlisting role="JAVA"><![CDATA[...
-private String value = "";
-...]]> </programlisting>-->
-
-
- <para>
- In the example above the <emphasis><property>"value"</property></emphasis> attribute is not initialized
- therefore "<code>click to edit</code>" text, that
- <emphasis><property>"defaultLabel"</property></emphasis>, contains is displayed.
- </para>
- <para>
- This is the result:
- </para>
- <figure>
- <title>View state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- <listitem>
- <para>
- <property>Edit </property>state - select representation to allow value edit
- </para>
- <figure>
- <title>Edit state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- <listitem>
- <para>
- <property>Changed</property> state - value representation after it was changed
- </para>
- <figure>
- <title>Changed state</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </listitem>
- </itemizedlist>
-
- <para>
- You can form the list of the options using <emphasis role="bold"><property><f:selectItem/></property></emphasis> and
- <emphasis role="bold"><property><f:selectItems/></property></emphasis> JSF components.
- </para>
- <para>
- Please, see the example below.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
-</para>
-<programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="click to edit">
- <f:selectItems value="#{bean.selectItems}"/>
- <f:selectItem itemValue="1" itemLabel="factory"/>
- <f:selectItem itemValue="2" itemLabel="newspaper"/>
-</rich:inplaceSelect>
-...]]></programlisting>
-
-<para>
- In the example above the value of the selected item is available via <emphasis><property>"value"</property></emphasis> attribute.
-</para>
- <para>
- The <emphasis><property>"editEvent"</property></emphasis> attribute provides an option to assign an JavaScript action
- that initiates the change of the state from <property>view</property> to <property>edit</property>.
- The default value is "onclick".
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="Double Click to edit" editEvent="ondblclick">
- <f:selectItems value="#{demo.selectItems}" />
-</rich:inplaceSelect>
-...]]></programlisting>
- <para>
- The <emphasis role="bold"><property><rich:inplaceSelect></property></emphasis>
- component provides specific event attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>"oneditactivation"</property></emphasis> fired on <property>edit</property> state activation
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"oneditactivated"</property></emphasis> fired when <property>edit</property> state is activated
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"onviewactivation"</property></emphasis> fired on <property>view</property> state activation
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"onviewactivated"</property></emphasis> fired after the component is changed to representation state
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" oneditactivation="if (!confirm('Are you sure you want to change the value?')){return false;}">
- <f:selectItems value="#{demo.selectItems}" />
-</rich:inplaceSelect>
-...]]> </programlisting>
- <para>
- The given code illustrates how <emphasis><property>"oneditactivation"</property></emphasis> attribute works,
- namely when the state is being changed from <property>view</property> to <property>edit</property>,
- a confirmation window with a message <code>"Are you sure you want to change value?"</code> comes up.
- </para>
-
-<!-- <para>
- The <emphasis><property>"selectOnEdit"</property></emphasis> (with possible values "true", "false") gives you an
- option to make the text in the input field selected right after the change from <property>view</property> state to <property>edit</property> occurs.
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" selectOnEdit="true">
- <f:selectItems value="#{bean.selectItems}"/>
-</rich:inplaceSelect>
-...]]></programlisting> -->
-
-
-
- <para>
- To prevent opening the drop-down list by default, once <property>edit</property> state is activated,
- set the <emphasis><property>"openOnEdit"</property></emphasis> attribute to "false".
- The default value is "true".
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" showControls="true" openOnEdit="false">
- <f:selectItems value="#{bean.selectItems}"/>
-</rich:inplaceSelect>
-...]]></programlisting>
-
-
- <para>
- This is the result:
- </para>
- <figure>
- <title>The <emphasis><property>"openOnEdit"</property></emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <para>
- Nowever, if you want to confirm the data saving explicitly you can use the <emphasis><property>"showControls"</property></emphasis> attribute,
- which makes "Save" and "Cancel" buttons (displayed as icons) appear next to the input field.
- <property>Edit</property> state can be deactivated by pressing "Esc" key.
- An option in the drop-drown list can be also selected by pressing "Enter".
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" showControls="true">
- <f:selectItems value="#{bean.selectItems}"/>
-</rich:inplaceSelect>
-...]]></programlisting>
- <para>
- This is the result:
- </para>
- <figure>
- <title>The <emphasis><property>"showControls"</property></emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect6.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- You can also position the controls relatively to the input field, by means of
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The <emphasis><property>"controlsHorizontalPosition"</property></emphasis> attribute
- with "left", "right" and "center" definitions
- </para>
- </listitem>
- <listitem>
- <para>
- The <emphasis><property>"controlsVerticalPosition "</property></emphasis> attribute
- with "bottom" and "top" definitions
- </para>
- </listitem>
- </itemizedlist>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" controlsHorizontalPosition="left" controlsVerticalPosition="center" showControls="true">
- <f:selectItems value="#{bean.selectItems}"/>
-</rich:inplaceSelect>
-...]]> </programlisting>
- <para>
- This is the result:
- </para>
- <figure>
- <title>Controls positioning</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect7.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>It is also possible to use <emphasis><property>"controls"</property></emphasis>
- facet in order to replace the default controls with facets content. See the example below.
- </para>
- <para>Please, see the example.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect value="#{bean.inputValue}" showControls="true">
- <f:facet name="controls">
- <button onclick="#{rich:component('inplaceSelect')}.save();" type="button">Save</button>
- <button onclick="#{rich:component('inplaceSelect')}.cancel();" type="button">Cancel</button>
- </f:facet>
- <f:selectItems value="#{bean.selectItems}"/>
-</rich:inplaceSelect>
-...]]> </programlisting>
- <para>
- This is the result:
- </para>
- <figure>
- <title><emphasis><property>"controls"</property></emphasis> facet usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect8.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <note>
- <title>Note:</title>
- <para>
- The <emphasis> <property>"controls"</property></emphasis>facet also implies using
- <emphasis><property>"showControls"</property></emphasis>
- attribute and it has to be defined as "true".
- </para>
- </note>
-
-
- <!--Icons redefinitions-->
- <!--para>
- Redefinition of the
- "save" and "cancel" icons can be performed using
- <emphasis><property>"saveControlIcon"</property></emphasis>
- and
- <emphasis><property>"cancelControlIcon"</property></emphasis>
- attributes r. You need to define the path to where your images are located.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:inplaceSelect
- value="#{inplaceComponentsBean.inputValue}" defaultLabel="Click to edit" showControls="true"
- showControls="true"
- controlsHorizontalPosition="left"
- controlsVerticalPosition="top"
- saveControlIcon="/richfaces-demo/richfaces/cancel.gif"
- cancelControlIcon="/richfaces-demo/richfaces/save.gif">
-
-<f:selectItem itemValue="0" itemLabel="oil well"/>
-<f:selectItem itemValue="1" itemLabel="factory"/>
-<f:selectItem itemValue="2" itemLabel="newspaper"/>
-</rich:inplaceSelect>
- ...]]> </programlisting-->
-
-
- <para>
- The <emphasis role="bold"><property><rich:inplaceSelect></property></emphasis> component could be rendered with
- <emphasis role="bold"><property><span></property></emphasis> or <emphasis role="bold"><property><div></property></emphasis>
- elements to display its value.
- In order to change default <emphasis role="bold"><property><span></property></emphasis> output,
- use the <emphasis><property>"layout"</property></emphasis> attribute with "block" value.
- </para>
-
- <para>
- The <emphasis role="bold"><property><rich:inplaceSelect></property></emphasis> component supports standard
- <emphasis><property>"tabindex"</property></emphasis> attribute.
- When the component gets focus the <property>edit</property> mode is activated and drop-down list is opened.
- </para>
- <para>
- The
- <emphasis><property>"selectWidth"</property></emphasis>,
- <emphasis><property>"minSelectWidth"</property></emphasis> and
- <emphasis><property>"maxSelectWidth"</property></emphasis>
- attributes are provided to specify the width, minimal width and maximal width for the input element respectively.
- </para>
- <para>
- In order to specify the height and width parameters for the list items of the component, you can use
- <emphasis><property>"listHeight"</property></emphasis> and
- <emphasis><property>" listWidth"</property></emphasis> attributes.
-
-
- </para>
- </section>
- <!-- End. Details of Usage-->
-
-
- <!-- JavaScript API-->
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
-
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>edit()</entry>
- <entry>Changes the state to edit </entry>
-
- </row>
- <row>
- <entry>cancel()</entry>
- <entry>Changes its state to the previous one before editing (changed or view)</entry>
-
- </row>
-
-
- <row>
- <entry>save()</entry>
- <entry>Changes its state to changed with a new value</entry>
- </row>
-
- <row>
- <entry>getValue()</entry>
- <entry>Gets the current value</entry>
- </row>
-
- <row>
- <entry >setValue(newValue)</entry>
- <entry >Sets the current value and name</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
- <!-- End of JavaScript API-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controls</entry>
- <entry>Defines the contols contents. Related attributes are "saveControlIcon" and "cancelControlIcon"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <!-- Look-and-Feel Customization-->
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:inplaceSelect></property>
- </emphasis> components at once:
- <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:inplaceSelect></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
-
-<section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for view state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editorBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generaTextColor</entry>
-
- <entry>border-bottom-color</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for input field in edit state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters redefinition for control</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for pressed control</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for list</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>editBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for selected item</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- </section>
-
- <!-- END Skin Parameters Redefinition-->
-
- <!-- Definition of Custom Style Classes-->
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="cn3">
- <title>Class name for the view state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-select-view</entry>
- <entry>Defines styles for the select view</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Class name for the input field in edit state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-select-field</entry>
- <entry>Defines styles for the select field</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
-
-
-
- <table>
- <title>Class name for the control</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-select-control</entry>
- <entry>Defines styles for the select control</entry>
- </row>
- <row>
- <entry>rich-inplace-select-control-press</entry>
- <entry>Defines styles for the pressed select control</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Class name for the list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-inplace-select-list-decoration</entry>
- <entry>Defines styles for a wrapper <table> element of an inplaceSelect</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
-
- <table>
- <title>Classes names for the selected item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-inplace-select-selected-item</entry>
- <entry>Defines styles for the selected item</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names for the shadow</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-inplace-select-shadow-tl</entry>
- <entry>Defines styles for the top-left shadow</entry>
- </row>
- <row>
- <entry>rich-inplace-select-shadow-tr</entry>
- <entry>Defines styles for the top-right shadow</entry>
- </row>
- <row>
- <entry>rich-inplace-select-shadow-bl</entry>
- <entry>Defines styles for the bottom-left shadow</entry>
- </row>
- <row>
- <entry>rich-inplace-select-shadow-br</entry>
- <entry>Defines styles for the bottom-right shadow</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
-
-
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:inplaceSelect></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="cn3"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-inplace-select-list-decoration{
- background-color: #ecf4fe;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the shown example the background color for list is changed.</para>
-
-
-
-
-
- <para>It's aslo possible to change styles of a particular
- <emphasis role="bold"> <property><rich:inplaceSelect></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"><property><rich:inplaceSelect></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- background-color:#bed6f8;
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"viewClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:inplaceSelect> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:inplaceSelect value="click to edit" viewClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Modificaton of a look and feel with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inplaceSelect_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style and background color in <property>view</property> state is changed.</para>
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceSelect.jsf?c=i...">On the component Live Demo page</ulink>
- you can see the example of <emphasis role="bold">
- <property><rich:inplaceSelect></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN" "http://www.oasis-open.org/docbook/xml/4.3CR3/docbookx.dtd"
-[
-<!ENTITY slider "rich:inputNumberSlider">
-]
->
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>&slider;</keyword>
- <keyword>rich:inputNumberSlider</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:inputNumberSlider></property></emphasis> component is a slider component. A handler's position corresponds to a definite value on the slider track. In order to change the value you can slide a handler or set the necessary value into the input field.
- You can dispose it horizontally or vertically on the page.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:inputNumberSlider></property></emphasis> component, horizontal and vertical views</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inputNumberSlider_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Fully skinnable control and input elements</para></listitem>
- <listitem><para>Optional value text field with an attribute-managed position</para></listitem>
- <listitem><para>Optional disablement of the component on a page</para></listitem>
- <listitem><para>Optional toolTip to display the current value while a handle is dragged</para></listitem>
- <listitem><para>Dragged state is stable after the mouse moves</para></listitem>
- <listitem><para>Optional manual input possible if a text input field is present</para></listitem>
- <listitem><para>Validation of manual input</para></listitem>
- <listitem><para>Possibility to display 2 controls that increase/decrease the value by the defined step width, when they will be clicked.</para></listitem>
- <listitem><para>Attribute "orientation" that can have the values "vertical" and "horizontal" to define in which direction the slider should be movable.
- </para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSlider.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,667 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN" "http://www.oasis-open.org/docbook/xml/4.3CR3/docbookx.dtd"
-[
-<!ENTITY slider "rich:inputNumberSlider">
-]
->
-
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>dragged handle control</keyword>
- <keyword>&slider;</keyword>
- <keyword>rich:inputNumberSlider</keyword>
- <keyword>HtmlInputNumberSlider</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.inputNumberSlider</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>
- org.richfaces.component.html.HtmlInputNumberSlider
- </entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.inputNumberSlider</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>
- org.richfaces.InputNumberSliderRenderer
- </entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>
- org.richfaces.taglib.InputNumberSliderTag
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following
- syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inputNumberSlider minValue="0" maxValue="100" step="1"/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlInputNumberSlider;
-...
-HtmlInputNumberSlider mySlider = new HtmlInputNumberSlider();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- is used to facilitate your data input with rich UI Controls.
- </para>
- <para>
- Here is the simplest variant of a slider definition with
- <emphasis>
- <property>"minValue"</property>
- ,
- </emphasis>
- <emphasis>
- <property>"maxValue"</property>
- </emphasis>
- and
- <emphasis>
- <property>"step"</property>
- </emphasis>
- (on default is "1") attributes, which define the
- beginning and the end of a numerical area and a
- <property>slider</property>
- property step.
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:inputNumberSlider></rich:inputNumberSlider>]]></programlisting>
-
- <para>It's generated on a page:</para>
- <figure>
- <title>
- Generated
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inputNumberSlider2.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- Using
- <emphasis>
- <property>"showInput"</property>
- </emphasis>
- (default is "true") and
- <emphasis>
- <property>"enableManualInput"</property>
- </emphasis>
- (default value is "true") attributes, it's possible to
- output the input area near the slider, and make it read-only
- or editable.
- </para>
- <para>
- To remove input area use
- <code>showInput = "false"</code>
- :
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:inputNumberSlider minValue="1" maxValue="100" showInput="false"/>]]></programlisting>
- <para>It's displayed at a page like:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- without input field
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inputNumberSlider3.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- It's also possible to switch off displaying of
- "boundary values" and a toolTip showing on a
- handle drawing. This could be performed with the help of the
- component defined attributes:
- <emphasis>
- <property>"showBoundaryValues"</property>
- </emphasis>
- which is responsible for "boundary values"
- displaying (default is true) and
- <emphasis>
- <property>"showToolTip"</property>
- </emphasis>
- which is responsible for tooltTip displaying (default is
- "true").
- </para>
-
- <para>
- Moreover, to add e.g. some JavaScript effects, events
- defined on it are used.
- </para>
- <itemizedlist>
- <listitem>
- <para><emphasis><property>"onchange"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onmouseover"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onclick"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onfocus"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onmouseout"</property></emphasis></para>
- </listitem>
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
- <para>
- The
- <emphasis>
- <property>"label"</property>
- </emphasis>
- attribute is a generic attribute. The
- <emphasis>
- <property>"label"</property>
- </emphasis>
- attribute provides an association between a component, and
- the message that the component (indirectly) produced. This
- attribute defines the parameters of a localized error and
- informational messages that occur as a result of conversion,
- validation, or other application actions during the request
- processing lifecycle. With the help of this attribute you
- can replace the last parameter substitution token shown in
- the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>
- , {2} for
- <code>"ShortConverter.SHORT"</code>.
- </para>
- <!-- <para>Using the
- <emphasis>
- <property>"orientation"</property>
- </emphasis>
- attribute (default is "horizontal") is possible to change slider position.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:inputNumberSlider minValue="0" maxValue="100" value="84" orientation="vertical"/>]]></programlisting>
- <para>It looks at page like:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><&slider;></property>
- </emphasis>
- in a vertical orientation.
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inputNumberSlider_vertical.png" />
- </imageobject>
- </mediaobject>
- </figure>-->
-
- <para>The <emphasis><property>"showArrows"</property></emphasis> boolean attribute when set to "true" enables additional controls for increasing and decreasing slider value.
- The controls (arrows by default) are placed in the beginning and in the end of slider track:</para>
- <figure>
- <title><emphasis role="bold"><property><rich:inputNumberSlider></property></emphasis> with additional controls</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/inputNumberSlider4.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>Clicking an arrow changes the driven value on the amount defined with <emphasis><property>"step"</property></emphasis> attribute.
- Keepeng an arrow control pressed changes the value continuous.
- Time that value takes to change from one step to another is definded with <emphasis><property>"delay"</property></emphasis> attribute.
- </para>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>
- For skinnability implementation, the components use a
- <emphasis>
- <property>style class redefinition method.</property>
- </emphasis>
- Default style classes are mapped on
- <emphasis>
- <property>skin parameters.</property>
- </emphasis>
- </para>
-
- <para>
- There are two ways to redefine the appearance of all
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- components at once:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>
- Add to your style sheets
- <emphasis>
- <property>style classes</property>
- </emphasis>
- used by a
- <emphasis role="bold">
- <property>
- <rich:imputNumberSlider>
- </property>
- </emphasis>
- component
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a bar</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for numbers</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>line-height</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a text field</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>controlTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a hint</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tipBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tipBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>Style classes names that define styles for component elements are shown on the picture below:
- </para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSlider_cn.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <table id="tab_cn">
- <title>
- Classes names that define a component appearance
- </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-slider</entry>
- <entry>
- Defines styles for a wrapper table element
- of a component
- </entry>
- </row>
- <row>
- <entry>rich-inslider-track</entry>
- <entry>Defines styles for a bar</entry>
- </row>
- <row>
- <entry>rich-inslider-handler</entry>
- <entry>
- Defines styles for a slider handler
- </entry>
- </row>
- <row>
- <entry>rich-inslider-handler-selected</entry>
- <entry>
- Defines styles for a selected handler
- </entry>
- </row>
- <row>
- <entry>rich-inslider-field</entry>
- <entry>Defines styles for a text field</entry>
- </row>
- <row>
- <entry>rich-inslider-right-num</entry>
- <entry>
- Defines styles for the right number
- </entry>
- </row>
- <row>
- <entry>rich-inslider-left-num</entry>
- <entry>
- Defines styles for the left number
- </entry>
- </row>
- <row>
- <entry>rich-inslider-track-border</entry>
- <entry>
- Defines styles for track border
- </entry>
- </row>
- <row>
- <entry>rich-inslider-tip</entry>
- <entry>Defines styles for a hint</entry>
- </row>
- <row>
- <entry>inputNumberSlider-increase-vertical</entry>
- <entry>Defines styles for the top arrow</entry>
- </row>
- <row>
- <entry>inputNumberSlider-decrease-vertical</entry>
- <entry>Defines styles for the bottom arrow</entry>
- </row>
- <row>
- <entry>inputNumberSlider-increase-horizontal</entry>
- <entry>Defines styles for the right arrow</entry>
- </row>
- <row>
- <entry>inputNumberSlider-decrease-horizontal</entry>
- <entry>Defines styles for the left arrow</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>
- In order to redefine styles for all
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- components on a page using CSS, it's enough to create
- classes with the same names (possible classes could be found
- in the table
- <link linkend="tab_cn">above</link>
- ) and define necessary properties in them. An example is
- placed below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-inslider-tip{
- background-color: #FFDAB9;
- font-family: Arial Black;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSlider_pc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- In the example a tip background color and font family was
- changed.
- </para>
-
- <para>
- Also it's possible to change styles of particular
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- component. In this case you should create own style classes
- and use them in corresponding
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes. An example is placed below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
- font-weight:bold;
- font-size:12px;
-}
-...]]></programlisting>
- <para>
- The
- <emphasis>
- <property>"inputClass"</property>
- </emphasis>
- attribute for
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- is defined as it's shown in the example below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich: inputNumberSlider ... inputClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>
- Redefinition styles with own classes and
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes
- </title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSlider_oc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- As it could be seen on the picture above, the font style for
- input text was changed.
- </para>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/inputNumberSlider.jsf...">
- On the component Live Demo page
- </ulink>
- you can see the example of
- <emphasis role="bold">
- <property><rich:inputNumberSlider></property>
- </emphasis>
- usage and sources for the given example.
- </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:inputNumberSpinner</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>A single line input field that lets selecting a number using controls near
- a text field. It's possible to change a value using
- "Up/Down" keyboard keys. The keyboard input in a
- field is possible if it isn't locked by the <emphasis>
- <property>"enableManualInput"</property>
- </emphasis> attribute. When arrow controls are pressed, the cursor can
- be moved in any way without losing a dragged state.</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSpinner_init.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>Fully skinnable control and input elements</para>
- </listitem>
- <listitem>
- <para>3D look and feel with an easily customizable
- appearance</para>
- </listitem>
- <listitem>
- <para>Attribute-managed positions of the controls
- (inside/outside of the input field)</para>
- </listitem>
- <listitem>
- <para>Keyboard controls support</para>
- </listitem>
- <listitem>
- <para>Optional disablement of the component on a page</para>
- </listitem>
- <listitem>
- <para>Optional <emphasis>
- <property>"cycled"</property>
- </emphasis> mode of scrolling values</para>
- </listitem>
- <listitem>
- <para>Optional manual/controls-only input into a value text
- field</para>
- </listitem>
- <listitem>
- <para>Validation of manual input</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/inputNumberSpinner.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,432 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>input field</keyword>
- <keyword>rich:inputNumberSpinner</keyword>
- <keyword>HtmlInputNumberSpinner</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.inputNumberSpinner</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>
- org.richfaces.component.html.HtmlInputNumberSpinner
- </entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.inputNumberSpinner</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry> org.richfaces.InputNumberSpinnerRenderer
- </entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry> org.richfaces.taglib.InputNumberSpinnerTag
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para> To create the simplest variant on a page use the following syntax: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inputNumberSpinner minValue="0" maxValue="100" step="1"/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlInputNumberSpinner;
-...
-HtmlInputNumberSpinner mySpinner = new HtmlInputNumberSpinner ();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>
- <emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> is used to facilitate your data input with rich UI
- Controls. </para>
- <para> Here is the simplest variant of <property>spinner</property> definition
- with <emphasis>
- <property>"minValue"</property> , </emphasis>
- <emphasis>
- <property>"maxValue"</property>
- </emphasis> and <emphasis>
- <property>"step"</property>
- </emphasis> (on default is "1") attributes, which
- define the beginning and the end of numerical area and a
- <property>spinner</property> step. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:inputNumberSpinner minValue="1" maxValue="100"/>
-...
-]]></programlisting>
- <para>It generates on a page:</para>
- <figure>
- <title> Generated <emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis>
- </title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSpinner2.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- <para> There are also several attributes to define functionality peculiarities: </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"cycled"</property>
- </emphasis> if the attribute is
- "true" after the current value
- reaches the border value it's be reversed
- to another border value after next
- increasing/decreasing. In other case possibilities
- of next increasing/decreasing are locked </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"disabled"</property>
- </emphasis> is an attribute that defines whether a
- component is active on a page </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"enableManualInput"</property>
- </emphasis> is an attribute that defines whether a
- keyboard input is possible or only UI controls
- could be used </para>
- </listitem>
- </itemizedlist>
- <para> Moreover, to add e.g. some JavaScript effects, events defined on it are
- used </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"onchange"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseover"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onclick"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onfocus"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseout"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and
- the message that the component (indirectly) produced. This attribute
- defines the parameters of localized error and informational messages
- that occur as a result of conversion, validation, or other application
- actions during the request processing lifecycle. With the help of this
- attribute you can replace the last parameter substitution token shown
- in the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>
- , {2} for <code>"ShortConverter.SHORT"</code> .
- </para>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para> For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis>
- </para>
-
- <para> There are two ways to redefine the appearance of all <emphasis
- role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> components at once: </para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para> Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property>
- <rich:inputNumberSpinner>
- </property>
- </emphasis> component </para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a container</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title> Skin parameters redefinition for an input field </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>buttonSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>buttonFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
- <para> On the screenshot there are classes names that define styles for
- component elements. </para>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSpinner_cn.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn1">
- <title> Classes names that define a component appearance </title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-spinner-c</entry>
- <entry> Defines styles for a wrapper
- table element of a component
- </entry>
- </row>
- <row>
- <entry>rich-spinner-input-container</entry>
- <entry>Defines styles for a
- container</entry>
- </row>
- <row>
- <entry>rich-spinner-input</entry>
- <entry> Defines styles for a wrapper
- <td> element for
- input fields </entry>
- </row>
- <row>
- <entry>rich-spinner-button</entry>
- <entry>Defines styles for a
- button</entry>
- </row>
- <row>
- <entry>rich-spinner-buttons</entry>
- <entry>Defines styles for all
- buttons</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para> In order to redefine styles for all <emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the table <link linkend="tab_cn1">above</link> ) and define necessary
- properties in them. An example is placed below: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-spinner-input{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSpinner_pc.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> In the example an input text font style was changed. </para>
-
- <para> Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-family: Arial Black;
-}
-...]]></programlisting>
- <para> The <emphasis>
- <property>"inputClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> is defined as it's shown in the example below: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich: inputNumberSpinner ... inputClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title> Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes </title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/inputNumberSpinner_oc.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> As it could be seen on the picture above, the font family for input text
- was changed. </para>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/inputNumberSpinner.js..."
- > On the component Live Demo page </ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:inputNumberSpinner></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:insert</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:insert></property>
- </emphasis> component is used for highlighting, source code inserting and, optionally, format the file from the application context into the page.</para>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Source code highlighting</para></listitem>
- <listitem><para>Variety of formats for source code highlighting</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/insert.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:insert</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.ui.Insert</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.ui.component.html.HtmlInsert</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.ui.Insert</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.ui.InsertRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.ui.taglib.InsertTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:insert src="/pages/sourcePage.xhtml" highlight="xhtml"/>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.ui.component.html.HtmlInsert;
-...
-HtmlInsert myInsert = new HtmlInsert();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>The are two basic attributes. The <emphasis>
- <property>"src"</property>
- </emphasis> attribute defines the path to the file with source code. The <emphasis>
- <property>"highlight"</property>
- </emphasis> attribute defines the type of a syntax highlighting.</para>
- <para>If <emphasis>
- <property>"highlight"</property>
- </emphasis> attribute is defined and <ulink url="https://jhighlight.dev.java.net/">
- JHighlight</ulink> open source library is in the classpath, the text from the file is
- formated and colorized.</para>
- <para>An example is placed below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:insert src="/pages/sourcePage.xhtml" highlight="xhtml"/>
-...]]></programlisting>
-
- <para>The result of using <emphasis role="bold">
- <property><rich:insert></property>
- </emphasis> component is shown on the picture:</para>
- <figure>
- <title>Source code highlighting</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/insert_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>The <emphasis role="bold">
- <property><rich:insert></property>
- </emphasis> component provides the same functionality as <ulink
- url="https://jhighlight.dev.java.net/">JHighlight</ulink>. Thus, all names of highlight
- style classes for source code of particular language could be changed to your names, which are
- used by the <ulink url="https://jhighlight.dev.java.net/">JHighlight</ulink> library.</para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:insert></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component doesn't have own visual representation.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/insert.jsf?c=insert"
- >On RichFaces LiveDemo page </ulink> you can found some additional information for <emphasis role="bold"
- ><property><rich:insert></property></emphasis> component usage. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:jQuery</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> allows to apply styles and behaviour to DOM objects.</para>
-
- <!--mediaobject>
- <imageobject>
- <imagedata fileref="images/jQuery.png"/>
- </imageobject>
- </mediaobject-->
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Presents jQuery JavaScript framework functionality</para></listitem>
- <listitem><para>Able to apply onto JSF components and other DOM objects.</para></listitem>
- <listitem><para>Works without conflicts with prototype.js library</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jQuery.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,360 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:jQuery</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.JQuery</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlJQuery</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.JQuery</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.JQueryRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.JQueryTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page, use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:jQuery selector="#customList tr:odd" timing="onload" query="addClass(odd)" />
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlJQuery;
-...
-HtmlJQuery myJQuery = new HtmlJQuery();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para><emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> can be used in two main modes:</para>
- <itemizedlist>
- <listitem><para>as a one-time query applied immediately or on a document ready event</para></listitem>
- <listitem><para>as a JavaScript function that can be invoked from the JavaScript code</para></listitem>
- </itemizedlist>
- <para>The mode is chosen with <emphasis>
- <property>"timing"</property>
- </emphasis> attribute that has the following options:</para>
- <itemizedlist>
- <listitem><para>"immediate" - applying a query immediately</para></listitem>
- <listitem><para>"onload" - applying a query when a document is loaded</para></listitem>
- <listitem><para>onJScall - applying a query by invoked JavaScript function defined with the <emphasis>
- <property>"name"</property>
- </emphasis> attribute</para></listitem>
- </itemizedlist>
- <para>Definition of the <emphasis>
- <property>"name"</property>
- </emphasis> attribute is mandatory when the value of <emphasis>
- <property>"timing"</property>
- </emphasis> attribute is "onJScall". If the<emphasis>
- <property>"name"</property>
- </emphasis> attribute is defined when <emphasis>
- <property>"timing"</property>
- </emphasis> value equals to "immediate" or
- "onload", the query is applied according to this
- value, but you still have an opportunity to invoke it by a function name.</para>
- <para>The <emphasis>
- <property>"selector"</property>
- </emphasis> attribute defines an object or a list of objects. The query is defined with the <emphasis>
- <property>"query"</property>
- </emphasis>attribute.</para>
- <para>Here is an example of how to highlight odd rows in a table:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-<style>
- .odd {
- background-color: #FFC;
- }
-</style>
-...]]></programlisting>
-
- <programlisting role="XML"><![CDATA[...
-<rich:table id="customList" ...>
- ...
-</rich:table>
-...
-<rich:jQuery selector="#customList tr:odd" timing="onload" query="addClass(odd)" />
-...]]></programlisting>
- <para>The <emphasis>
- <property>"selector"</property>
- </emphasis> attribute uses defined by w3c consortium syntax for CSS rule <ulink
- url="http://www.w3.org/TR/REC-CSS2/selector.html">selector</ulink> with some jQuery
- extensions </para>
- <para>Those are typical examples of using selector in the <emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> component.</para>
-
- <table>
- <title>Examples of using selector</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Selector</entry>
-
- <entry>Comment</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>"p[a]"</entry>
- <entry>In a document all "p" tags with "a" tag
- inside are selected</entry>
- </row>
-
- <row>
- <entry>"ul/li"</entry>
- <entry>All "li" elements of unordered "ul" lists are selected
- </entry>
- </row>
-
- <row>
- <entry>"p.foo[a]"</entry>
- <entry>All "p" tags with "foo" class and inserted
- "a" tag are selected</entry>
- </row>
-
- <row>
- <entry>"input[@name=bar]"</entry>
- <entry>All "input" tags with "name" attribute which
- value is "bar" are selected</entry>
- </row>
-
- <row>
- <entry>"input[@type=radio][@checked]"</entry>
- <entry>All "input" tags with attribute
- "type"="radio" and attribute value =
- "chekced" are selected</entry>
- </row>
-
- <row>
- <entry>"p,span,td"</entry>
- <entry>All tag elements "p" or"span" or
- "td" are selected</entry>
- </row>
-
- <row>
- <entry>"p#secret"</entry>
- <entry>"p" paragraph element with "id"
- identification = "secret" is selected</entry>
- </row>
-
- <row>
- <entry>"p span"</entry>
- <entry>"span" tag is a (direct or non-direct) child of
- "p" tag. If it's necessary, use "p >
- span" or "p/span" is selected</entry>
- </row>
-
- <row>
- <entry>"p[@foo^=bar]"</entry>
- <entry>"p" tag containing "foo" attribute with
- textual value beginning with "bar" word is selected</entry>
- </row>
-
- <row>
- <entry>"p[@foo$=bar] "</entry>
- <entry>"p" tag containing "foo" attribute with
- textual value ending with "bar" word is selected</entry>
- </row>
-
- <row>
- <entry>"p[@foo*=bar] "</entry>
- <entry>"p" tag with "foo" attribute containing
- substring "bar" in any place is selected</entry>
- </row>
-
- <row>
- <entry>"p//span "</entry>
- <entry>"span" tag that is a (direct or non-direct) child of
- "p" tag is selected</entry>
- </row>
-
- <row>
- <entry>"p/../span "</entry>
- <entry>"span" tag that is a grandchild of "p" tag is selected</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>In addition, RichFaces allows using either a component id or client id if you apply the
- query to a JSF component. When you define a selector, RichFaces examines its content and
- tries to replace the defined in the selector id with a component id if it's found.</para>
- <para>For example, you have the following code:</para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form id="form">
- ...
- <h:panelGrid id="menu">
- <h:graphicImage ... />
- <h:graphicImage ... />
- ...
- </h:panelGrid>
-</h:form>
-...]]></programlisting>
-
- <para>The actual id of the <emphasis role="bold">
- <property><h:panelGrid></property>
- </emphasis> table in the browser DOM is <code>"form:menu"</code>. However, you still can
- reference to images inside this table using the following selector: </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:jQuery selector="#menu img" query="..." />
-...]]></programlisting>
-
- <para>You can define the exact id in the selector if you want. The following code reference to
- the same set of a DOM object:</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:jQuery selector="#form\\:menu img" query="..." />
-...]]></programlisting>
-
- <para>Pay attention to double slashes that escape a colon in the id.</para>
-
- <para>In case when the <emphasis>
- <property>"name"</property>
- </emphasis> attribute is defined, <emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> generates a JavaScript function that might be used from any place of JavaScript
- code on a page.</para>
-
- <para>There is an example of how to enlarge the picture smoothly on a mouse over event and return
- back to the normal size on mouse out:</para>
-
- <programlisting role="XML"><![CDATA[...
-<h:graphicImage width="50" value="/images/price.png"
- onmouseover="enlargePic(this, {pwidth:'60px'})" onmouseout="releasePic(this)" />
-<h:graphicImage width="50" value="/images/discount.png"
- onmouseover="enlargePic(this, {pwidth:'100px'})" onmouseout="releasePic(this)" />
-...
-<rich:jQuery name="enlargePic" timing="onJScall" query="animate({width:param.pwidth})" />
-<rich:jQuery name="releasePic" timing="onJScall" query="animate({width:'50px'})"/>
-...]]></programlisting>
-
- <para>The JavaScript could use two parameters. The first parameter is a replacement for the
- selector attribute. Thus, you can share the same query, applying it to the different DOM
- objects. You can use a literal value or a direct reference for an existing DOM object. The
- second parameter can be used to path the specific value inside the query. The JSON syntax is
- used for the second parameter. The "param." namespace is used for
- referencing data inside the parameter value.</para>
-
- <para><emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> adds styles and behavior to the DOM object dynamically. This means if you replace
- something on a page during an Ajax response, the applied artifacts is overwritten. But you
- are allowed to apply them again after the Ajax response is complete.</para>
- <para>Usually, it could be done with reRendering the <emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> components in the same Ajax interaction with the components these queries are
- applied to. Note, that queries with <emphasis>
- <property>"timing"</property>
- </emphasis> attribute set to "onload" are not
- invoked even if the query is reRendered, because a DOM document is not fully reloaded during
- the Ajax interaction. If you need to re-applies query with
- "onload" value of <emphasis>
- <property>"timing"</property>
- </emphasis> attribute, define the <emphasis>
- <property>"name"</property>
- </emphasis> attribute and invoke the query by name in the <emphasis>
- <property>"oncomplete"</property>
- </emphasis> attribute of the Ajax component.</para>
-
- <para>RichFaces includes jQuery JavaScript framework. You can use the futures of jQuery directly
- without defining the <emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> component on a page if it is convenient for you. To start using the jQuery feature
- on the page, include the library into a page with the following code:</para>
-
- <programlisting role="XML"><![CDATA[...
-<a4j:loadScript src="resource://jquery.js"/>
-...]]></programlisting>
-
- <para>Refer to the <ulink url="http://docs.jquery.com/">jQuery documentation</ulink> for the
- right syntax. Remember to use <code>jQuery()</code> function instead of <code>$()</code>, as soon as jQuery works
- without conflicts with <code>prototype.js</code>.</para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:jQuery></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>More information about jQuery framework and its features you can read in<ulink
- url="http://jquery.com/">jQuery official documentation</ulink>.</para>
- <para>How to use jQuery with other libraries see also in<ulink
- url="http://docs.jquery.com/Using_jQuery_with_Other_Libraries">jQuery official documentation</ulink>.</para>
-
- <para>
- Some additional information about usage of component can be found
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/jQuery.jsf?c=jQuery">on its LiveDemo</ulink>.
- </para>
-
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:jsFunction</keyword>
- </keywordset>
- </sectioninfo>
-
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:jsFunction></property></emphasis> component allows to perform Ajax requests directly from JavaScript code, invoke server-side data and return it in a JSON format to use in a client JavaScript calls.
- </para>
- </section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/jsFunction.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:jsFunction</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Function</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.components.ajaxFunction</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlajaxFunction</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.ajaxFunctionRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simpliest example of the component on the page use the following syntax:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<head>
- <script>
- <!--There is some script named "myScript" that uses parameters which will be taken from server-->
- </script>
-</head>
-<body>
- ...
- <a4j:jsFunction data="#{bean.someProperty}" name="callScript" oncomplete="myScript(data.subProperty1, data.subProperty2)"/>
- ...
-</body>]]>
-
- </programlisting>
- <para>
- The script <code>"myScript"</code> is called after <code>bean.someProperty</code> data is returned from server (e.g. It'll be object with two subproperties).
- </para>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlajaxFunction;
-...
-HtmlajaxFunction myFunction = new HtmlajaxFunction();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of usage</title>
-
- <para>
- As the component uses Ajax request to get data from server it has all common Ajax Action attributes.
- Hence, <emphasis><property>"action"</property></emphasis> and<emphasis><property> "actionListener" </property></emphasis>can be invoked, and reRendering some parts of
- the page fired after calling function. </para>
- <para> When using the <emphasis role="bold">
- <property><a4j:jsFunction></property>
- </emphasis> it's possible to initiate the Ajax request from the JavaScript and
- perform partial update of a page and/or invoke the JavaScript function with data returned by
- Ajax response. </para>
- <programlisting role="XML"><![CDATA[<body onload="callScript()">
- <h:form>
- ...
- <a4j:jsFunction name="callScript" data="#{bean.someProperty1}" reRender="someComponent" oncomplete="myScript(data.subProperty1, data.subProperty2)">
- <a4j:actionparam name="param_name" assignTo="#{bean.someProperty2}"/>
- </a4j:jsFunction>
- ...
- </h:form>
- ...
- </body>]]></programlisting>
-
- <para>
- The <emphasis role="bold"><property><a4j:jsFunction></property></emphasis> allows to use <emphasis role="bold"><property><a4j:actionparam></property></emphasis> or pure <emphasis role="bold"><property><f:param></property></emphasis> for passing any number of parameters of the JavaScript function into Ajax request.
- <emphasis role="bold"><property><a4j:jsFunction></property></emphasis> is similar to <emphasis role="bold"><property><a4j:commandButton></property></emphasis>, but it could be activated from the JavaScript code.
- It allows to invoke some server-side functionality and use the returned data in the JavaScript function invoked from <emphasis><property>"oncomplete"</property></emphasis> attribute.
- Hence it's possible to use <emphasis role="bold"><property><a4j:jsFunction></property></emphasis> instead of <emphasis role="bold"><property><a4j:commandButton></property></emphasis>.
- You can put it anywhere, just don't forget to use <emphasis role="bold"><property><h:form></property></emphasis> and <emphasis role="bold"><property></h:form></property></emphasis> around it.
- </para>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
- </para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/jsFunction.jsf?c=jsFu...">jsFunction page</ulink> at RichFaces LiveDemo for component usage and sources for the given examples.
- </para>
-
- <para>
- Useful articles:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- "<ulink url="http://www.jboss.org/community/docs/DOC-11856">JsFunctionJson</ulink>" article in the RichFaces Cookbook describes how to use <emphasis role="bold"><property>"a4j:jsFunction"</property></emphasis> to call the jsonTest backing bean that generates some random data in a JSON String;
- </para>
- </listitem>
-
- </itemizedlist>
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,17 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:keepAlive</keyword>
- </keywordset>
- </sectioninfo>
-
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><a4j:keepAlive></property>
- </emphasis> tag allows to keep a state of a bean between
- requests.</para>
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/keepAlive.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:keepAlive</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Tag identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.components.KeepAlive</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.components.AjaxKeepAlive</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.components.AjaxKeepAlive</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section id="a4jkalpagetag" role="updated">
- <title>Using the tag on a Page</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:keepAlive beanName = "testBean"/>]]></programlisting>
- <para>
- Note, that to be put into the request scope the pointed bean should be registered inside <code>faces-config.xml</code> file and marked with <code>org.ajax4jsf.model.KeepAlive</code> annotation.
- A bean instance in the request scope could also be saved directly through the declaration of <code>@KeepAlive</code> annotation inside the bean.
- </para>
- <para>
-
- </para>
- </section>
-
- <!-- There's no AjaxKeepAlive component nor AjaxKeepAlive class and it cannot be created programmatically and there's no need for that.
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.ajax.AjaxKeepAlive;
-...
-AjaxKeepAlive myKeepAlive = new AjaxKeepAlive();
-...]]></programlisting>
- </section>
- -->
-
- <section>
- <title>Details of usage</title>
- <para>
- If a managed bean is declared with <property>request</property> scope in the configuration file with the help of <emphasis role="bold"><property><managed-bean-scope></property></emphasis> tag then the life-time of this bean instance is valid only for the current request. Any attempts to make a reference to the bean instance after the request end will throw in Illegal Argument Exception by the server.
- To avoid these kinds of Exceptions component <emphasis role="bold"><property><a4j:keepAlive></property></emphasis> is used to maintain the state of the whole bean object among subsequent request.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[<a4j:keepAlive beanName = "#{myClass.testBean}"/>]]></programlisting>
-
- <para> The <emphasis><property>"beanName"</property></emphasis> attribute defines the request scope bean name you'd like to re-use. Note that this attribute must point to a legal JSF EL expression which resolves to a managed mean instance.
- For example for the above code the class definition may look like this one:
- </para>
- <programlisting role="JAVA"><![CDATA[class MyClass{
- ...
- private TestBean testBean;
- // Getters and Setters for testBean.
- ...
-}
-]]></programlisting>
-
- <para>
- The <emphasis><property>"ajaxOnly"</property></emphasis> attribute declares whether the value of the bean should be available during a non-Ajax request.
- If the value of this attribute is "true" a request scope bean keeps the same value during Ajax requests from the given page.
- If a non-Ajax request is sent from this page the bean is re-created as a regular request scope bean.
- </para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/keepAlive.jsf?c=keepA...">KeepAlive page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
- </para>
-
- <para>
- Search the <ulink url="http://www.jboss.org/index.html?module=bb&op=viewforum&f=261">RichFaces Users forum</ulink> for some additional information about usage of component.
- </para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section role="new">
- <sectioninfo>
- <keywordset>
- <keyword>layout</keyword>
- <keyword>rich:layout</keyword>
- </keywordset>
- <releaseinfo>3.3.1</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:layout></property>
- </emphasis> component is designed to build layouts basing on Yahoo UI Grids CSS
- </para>
- </section>
- <figure>
- <title>The <emphasis role="bold"><property><rich:layout></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/rich_layout.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Cross-borwser compatibility</para></listitem>
- <listitem><para>Easy layout creation</para></listitem>
-
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layout.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,115 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:layout</keyword>
- <keyword>rich:layout</keyword>
-
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.layout</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlLayout</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Layout</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.LayoutRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.layoutTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest layout with the <emphasis role="bold"><property><rich:layout></property></emphasis> on a page,
- use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:layout>
- <rich:layoutPanel position="center">
- <!--center-->
- </rich:layoutPanel>
-</rich:layout>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlLayout;
-...
-Htmllayout mylayout = new HtmlLayout();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
-
- <para>The <emphasis role="bold"><property><rich:layout></property></emphasis> allows to build a grid that can be used to make the layout on a page. The <emphasis role="bold"><property><rich:layout></property></emphasis> is used in conjunction with the <emphasis role="bold"><property><rich:layoutPanel></property></emphasis> that is used as a child element and carries the main burden of building the grid.</para>
-
- <para>Hence, you need to use the <emphasis role="bold"><property><rich:layout></property></emphasis> as a container and <emphasis role="bold"><property><rich:layoutPanel></property></emphasis> to create areas inside the container.</para> This is how you can make a layout with 5 areas:
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:layout>
- <rich:layoutPanel position="top">
- <!--top-->
- </rich:layoutPanel>
- <rich:layoutPanel position="left">
- <!--left-->
- </rich:layoutPanel>
- <rich:layoutPanel position="center">
- <!--center-->
- </rich:layoutPanel>
- <rich:layoutPanel position="right">
- <!--right-->
- </rich:layoutPanel>
- <rich:layoutPanel position="bottom">
- <!--bottom-->
- </rich:layoutPanel>
-</rich:layout>
-...]]></programlisting>
- <para>To get more details about <emphasis role="bold"><property><rich:layoutPanel></property></emphasis> please read the <link linkend="rich_layoutPanel"> chapter about layoutPanel </link> in the guide.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>Visit
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf">layout</ulink> page at
- RichFaces Live Demo for examples of component usage and their sources.</para>
- <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki</para>
-
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section id="layoutPanel">
- <sectioninfo>
- <keywordset>
- <keyword>rich:layoutPanel</keyword>
- </keywordset>
- <releaseinfo>3.3.1</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:layouPanel></property>
- </emphasis> is an auxiliary component used to create layout areas within the
- <emphasis role="bold"><property><rich:layout></property></emphasis> container.
- </para>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
-
- <listitem><para>Cross-browser compatibility</para></listitem>
- <listitem><para>Provides possibility of an easy layout creation</para></listitem>
-
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/layoutPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:layoutPanel</keyword>
- <keyword>layoutPanel</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.LayoutPanel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlLayoutPanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.LayoutPanel</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.LayoutPanelRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.LayoutPanelTag</entry>
- </row>
-
- </tbody>
-
- </tgroup>
-
-
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:layout>
- <rich:layoutPanel position="center">
- <!--center-->
- </rich:layoutPanel>
-</rich:layout>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmllayoutPanel;
-...
-HtmllayoutPanel mylayoutPanel = new HtmllayoutPanel();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:layoutPanel></property>
- </emphasis> component is used to split the area inside the <emphasis role="bold"><property><rich:layout></property></emphasis> into up to 5 parts: top, left, center, right, bottom.
-
- </para>
- <para>The <emphasis><property>"position"</property></emphasis> attribute defines the position of the <emphasis role="bold"><property><rich:layoutPanel></property></emphasis> in the area created with <emphasis role="bold"><property><rich:layout></property></emphasis> .</para>
-<programlisting role="XML"><![CDATA[...
-<rich:layout>
- <rich:layoutPanel position="top">
- <!--top-->
- </rich:layoutPanel>
- <rich:layoutPanel position="left">
- <!--left-->
- </rich:layoutPanel>
- <rich:layoutPanel position="center">
- <!--center-->
- </rich:layoutPanel>
- <rich:layoutPanel position="right">
- <!--right-->
- </rich:layoutPanel>
- <rich:layoutPanel position="bottom">
- <!--bottom-->
- </rich:layoutPanel>
-</rich:layout>
-...]]></programlisting>
-
- <para>You can specify the width of the layout area with the <emphasis><property>"width"</property></emphasis>attribute.</para>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf"
- >On RichFaces Live Demo page </ulink> you can see an example of <emphasis role="bold">
- <property><rich:layoutPanel></property>
- </emphasis> usage and sources for the given example. </para>
- <para>The <link linkend="rich_layout"><emphasis role="bold"><property><rich:layout></property></emphasis></link> chapter of the guide.</para>
- <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki.</para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:listShuttle</keyword>
- </keywordset>
- <releaseinfo>3.1.3</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> component is used for moving chosen items
- from one list into another with their optional reordering there.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:ListShuttle></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Reordering possibility for lists items</para></listitem>
- <listitem><para>Multiple selection of lists items</para></listitem>
- <listitem><para>Keyboard support</para></listitem>
- <!--listitem> Built-In Drag-and-Drop support</listitem-->
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listShuttle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1269 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:listShuttle</keyword>
- <keyword>listShuttle</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" converter="listShuttleconverter">
- <h:column>
- <f:facet name="header">
- <h:outputText value="Cars" />
- </f:facet>
- <h:outputText value="#{item.name}" />
- </h:column>
-</rich:listShuttle>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlListShuttle;
-...
-HtmlListShuttle myListShuttle = new HtmlListShuttle();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> component consists of the following parts: <itemizedlist>
- <listitem><para>two <property>item lists</property> (source and target). List consists of
- items. Each item has three different representations: common, selected, active</para></listitem>
- <listitem><para>optional <property>caption</property> element</para></listitem>
- <listitem><para><property>optional ordering controls set</property> is a set of controls
- that performs reordering</para></listitem>
- <listitem><para><property>move controls set</property> is a set of controls, which
- performs moving items between lists</para></listitem>
- </itemizedlist>
- </para>
- <note>
- <title>Note:</title>
- <para>Now the listener can not be called from the column facet. This is a temporary limitation. The additional information can be found in <ulink url="http://jira.jboss.org/jira/browse/RF-5327">RichFaces Jira</ulink>.</para>
- </note>
- <para> The <emphasis>
- <property>"sourceValue" </property>
- </emphasis> attribute defines a List or Array of items to be shown in the source list.</para>
- <para>The <emphasis>
- <property>"targetValue" </property>
- </emphasis> attribute defines a List or Array of items to be shown in the target list.</para>
- <para> The <emphasis>
- <property>"var" </property>
- </emphasis> attribute could be shared between both Lists or Arrays to define lists on the page.</para>
-
- <para>
- The <emphasis><property>"sourceRequired"</property></emphasis> and
- <emphasis><property>"targetRequired"</property></emphasis> attributes define the case when
- source and target values are being validated. If the value of both attributes is "true"
- there should be at least one item in source and target lists. Otherwise validation fails.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form id="myForm">
- <rich:messages>
- <f:facet name="errorMarker">
- <h:graphicImage value="/images/ajax/error.gif" />
- </f:facet>
- </rich:messages>
- <rich:listShuttle id="myListShuttle" sourceValue="#{toolBar.freeItems}" targetValue="#{toolBar.items}"
- sourceRequired = "true" targetRequired = "true" var="items" converter="listShuttleconverter"
- sourceCaptionLabel="Source List" targetCaptionLabel="Target List">
- <rich:column>
- <h:graphicImage value="#{items.iconURI}" />
- </rich:column>
- <rich:column>
- <h:outputText value="#{items.label}" />
- </rich:column>
- </rich:listShuttle>
- <a4j:commandButton value="Submit" />
-</h:form>
-...]]></programlisting>
- <para>
- In the example above the source list is empty. If you submit the form validation fails and error message appears on a page.
- </para>
- <para>
- This is the result:
- </para>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle2.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- The <emphasis>
- <property>"converter" </property>
- </emphasis> attribute is used to convert component data to a particular component's value.
- For example, when you select items in a list, a converter is used to format a set of objects to a strings to be displayed.
- </para>
- <note id="conv">
-
- </note>
- <para>
- The <emphasis>
- <property>"sourceSelection" </property>
- </emphasis> attribute stores the collection of items selected by you in the source list.
- The <emphasis>
- <property>"targetSelection" </property>
- </emphasis> attribute stores the collection of items selected by you in the target list.
- </para>
- <para>Captions could be added to a list only after it was defined as a <emphasis>
- <property>"sourceCaption"</property>
- </emphasis> and <emphasis>
- <property>"targetCaption"</property>
- </emphasis> named facets inside the component or defined with the <emphasis>
- <property>"sourceCaptionLabel"</property>
- </emphasis> and <emphasis>
- <property>"targetCaptionLabel"</property>
- </emphasis> attribute.
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" sourceSelection="#{bean.sourceSelection}"
- targetSelection="#{bean.targetSelection}" converter="listShuttleconverter">
- <f:facet name="sourceCaption">
- <h:outputText value="Cars Store #1" />
- </f:facet>
- <f:facet name="targetCaption">
- <h:outputText value="Cars Store #2" />
- </f:facet>
- <rich:column>
- <h:outputText value="#{items.name}" />
- </rich:column>
-</rich:listShuttle>
-...]]></programlisting>
- <!-- ordering control set-->
- <para>The <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> component provides the possibility to use <property>ordering controls
- set</property>, which performs reordering in the target item list. Every control has
- possibility to be disabled. </para>
- <para>An <property>ordering controls set</property> could be defined with
- <emphasis><property>"topControlLabel"</property></emphasis>, <emphasis><property>"bottomControlLabel"</property></emphasis>,
- <emphasis><property>"upControlLabel"</property></emphasis>, <emphasis><property>"downControlLabel"</property></emphasis>attributes.
- </para>
- <para>It is also possible to use
- <emphasis>
- <property> "topControl" </property>
- </emphasis>, <emphasis>
- <property>"topControlDisabled"</property>
- </emphasis>, <emphasis>
- <property> "bottomControl"</property>
- </emphasis>, <emphasis>
- <property> "bottomControlDisabled" </property>
- </emphasis>, <emphasis>
- <property> "upControl" </property>
- </emphasis>, <emphasis>
- <property> "upControlDisabled" </property>
- </emphasis>, <emphasis>
- <property> "downControl"</property>
- </emphasis>, <emphasis>
- <property> "downControlDisabled" </property>
- </emphasis> facets in order to replace the default controls with facets content.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" converter="listShuttleconverter">
- ...
- <f:facet name="topControl">
- <h:outputText value="Move to top" />
- </f:facet>
- <f:facet name="upControl">
- <h:outputText value="Move up" />
- </f:facet>
- <f:facet name="downControl">
- <h:outputText value="Move down" />
- </f:facet>
- <f:facet name="bottomControl">
- <h:outputText value="Move to bottom" />
- </f:facet>
-</rich:listShuttle>
-...
-]]></programlisting>
-
- <!-- copy/move control set -->
-
- <para>The <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis>component also provides 4 predefined controls in <property>move
- controls set</property> for moving items between source and target lists.
- Every control has possibility to be disabled. </para>
- <para>A <property>move controls set</property> could be defined with
- <emphasis><property>"copyControlLabel"</property></emphasis>, <emphasis><property>"removeControlLabel"</property></emphasis>,
- <emphasis><property>"copyAllControlLabel"</property></emphasis>, <emphasis><property>"removeAllControlLabel"</property></emphasis>attributes.
- </para>
- <para>It is also possible to use
- <emphasis>
- <property>"copyControl" </property>
- </emphasis>,
- <emphasis>
- <property>"removeControl" </property>
- </emphasis>,
- <emphasis>
- <property>"copyAllControl" </property>
- </emphasis>,
- <emphasis>
- <property>"removeAllControl" </property>
- </emphasis>
- facets in order to replace the default controls with facets content.
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" converter="listShuttleconverter"
- copyControlLabel="Copy" removeControlLabel="Remove"
- copyAllControlLabel="Copy all" removeAllControlLabel="Remove all">
- <h:column>
- <f:facet name="header">
- <h:outputText value="Cars" />
- </f:facet>
- <h:outputText value="#{item.name}" />
- </h:column>
-</rich:listShuttle>
-...
-]]></programlisting>
-
- <!-- The following facets currently do not work-->
- <!--<emphasis>
- <property>"copy_disabled" </property>
- </emphasis>, -->
- <!--<emphasis>
- <property>"remove_disabled" </property>
- </emphasis>, -->
- <!--<emphasis>
- <property>"copyAll_disabled" </property>
- </emphasis>, -->
- <!--<emphasis>
- <property>"removeAll_disabled" </property>
- </emphasis>-->
-
- <para>Controls rendering is based on the <emphasis>
- <property>"controlsType" </property>
- </emphasis> attribute. Possible types are <property>button</property> and
- <property>none</property>.</para>
- <note>
- <para>
- Currently the button controls type is based on <emphasis role="bold"><property><div></property></emphasis> element.
- </para>
- </note>
- <para>
- The <emphasis role="bold"><property><rich:listShuttle></property></emphasis> component allows to use internationalization method
- to redefine and localize the labels. You could use application resource bundle and define
- <code>RICH_SHUTTLES_TOP_LABEL</code>,
- <code>RICH_SHUTTLES_BOTTOM_LABEL</code>,
- <code>RICH_SHUTTLES_UP_LABEL</code>,
- <code>RICH_SHUTTLES_DOWN_LABEL</code>
-
- <code>RICH_LIST_SHUTTLE_COPY_ALL_LABEL</code>,
- <code>RICH_LIST_SHUTTLE_COPY_LABEL</code>,
- <code>RICH_LIST_SHUTTLE_REMOVE_ALL_LABEL</code>,
- <code>RICH_LIST_SHUTTLE_REMOVE_LABEL</code> there.
- </para>
- <para>
- You could also pack <code>org.richfaces.renderkit.listShuttle</code> resource bundle with your JARs defining the same properties.
- </para>
- <!-- template wiil be done in 3.2.0 -->
- <!--para>The <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> component provides the possibility to be customized using templating. The
- customization could be performed by layout definition nested to component.</para>
- <para>10 elements could be provided to be defined inside template (all standard controls
- should also possible to use inside): {sourceList}, {targetList}, {CopyControl},
- {removeCotrol}, {copyAllControl}, {removeAllControl}, {topcontrol}, {bottomControl},
- {downCotrol}, {upControl}.</para>
- <para>The markup defined in the initial picture could be defined as in the following
- example.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:listShuttle>
-...
- <h:panelGrid columns="4">
- <h:outputText value="{sourceList}"/>
- <h:panelGroup>
- <h:outputText value="{copyAllControl}"/>
- <h:outputText value="{copyControl}"/>
- <h:outputText value="{removeControl}"/>
- <h:outputText value="{removeAllControl}"/>
- </h:panelGroup>
- <h:outputText value="targetList"/>
- <h:panelGroup>
- <h:outputText value="{topControl}"/>
- <h:outputText value="{upControl}"/>
- <h:outputText value="{downControl}"/>
- <h:outputText value="{bottomControl}"/>
- </h:panelGroup>
- </h:panelGrid>
- </rich:listShuttle>
-...
-]]></programlisting-->
- <table>
- <title>Keyboard usage for elements selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>CTRL+click</entry>
- <entry>Inverts selection for an item</entry>
- </row>
- <row>
- <entry>SHIFT+click</entry>
- <entry>Selects all rows from active one to a clicked row if they differ,
- else select the actve row. All other selections are cleared</entry>
- </row>
- <row>
- <entry>CTRL+A</entry>
- <entry>Selects all elements inside the list if some active element is
- already present in a list</entry>
- </row>
- <row>
- <entry>Up, Down arrows</entry>
- <entry>Changes the active element to the next or previous in a list and make
- it the only selected. Scroll follows the selection to keep it
- visible</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Keyboard usage for elements reordering</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>Home</entry>
- <entry>Moves selected set to the top of a list (for target list only)</entry>
- </row>
- <row>
- <entry>End</entry>
- <entry>Moves selected set to the bottom of a list (for target list only)</entry>
- </row>
- <row>
- <entry>CTRL+Up arrow</entry>
- <entry>Moves selected item to one position upper</entry>
- </row>
- <row>
- <entry>CTRL+Down arrow</entry>
- <entry>Moves selected item to one position lower</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>JavaScript API</title>
-
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <!--
- <row>
- <entry>SortAscending()</entry>
- <entry>Sorts items in the list ascending</entry>
- </row>
- <row>
- <entry>SortDescending()</entry>
- <entry>Sorts items in the list descending</entry>
- </row>
- <row>
- <entry>Sort()</entry>
- <entry>Inverts current sorting</entry>
- </row>
- -->
- <!--Controls common API -->
- <!--row>
- <entry role="tbi">hide()</entry>
- <entry role="tbi">Hides ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">show()</entry>
- <entry role="tbi">Shows ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">isShown()</entry>
- <entry role="tbi">Checks if current control is shown (to be implemented)</entry>
- </row-->
- <row>
- <entry role="tbi">enable()</entry>
- <entry role="tbi">Enables ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">disable()</entry>
- <entry role="tbi">Disables ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">isEnabled()</entry>
- <entry role="tbi">Checks if current control is enabled (to be implemented)</entry>
- </row>
- <!--List managing API -->
- <row>
- <entry>up()</entry>
- <entry>Moves up selected item in the list</entry>
- </row>
- <row>
- <entry>down()</entry>
- <entry>Moves down selected item in the list</entry>
- </row>
- <row>
- <entry>top()</entry>
- <entry>Moves top selected item in the list</entry>
- </row>
- <row>
- <entry>bottom()</entry>
- <entry>Moves bottom selected item in the list</entry>
- </row>
- <row>
- <entry>copy()</entry>
- <entry>Copies selected item from the source list to the target list</entry>
- </row>
- <row>
- <entry>remove()</entry>
- <entry>Removes selected item from the target list to the source list</entry>
- </row>
- <row>
- <entry>copyAll()</entry>
- <entry>Copies all items from the source list to the target list</entry>
- </row>
- <row>
- <entry>removeAll()</entry>
- <entry>Removes all items from the target list to the source list </entry>
- </row>
- <row>
- <entry role="tbi">getSelection()</entry>
- <entry role="tbi">Returns currently selected item (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">getItems()</entry>
- <entry role="tbi">Returns the collection of all items (to be implemented)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>copyAllControl</entry>
- <entry>Redefines the label content for the "copyAll" control. Related attribute is "copyAllControlLabel"</entry>
- </row>
- <row>
- <entry>removeAllControl</entry>
- <entry>Redefines the label content for the "removeAll" control. Related attribute is "removeAllControlLabel"</entry>
- </row>
- <row>
- <entry>copyControl</entry>
- <entry>Redefines the label content for the "copy" control. Related attribute is "copyControlLabel"</entry>
- </row>
- <row>
- <entry>removeControl</entry>
- <entry>Redefines the label content for the "remove" control. Related attribute is "removeControlLabel"</entry>
- </row>
- <row>
- <entry>copyAllControlDisabled</entry>
- <entry>Redefines the disabled label content for the "copyAll" control</entry>
- </row>
- <row>
- <entry>removeAllControlDisabled</entry>
- <entry>Redefines the disabled label content for the "removeAll" control</entry>
- </row>
- <row>
- <entry>caption</entry>
- <entry>Redefines the caption control</entry>
- </row>
- <row>
- <entry>sourceCaption</entry>
- <entry>Defines source list caption representation text. Related attribute is "sourceCaptionLabel"</entry>
- </row>
- <row>
- <entry>targetCaption</entry>
- <entry>Defines source list target representation text. Related attribute is "targetCaptionLabel"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for items in the source and target lists</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for caption in the source and target lists</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a selected rows in the source and target lists</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <!--row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row-->
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a selected cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters redefinition for an active cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for controls</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a disabled button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button highlight</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a pressed button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Style classes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle_cn2.png" scale="80" />
- </imageobject>
- </mediaobject>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle_cn.png" scale="80"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="CN">
- <title>Classes names that define a list representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-list-shuttle</entry>
- <entry>Defines styles for a wrapper table element of a listShuttle</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-caption</entry>
- <entry>Defines styles for a list caption</entry>
- </row>
- <row>
- <entry>rich-shuttle-body</entry>
- <entry>Defines styles for a list body</entry>
- </row>
- <row>
- <entry>rich-shuttle-list-content</entry>
- <entry>Defines styles for a list content</entry>
- </row>
- <row>
- <entry>rich-shuttle-source-items</entry>
- <entry>Defines styles for a wrapper <div> element for source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-items</entry>
- <entry>Defines styles for a wrapper <div> element for target list</entry>
- </row>
- <row>
- <entry>rich-shuttle-list-header</entry>
- <entry>Defines styles for a lists header</entry>
- </row>
- <row>
- <entry>rich-shuttle-header-tab-cell</entry>
- <entry>Defines styles for a header cell</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a caption representations in a source and target lists</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-source-caption</entry>
- <entry>Defines styles for a caption in a source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-caption</entry>
- <entry>Defines styles for a caption in a target list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a rows representations in a source list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-source-row</entry>
- <entry>Defines styles for a row in a source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-source-row-selected</entry>
- <entry>Defines styles for a selected row in a source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-source-row-active</entry>
- <entry>Defines styles for an active row in a source list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define a rows representations in a target list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-target-row</entry>
- <entry>Defines styles for a row in a target list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-row-selected</entry>
- <entry>Defines styles for a selected row in a target list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-row-active</entry>
- <entry>Defines styles for an active row in a target list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define a cells representations in a source list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-source-cell</entry>
- <entry>Defines styles for a cell in a source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-source-cell-selected</entry>
- <entry>Defines styles for a selected cell in a source list</entry>
- </row>
- <row>
- <entry>rich-shuttle-source-cell-active</entry>
- <entry>Defines styles for an active cell in a source list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define a cells representations in a target list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-target-cell</entry>
- <entry>Defines styles for a cell in a target list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-cell-selected</entry>
- <entry>Defines styles for a selected cell in a target list</entry>
- </row>
- <row>
- <entry>rich-shuttle-target-cell-active</entry>
- <entry>Defines styles for an active cell in a target list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define controls representations</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-shuttle-controls</entry>
- <entry>Defines styles for a controls group</entry>
- </row>
- <row>
- <entry>rich-shuttle-top</entry>
- <entry>Defines styles for a "Top" control</entry>
- </row>
- <row>
- <entry>rich-shuttle-bottom</entry>
- <entry>Defines styles for a "Bottom" control</entry>
- </row>
- <row>
- <entry>rich-shuttle-up</entry>
- <entry>Defines styles for a "Up" control</entry>
- </row>
- <row>
- <entry>rich-shuttle-down</entry>
- <entry>Defines styles for a "Down" control</entry>
- </row>
-
- <row>
- <entry>rich-shuttle-copy</entry>
- <entry>Defines styles for a "Copy" control</entry>
- </row>
-
- <row>
- <entry>rich-shuttle-remove</entry>
- <entry>Defines styles for a "Remove" control</entry>
- </row>
-
- <row>
- <entry>rich-shuttle-copyAll</entry>
- <entry>Defines styles for a "copyAll" control</entry>
- </row>
- <row>
- <entry>rich-shuttle-removeAll</entry>
- <entry>Defines styles for a "removeAll" control</entry>
- </row>
- <row>
- <entry>rich-shuttle-control-disabled</entry>
- <entry>Defines styles for a control in a disabled state</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a button representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-list-shuttle-button</entry>
- <entry>Defines styles for a button</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-button-disabled</entry>
- <entry>Defines styles for a disabled button</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-button-light</entry>
- <entry>Defines styles for a button highlight</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-button-press</entry>
- <entry>Defines styles for a pressed button</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-button-content</entry>
- <entry>Defines styles for a button content</entry>
- </row>
- <row>
- <entry>rich-list-shuttle-button-selection</entry>
- <entry>Defines styles for a button selection</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="CN"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-shuttle-source-row-active{
- background-color:#FFE4B5;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example an active row background color in the source list was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:listShuttle></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:listShuttle></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"rowClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:listShuttle> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:listShuttle ... rowClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/listShuttle_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, font style for row items was changed.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/listShuttle.jsf?c=lis..."
- >On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
- <property><rich:listShuttle></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/listener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,18 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:ajaxListener</keyword>
- </keywordset>
- </sectioninfo>
-
- <title>Description</title>
- <para> The <emphasis role="bold">
- <property><a4j:ajaxListener></property>
- </emphasis> component is the same one as <emphasis role="bold">
- <property><f:action></property>
- </emphasis> or <emphasis role="bold">
- <property><f:value></property>
- </emphasis> components but it is used for an Ajax container.
-</para>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:loadBundle</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:loadBundle></property></emphasis> component is similar to JSF <emphasis role="bold"><property><f:loadBundle></property></emphasis>:
- it loads a resource bundle localized for the Locale of the current view and stores properties as a Map in the current request attributes of the current request.
- </para>
-</section>
- </chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadBundle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:loadBundle</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Bundle</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.Bundle</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.AjaxLoadBundle</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following syntax:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:loadBundle baseName="demo.bundle.Messages" var="Message"/>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.AjaxLoadBundle;
-...
-AjaxLoadBundle myBundle = new AjaxLoadBundle();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- Internationalization and Localization are the processes of adaptation of web applications for different languages and cultures.
- When you develop English and German versions of a site it can be said that you localize the site for England and Germany.
- Language is not the only thing that undergoes the localization — dates, times, numbers, currencies, phone numbers, addresses, graphics, icons, colors, personal titles and even favourite sounds are also varies from country to country.
- It means that an internationalized application may have lots of different types information, which should be changed depending on user location.
- </para>
- <para>
- There are several approaches of organizing the localization.
- The JSF <emphasis role="bold"><property><h:loadBundle></property></emphasis> loads bundles into the request scope when page is being rendered and updates all the needed areas in a crowd.
- Bundle information loaded in such way becomes unavailable when dealing with Ajax requests that work in their own request scopes.
- The approach provided by RichFaces <emphasis role="bold"><property><a4j:loadBundle></property></emphasis> component enriches one given by the JSF <emphasis role="bold"><property><h:loadBundle></property></emphasis> with Ajax capability:
- it allows to use reference to a particular bundle item during an Ajax update.
- </para>
- <para>
- The <emphasis role="bold"><property><a4j:loadBundle></property></emphasis> usage is pretty simple.
- Imagine a small application that says "Hello!" in different languages, where switching between translations (localizations, in our case) occurs when corresponding links are being clicked, like you have used to see on lots of sites.
- In our JSF with RichFaces application (those who feel not strong with that should better read the "<link linkend="GettingStarted">Getting started with RichFaces</link>" chapter) create resource bundles with "Hello!" message for three different languages: English, German and Italian.
- Resource bundles are represented with <code>*.properties</code> extention files that keep items in <code>key(name) - value</code> pairs.
- A key for an item should be the same for all locales.
- </para>
- <figure>
- <title>
- Resource bundles <code>*.properties</code> files with Keys and Values for multi-language application.
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/loadBundle_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- Мessage resource bundles should be registered in the Faces configuration (<code>faces-config.xml</code>) file of your application as <code><message-bundle></code> inside the <code><application></code> element.
- Name of a resource should be specified without language or country code and without <code>.properties</code> extension.
- Supported locales should be specified inside the <code><supported-locale></code> element.
- </para>
- <para>
- <emphasis role="bold">Registering resource bundles in the Faces configuration file:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<application>
- <locale-config>
- <default-locale>en</default-locale>
- <supported-locale>en</supported-locale>
- <supported-locale>de</supported-locale>
- <supported-locale>it</supported-locale>
- </locale-config>
- <message-bundle>demo.message</message-bundle>
-</application>]]></programlisting>
-
- <para>
- For the application we will use JSF <code>javax.faces.component.UIViewRoot.setLocale</code> method that will set a needed Locale
- (each link will invoke corresponding method — there are, off course, another ways to do that).
- </para>
- <para>
- <emphasis role="bold"><code>ChangeLocale</code> Java class with three methods for setting the correponding Locale:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
- import java.util.Locale;
- import javax.faces.context.FacesContext;
-
- public class ChangeLocale {
- public String germanAction() {
- FacesContext context = FacesContext.getCurrentInstance();
- context.getViewRoot().setLocale(Locale.GERMAN);
- return null;
- }
-
- public String englishAction() {
- FacesContext context = FacesContext.getCurrentInstance();
- context.getViewRoot().setLocale(Locale.ENGLISH);
- return null;
- }
-
- public String italianAction() {
- FacesContext context = FacesContext.getCurrentInstance();
- context.getViewRoot().setLocale(Locale.ITALIAN);
- return null;
- }
-}]]></programlisting>
-
- <para>
- Recently, the JSP page will look as following:
- </para>
-
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:loadBundle var="msg" basename="demo.message"/>
- <h:outputText id="messageBundle" value="#{msg.greeting}"/>
- <a4j:commandLink value="De" action="#{changeLocale.germanAction}" reRender="messageBundle" />
- <a4j:commandLink value="Eng" action="#{changeLocale.englishAction}" reRender="messageBundle" />
- <a4j:commandLink value="It" action="#{changeLocale.italianAction}" reRender="messageBundle" />
-</h:form> ]]></programlisting>
-
- <para>
- As an output we will get a simple application with English "Hello!" by default.
- Clicking on links "De", "Eng" and "It" will show the messages specified within the corresponding <code>*.properties</code> file.
- To reference to a particular bundle item during an Ajax update it is necessary to point the component(s) that shold be re-rendered (in this example it is done with the help of <emphasis role="bold"><property><a4j:commandLink></property></emphasis> <emphasis><property>"reRender"</property></emphasis> attribute).
- </para>
-
- <figure>
- <title>
- Using of the RichFaces <emphasis role="bold"><property><a4j:loadBundle></property></emphasis> component for application localization.
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/loadBundle2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/bundle.jsf?c=loadBundle">LoadBundle page</ulink> at RichFaces LiveDemo for additional information on the component.
- </para>
- <para>
- More useful examples and articles:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/loadBund...">loadBundle tag reference</ulink> at java.sun portal;
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://java.sun.com/docs/books/tutorial/i18n/resbundle/propfile.html">Backing a ResourceBundle with Properties Files</ulink> at java.sun portal;
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.objectsource.com/j2eechapters/Ch19-I18N_and_L10N.htm">Internationalization and Localization of J2EE application</ulink> explains main principles of the internationalization of a web application;
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.laliluna.de/javaserver-faces-message-resource-bundle-tutorial....">one more useful tutorial</ulink> explains the internationalization of a web application using JSF message resource bundle;
- </para>
- </listitem>
-
- <listitem>
- <para>
- <ulink url="http://www.i-coding.de/www/en/jsf/application/locale.html">Some special problem with JSF internationalization</ulink> and solution from the i-coding.de portal.
- </para>
- </listitem>
-
- </itemizedlist>
-
- </section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<root>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>loadScript</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:loadScript></property></emphasis> component allows to load scripts from alternative sources like a jar files, etc.
- </para>
- </section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadScript.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:loadScript</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.LoadScript</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.LoadScript</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlLoadScript</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.LoadScriptRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:loadScript src="scripts/someScript.js"/>
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlLoadScript;
-...
-HtmlLoadScript myScript = new HtmlLoadScript();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of usage</title>
- <para>
- The main attribute of the <emphasis role="bold"><property><a4j:loadScript></property></emphasis> is <emphasis><property>"src"</property></emphasis>, wich defines the context relative path to the script.
- The value of the attribute does not require a prefix of an application.
- Leading slash in the path means the root of the web context.
- It is also possible to use <code>resource:///</code> prefix to access the script file using RichFaces resource framework.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:loadScript src="resource:///org/mycompany/assets/script/focus.js" />]]></programlisting>
- <para>
- The <emphasis><property>"src"</property></emphasis> attribute passses value to the <code>getResourceURL()</code> method of the ViewHandler of the application,
- The result is passed through the <code>encodeResourceURL()</code> method of the ExternalContext.
- </para>
-
-
-</section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/script.jsf?c=loadScript">Script page at RichFaces LiveDemo</ulink> for examples of component usage abd their sources.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>loadStyle</keyword>
- </keywordset>
- </sectioninfo>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:loadStyle></property></emphasis> component allows to load a style sheet file from alternative sources like a jar file, etc.
- It inserts stylesheet links to the head element.
- </para>
- </section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/loadStyle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:loadStyle</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.LoadStyle</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.LoadStyle</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlLoadStyle</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.LoadStyleRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:loadStyle src="styles/style.css"/>
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlLoadStyle;
-...
-HtmlLoadScript myStyle = new HtmlLoadStyle();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The main attribute of the <emphasis role="bold"><property><a4j:loadStylet></property></emphasis> is <emphasis><property>"src"</property></emphasis>, wich defines the context relative path to the script.
- The value of the attribute does not require a prefix of an application.
- Leading slash in the path means the root of the web context.
- It is also possible to use <code>resource:///</code> prefix to access the script file using RichFaces resource framework.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:loadStyle src="resource:///org/mycompany/assets/script/focus.js" />]]></programlisting>
- <para>
- The <emphasis><property>"src"</property></emphasis> attribute passses value to the <code>getResourceURL()</code> method of the ViewHandler of the application,
- The result is passed through the <code>encodeResourceURL()</code> method of the ExternalContext.
- </para>
-
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/style.jsf?c=loadStyle">Script page at RichFaces LiveDemo</ulink> for examples of component usage abd their sources.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,13 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:log</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><a4j:log ></property></emphasis> component generates JavaScript that opens a debug window with useful debug information.</para>
- </section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/log.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,90 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:log</keyword>
- </keywordset>
- </chapterinfo>
- <table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Log</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.Log</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.AjaxLog</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.LogRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para><programlisting role="XML"><![CDATA[<a4j:log popup="false" level="ALL" style="width: 800px; height: 300px;"></a4j:log>]]></programlisting>
- <para>Then, in order to open a log window, press "CTRL+SHIFT+L" on a page with the component.</para>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.AjaxLog;
-...
-AjaxLog myLog = new AjaxLog();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:log ></property></emphasis> component generates JavaScript that opens a log window with useful debug information,
- which contains data on requests and responses, DOM tree changes et al.
- The log could be generated not only in a new window, but also on the current page in a separate <emphasis role="bold"><property><div></property></emphasis> element.
- This feature is controlled with the component <emphasis><property>"popup"</property></emphasis> attribute.
- The window is opened on pressing of "CTRL+SHIFT+L", which is default registered key.
- The hot key could be changed with the <emphasis><property>"hotkey"</property></emphasis> attribute, where it's necessary to define one letter that together with "CTRL+SHIFT" opens a window.
- </para>
-
-
- <para>
- The <emphasis><property>"level"</property></emphasis> attribute has several possible values "FATAL", "ERROR", "WARN", "INFO", "ALL" and is used when it is necessary to change a logging level.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:log level="ALL" popup="false" width="400" height="200"/>]]></programlisting>
-
- <para>
- The component defined this way is decoded on a page as <emphasis role="bold"><property><div></property></emphasis> inside a page, where all the information beginning with informational message is generated.</para>
- <note>
- <title>Note:</title>
- <para><emphasis role="bold"><property><a4j:log></property></emphasis> is getting renewed automatically after execution of Ajax requests. Do not renew <emphasis role="bold"><property><a4j:log></property></emphasis> by using reRender!</para>
- </note>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/log.jsf?c=log">Log page</ulink> at RichFaces LiveDemo for example of component usage and their sources.
- </para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:mediaOutput</keyword>
- </keywordset>
- </sectioninfo>
-
-<title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:mediaOutput></property></emphasis> component is a facility for generating images, video, sounds and other binary resources defined by you on-the-fly.
- </para>
-</section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/mediaOutput.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,194 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:mediaOutput</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.MediaOutput</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.Resource</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.MediaOutput</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.MediaOutputRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Component definition on a page for graphical data output</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:mediaOutput element="img" cacheable="false" session="true" createContent="#{paintBean.paint}" value="#{paintData}" mimeType="image/png"/>]]></programlisting>
-
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.MediaOutput;
-...
-MediaOutput myMedia = new MediaOutput ();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:mediaOutput></property></emphasis> component is used for generating images, videos or sounds on-the-fly.
- Let's consider an image creation and generate a JPEG image with verification digits for captcha (the image will include just digits without any graphical noise and distortion).
- </para>
- <para>
- Write the following line on the page:
- </para>
- <programlisting role="XML"><![CDATA[<a4j:mediaOutput element="img" cacheable="false" session="false" createContent="#{mediaBean.paint}" value="#{mediaData}" mimeType="image/jpeg"/>]]></programlisting>
-
- <para>
- As You see from the example above, first it is necessary to specify the kind of media data You want to generate.
- This can be done with the help of <emphasis><property>"element"</property></emphasis> attribute, which possible values are <code>img</code>, <code>object</code>, <code>applet</code>, <code>script</code>, <code>link</code> or <code>a</code>.
- </para>
- <para>
- The <emphasis><property>"cacheable"</property></emphasis> defines whether the response will be cached or not. In our case we don't need our image to be cached, cause we need it to be changed every time we refresh the page.
- </para>
- <para>
- The <emphasis><property>"mimeType"</property></emphasis> attribute defines the type of output content. It is used to define the corresponded type in the header of an HTTP response.
- </para>
-
- <para>The <emphasis role="bold"><property><a4j:mediaOutput></property></emphasis> attribute has two main attributes:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>"createContent"</property></emphasis> specifies a method that will be used for content creating.
- The method accepts two parameters.
- The first one — with an <code>java.io.OutputStream</code> type — is a reference to the stream that should be used for output.
- An output stream accepts output bytes and sends them to a recipient.
- The second parameter is a reference to the component's <emphasis><property>"value"</property></emphasis> attribute and has <code>java.lang.Object</code> type.
- This parameter contains deserialized object with data specified in the <emphasis><property>"value"</property></emphasis> attribute.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"value"</property></emphasis> attribute specifies a bean class that keeps data for transmitting it into a stream in the method specified with <emphasis><property>"createContent"</property></emphasis> .
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- Now let's create the <code>MediaBean</code> class and specify there a primitive random-number generator and <code>paint</code> method that will convert the generated numbers into an output stream and give a JPEG image as a result.
- The code for <code>MediaBean</code> class is going to look as following:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Random;
-import javax.imageio.ImageIO;
-
-public class MediaBean {
- public void paint(OutputStream out, Object data) throws IOException{
- Integer high = 9999;
- Integer low = 1000;
- Random generator = new Random();
- Integer digits = generator.nextInt(high - low + 1) + low;
- if (data instanceof MediaData) {
- MediaData paintData = (MediaData) data;
- BufferedImage img = new BufferedImage(paintData.getWidth(),paintData.getHeight(),BufferedImage.TYPE_INT_RGB);
- Graphics2D graphics2D = img.createGraphics();
- graphics2D.setBackground(paintData.getBackground());
- graphics2D.setColor(paintData.getDrawColor());
- graphics2D.clearRect(0,0,paintData.getWidth(),paintData.getHeight());
- graphics2D.setFont(paintData.getFont());
- graphics2D.drawString(digits.toString(), 20, 35);
- ImageIO.write(img,"png",out);
- }
- }
-}]]></programlisting>
-
-<para>
- Now it is necessary to create a class that will keep transmissional data that will be used as input data for a content creation method.
- The code for <code>MediaData</code> class is going to be as following:
-</para>
- <note>
- <title>Note:</title>
- <para>A bean class transmitted into value should implement <code>Serializable</code> interface in order to be encoded to the URL of the resource.
- </para>
- </note>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[package demo;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.io.Serializable;
-
-public class MediaData implements Serializable{
-
- private static final long serialVersionUID = 1L;
- Integer Width=110;
- Integer Height=50;
- Color Background=new Color(190, 214, 248);
- Color DrawColor=new Color(0,0,0);
- Font font = new Font("Serif", Font.TRUETYPE_FONT, 30);
-
- /* Corresponding getters and setters */
-
-}]]></programlisting>
-
- <para>
- As a result the <emphasis role="bold"><property><a4j:mediaOutput></property></emphasis> component will generate the following image that will be updated on each page refresh:
- </para>
- <figure>
- <title>
- Using the <emphasis role="bold"><property><a4j:mediaOutput></property></emphasis> for generating an image for captcha</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/mediaOutput_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Hence, when using the component it's possible to output your data of any type on a page with Ajax requests.</para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/mediaOutput.jsf?c=med...">MediaOutput page</ulink> at RichFaces LiveDemo for more examples of component usage and their sources.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuGroup</keyword>
- </keywordset>
- </sectioninfo>
- <section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:menuGroup></property></emphasis> component is used to define an expandable group of items inside a pop-up list or another group.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:menuGroup></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuGroup_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look-and-feel</para></listitem>
- <listitem><para>Grouping of any menu's items</para></listitem>
- <listitem><para>Pop-up appearance event customization</para></listitem>
- <listitem><para>Support for disabling</para></listitem>
- <listitem><para>Smart user-defined positioning</para></listitem>
- </itemizedlist>
-
-</section>
-
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,422 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuGroup</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.MenuGroup</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlMenuGroup</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DropDownMenu</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.MenuGroupRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.MenuGroupTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu value="Active">
- ...
- <rich:menuGroup value="Active">
- <!--Nested menu components-->
- </rich:menuGroup>
- ...
-</rich:dropDownMenu >
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlMenuGroup;
-...
-HtmlMenuGroup myMenuGroup = new HtmlMenuGroup();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> The <emphasis>
- <property>"value"</property>
- </emphasis> attribute defines the text representation of a group element in the page. </para>
- <para> The <emphasis>
- <property>"icon"</property>
- </emphasis> attribute defines an icon for the component. The <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attribute defines an icon for when the group is disabled. Also you can use
- the <emphasis>
- <property>"icon"</property>
- </emphasis> and <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> facets. If the facets are defined, the corresponding <emphasis>
- <property>"icon"</property>
- </emphasis> and <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attributes are ignored and the facets' contents are used as icons.
- This could be used for an item check box implementation. </para>
- <para> Here is an example: </para>
- <programlisting role="XML"><![CDATA[...
-<f:facet name="icon">
- <h:selectBooleanCheckbox value="#{bean.property}"/>
-</f:facet>
-...
-]]></programlisting>
- <para> The <emphasis>
- <property>"iconFolder"</property>
- </emphasis> and <emphasis>
- <property>"iconFolderDisabled"</property>
- </emphasis> attributes are defined for using icons as folder icons. The <emphasis>
- <property>"iconFolder"</property>
- </emphasis> and <emphasis>
- <property>"iconFolderDisabled"</property>
- </emphasis> facets use their contents as folder icon representations in place of the
- attribute values. </para>
- <para> The <emphasis>
- <property>"direction"</property>
- </emphasis> attribute is used to define which way to display the menu as shown in the
- example below: </para>
- <para>Possible values are:</para>
- <itemizedlist>
- <listitem>
- <para>"left - down" - a submenu is attached to the left side of the menu and is
- dropping down</para>
- </listitem>
- <listitem>
- <para>"left - up" - a submenu is attached to the left side of the menu and is dropping
- up</para>
- </listitem>
- <listitem>
- <para>"right - down" - a submenu is attached to the right side of the menu and is
- dropping down</para>
- </listitem>
- <listitem>
- <para>"right - up" - a submenu is attached to the right side of the menu and is
- dropping up</para>
- </listitem>
- <listitem>
- <para>"auto - smart" positioning activation</para>
- </listitem>
- </itemizedlist>
- <para> By default, the <emphasis>
- <property>"direction"</property>
- </emphasis> attribute is set to "auto". </para>
- <para> Here is an example: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:menuGroup value="Save As..." direction="left-down">
- <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
- <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
-</rich:menuGroup>
-...
-]]></programlisting>
- <para> This would be the result: </para>
- <figure>
- <title>Using the <emphasis><property>"direction"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuGroup2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <note><title>Note:</title><para> The <emphasis role="bold">
- <property><rich:menuGroup></property>
- </emphasis> component was designed to be used only for pop-up menu list creation.</para></note>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>icon</entry>
- <entry>Redefines the icon for the enabled item state. Related attribute is "icon"</entry>
- </row>
- <row>
- <entry>iconFolder</entry>
- <entry>Redefines the folder icon for the enabled item state. Related attribute is "iconFolder"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:menuGroup></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:menuGroup></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a group</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled group</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuGroup_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <table id="tab_mG">
- <title>Classes names that define an appearance of group elements</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-group</entry>
- <entry>Defines styles for a wrapper <div> element for a group</entry>
- </row>
- <row>
- <entry>rich-menu-item-label</entry>
- <entry>Defines styles for a label of an item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon</entry>
- <entry>Defines styles for the left icon of an item</entry>
- </row>
- <row>
- <entry>rich-menu-item-folder</entry>
- <entry>Defines styles for the right icon of an item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define different states</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-item-label-disabled</entry>
- <entry>Defines styles for a label of a disabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-disabled</entry>
- <entry>Defines styles for the left icon of a disabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-folder-disabled</entry>
- <entry>Defines styles for the right icon of a disabled item</entry>
- </row>
- <row>
- <entry>rich-menu-group-hover</entry>
- <entry>Defines styles for a wrapper <div> element of a hover group</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-enabled</entry>
- <entry>Defines styles for the left icon of an enabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-selected</entry>
- <entry>Defines styles for the left icon of a selected item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:menuGroup></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_mG"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-menu-item-label-disabled{
- font-style: italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuGroup_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a disabled label font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:menuGroup></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:menuGroup></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #acbece;
- border: none;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"selectClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:menuGroup></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:menuGroup value="Save As..." selectClass="myClass">
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuGroup_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the background color for selected class was changed. Also selected class has no border.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:menuGroup></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuItem</keyword>
- </keywordset>
- </sectioninfo>
- <section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:menuItem></property></emphasis> component is used for the definition of a single item inside a pop-up list.</para>
- <para>This component can be used not only within <emphasis role="bold"><property><rich:dropDownMenu></property></emphasis> and <emphasis role="bold"><property><rich:contextMenu></property></emphasis>, but also it can used as a standalone component.
- For example, you can use it as nested component of the <emphasis role="bold"><property><rich:toolBar></property></emphasis>.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:menuItem></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuItem_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look-and-feel</para></listitem>
- <listitem><para>Different submission modes</para></listitem>
- <listitem><para>Support for disabling</para></listitem>
- <listitem><para>Custom content support</para></listitem>
- </itemizedlist>
-
-</section>
-
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,507 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuItem</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.MenuItem</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlMenuItem</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DropDownMenu</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.MenuItemRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.MenuItemTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu>
- ...
- <rich:menuItem value="Active"/>
- ...
-<rich:dropDownMenu>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlMenuItem;
-...
-HtmlMenuItem myMenuItem = new HtmlMenuItem();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> The <emphasis>
- <property>"value"</property>
- </emphasis> attribute defines the text representation for an item
- element. </para>
- <para> There are two icon-related attributes. The <emphasis>
- <property>"icon"</property>
- </emphasis> attribute defines an icon. The <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attribute defines an icon for a disabled item. Also you
- can use the <emphasis>
- <property>"icon"</property>
- </emphasis> and <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> facets. If the facets are defined, the corresponding <emphasis>
- <property>"icon"</property>
- </emphasis> and <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attributes are ignored and the facets content is shown as
- an icon. It could be used for an item check box implementation. </para>
- <para> Here is an example: </para>
- <programlisting role="XML"><![CDATA[...
-<f:facet name="icon">
- <h:selectBooleanCheckbox value="#{bean.property}"/>
-</f:facet>
-...
-]]></programlisting>
-
- <para>The <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis>
- <emphasis>
- <property>"submitMode"</property>
- </emphasis> attribute can be set to three possible parameters:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Server</code> (default)</para>
- </listitem>
- </itemizedlist>
-
- <para>Regular form submission request is used.</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <code>Ajax</code>
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Ajax submission is used for switching.</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <code>None</code>
- </para>
- </listitem>
- </itemizedlist>
-
- <para>The <emphasis>
- <property>"action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> item's attributes are ignored. Menu items
- don' fire any submits themselves. The behavior is fully
- defined by the components nested into items.</para>
- <para> For example, you can put any content into an item, but, in this case, you
- should set the <emphasis>
- <property>"submitMode"</property>
- </emphasis> attribute as <emphasis>
- <property>"none"</property>
- </emphasis>.</para>
- <para> Here is an example: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu>
- ...
- <rich:menuItem submitMode="none">
- <h:outputLink value="www.jboss.org"/>
- </rich:menuItem>
- ...
-<rich:dropDownMenu>
-...
-]]></programlisting>
- <para> You can use the <emphasis>
- <property>"disabled"</property>
- </emphasis> attribute to set the item state. </para>
- <para> Here is an example: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu>
- <rich:menuItem value="Disable" disabled="true"/>
-<rich:dropDownMenu>
-...
-]]></programlisting>
- <note>
- <title>Note:</title>
- <para> The <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis> component was designed to be used only for
- pop-up menu list creation.</para>
- </note>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find <link linkend="process"
- >RichFaces Developer Guide section about "process" attribute </link>. </para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>icon</entry>
- <entry>Redefines the icon for the enabled item state. Related attribute is "icon"</entry>
- </row>
- <row>
- <entry>iconDisabled</entry>
- <entry>Redefines the folder icon the disabled item state. Related attribute is "iconDisabled"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for an item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a hovered item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tipBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tipBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a disabled item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title> Definition of Custom Style Classes </title>
- <para> On the screenshot there are classes names that define styles for
- component elements.</para>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuItem_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <table id="tab_mI">
- <title>Classes names that define an appearance of item elements</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-item</entry>
- <entry>Defines styles for a wrapper
- <div> element
- for an item</entry>
- </row>
- <row>
- <entry>rich-menu-item-label</entry>
- <entry>Defines styles for a label of an
- item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon</entry>
- <entry>Defines styles for the left icon
- of an item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define different states</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-item-disabled</entry>
- <entry>Defines styles for a wrapper
- <div> element of
- an item</entry>
- </row>
- <row>
- <entry>rich-menu-item-enabled</entry>
- <entry>Defines styles for a wrapper
- <div> element of
- an enabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-hover</entry>
- <entry>Defines styles for a wrapper
- <div> element of
- a hover item</entry>
- </row>
-
- <row>
- <entry>rich-menu-item-label-disabled</entry>
- <entry>Defines styles for a label of a
- disabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-disabled</entry>
- <entry>Defines styles for the left icon
- of a disabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-label-enabled</entry>
- <entry>Defines styles for a label of an
- enabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-enabled</entry>
- <entry>Defines styles for the left icon
- of an enabled item</entry>
- </row>
- <row>
- <entry>rich-menu-item-label-selected</entry>
- <entry>Defines styles for a label of a
- selected item</entry>
- </row>
- <row>
- <entry>rich-menu-item-icon-selected</entry>
- <entry>Defines styles for the left icon
- of a selected item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="tab_mI"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-menu-item-disabled{
- font-style: italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuItem_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a disabled item font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:menuItem></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- border-color: #bed6f8;
- background-color: #ffffff;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:menuItem></property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:menuItem ... selectStyle="myClass">
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuItem_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the background color and border
- color for selected item were changed. </para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:menuItem></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuSeparator</keyword>
- </keywordset>
- </sectioninfo>
- <section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:menuSeparator></property></emphasis> component is used for the definition of a horizontal separator that can be placed between groups or items.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:menuSeparator></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuSeparator_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/menuSeparator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:menuSeparator</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.MenuSeparator</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlMenuSeparator</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.DropDownMenu</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.MenuSeparatorRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.MenuSeparatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dropDownMenu/>
- ...
- <rich:menuSeparator/>
- ...
-<rich:dropDownMenu/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlMenuSeparator;
-...
-HtmlMenuSeparator myMenuSeparator = new HtmlMenuSeparator();
-...
-]]></programlisting>
- </section>
-
- <section>
-
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:menuSeparator></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:menuSeparator></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for an item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuSeparator_cn.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <table id="tab_mS">
- <title>Classes names that define separator element appearance.</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-menu-separator</entry>
- <entry>Defines styles for a wrapper <div> element for a separator</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:menuSeparator></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_mS"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-menu-separator{
- border-color: #acbece;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/menuSeparator_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a menu separator border color was changed.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:menuSeparator></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:message</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The component is used for rendering a single message for a specific component. </para>
- <figure>
- <title><emphasis role="bold"><property><rich:message></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/message_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Tracking both traditional and Ajax based requests</para></listitem>
- <listitem><para>Optional toolTip to display the detail portion of the message</para></listitem>
- <listitem><para>Additionally customizable with attributes and facets</para></listitem>
- <listitem><para>Additionally provides two parts to be optionally defined: marker and
- label</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/message.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,297 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>message</keyword>
- <keyword>rich:message</keyword>
- <keyword>HtmlMessage</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.RichMessage</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlRichMessage</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.RichMessage</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.RichMessagesHtmlBaseRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.RichMessageTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>message</property> on a page, use the
- following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:message for="id"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlRichMessage;
-...
-HtmlRichMessage myMessage = new HtmlRichMessage();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> The component has the same behavior as standard <emphasis role="bold">
- <property><h:message></property>
- </emphasis>component except next two features: <itemizedlist>
- <listitem><para>It's ajaxRendered. It means that the component is reRendered after Ajax request
- automatically without outputPanel usage</para></listitem>
- <listitem><para>The component optionally provides "passed" state which will be shown if no message is displayed</para></listitem>
- <listitem><para>Provides possibility to add some marker to message. By default a marker element
- isn't shown</para></listitem>
- </itemizedlist>
- </para>
- <para> A set of facets which can be used for marker defining: <itemizedlist>
- <listitem><para><emphasis><property>"passedMarker"</property></emphasis>. This facet is provided to allow setting a marker to display if
- there is no message</para></listitem>
- <listitem><para><emphasis><property>"errorMarker"</property></emphasis>. This facet is provided to allow setting a marker to display if there
- is a message with a severity class of "ERROR"</para></listitem>
- <listitem><para><emphasis><property>"fatalMarker"</property></emphasis>. This facet is provided to allow setting a marker to display if there
- is a message with a severity class of "FATAL"</para></listitem>
- <listitem><para><emphasis><property>"infoMarker"</property></emphasis>. This facet is provided to allow setting a marker to display if there
- is a message with a severity class of "INFO"</para></listitem>
- <listitem><para><emphasis><property>"warnMarker"</property></emphasis>. This facet is provided to allow setting a marker to display if there
- is a message with a severity class of "WARN"</para></listitem>
- </itemizedlist>
- </para>
-
- <para> The following example shows different variants for component customization. The
- attribute <emphasis><property>"passedLabel"</property></emphasis> is used for definition of the label to display when no message
- appears. But the message component doesn't appear before the form submission even when
- state is defined as passed (on initial rendering). Boolean attribute<emphasis><property> "showSummary" </property></emphasis>defines possibility to
- display summary portion of displayed messages. The facets <emphasis><property>"errorMarker"</property></emphasis> and <emphasis><property>"passedMarker"</property></emphasis> set
- corresponding images for markers. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:message for="id" passedLabel="No errors" showSummary="true">
- <f:facet name="errorMarker">
- <h:graphicImage url="/image/error.png"/>
- </f:facet>
- <f:facet name="passedMarker">
- <h:graphicImage url="/image/passed.png"/>
- </f:facet>
-</rich:message>
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>errorMarker</entry>
- <entry>Redefines the content for the marker if there is message with a severity class of "ERROR"</entry>
- </row>
- <row>
- <entry>fatalError</entry>
- <entry>Redefines the content for the marker if there is message with a severity class of "FATAL"</entry>
- </row>
- <row>
- <entry>infoError</entry>
- <entry>Redefines the content for the marker if there is message with a severity class of "INFO"</entry>
- </row>
- <row>
- <entry>warnError</entry>
- <entry>Redefines the content for the marker if there is message with a severity class of "WARN"</entry>
- </row>
- <row>
- <entry>passedError</entry>
- <entry>Redefines the content for the marker if there is no message</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis></para>
-
- <para>There are no skin parameters and default predefined values. To redefine the appearance of all <emphasis
- role="bold">
- <property><rich:message></property>
- </emphasis> components at once, you should only add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis
- role="bold">
- <property><rich:message></property>
- </emphasis> component.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/message_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="mC">
- <title>Classes names that define a component appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-message</entry>
-
- <entry>Defines styles for a wrapper element</entry>
- </row>
-
- <row>
- <entry>rich-message-marker</entry>
-
- <entry>Defines styles for a marker</entry>
- </row>
-
- <row>
- <entry>rich-message-label</entry>
-
- <entry>Defines styles for a label</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:message></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="mC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-message-label{
- font-style:italic
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/message_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for message was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:message></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:message></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:message></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:message ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/message_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font weight for message was changed.</para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/message.jsf?c=message"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:message></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:messages</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis> component is similar to <emphasis role="bold">
- <property><rich:message></property>
- </emphasis> component but used for rendering all messages for the components.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:messages></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/messages_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Track both traditional and Ajax based requests</para></listitem>
- <listitem><para>Optional ToolTip to display a detailed part of the messages</para></listitem>
- <listitem><para>Additionally customizable via attributes and facets</para></listitem>
- <listitem><para>Additionally provides of three parts to be optionally defined: marker, label and header</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/messages.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,298 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>messages</keyword>
- <keyword>rich:messages</keyword>
- <keyword>HtmlMessages</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.RichMessages</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlRichMessages</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.RichMessages</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.HtmlRichMessagesRendere</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.RichMessagesTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>message</property> on a page,
- use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:messages/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlRichMessages;
-...
-HtmlRichMessages myMessages = new HtmlRichMessages();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold"><property><rich:messages></property></emphasis> component is considered as JSF HTML <emphasis role="bold"><property><h:messages></property></emphasis>,
- extended with following features:
- <itemizedlist>
- <listitem><para>Ajax support (the component does not require to be wrapped in <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> in order to be rendered during Ajax requests);</para></listitem>
- <listitem><para>possibilty to add graphical markers (pictograms) to reinforce a message for both "passed" or "failed" states;</para></listitem>
- <listitem><para>set of predefined CSS classes for customizing messages appearance.</para></listitem>
- </itemizedlist>
- </para>
- <para>There are two optional parts that could be defined for every message: marker and text label. The set of facets, which can be used for a marker definition, is shown below:</para>
-
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>errorMarker</entry>
- <entry>Defines marker for "Error" message severity class</entry>
- </row>
- <row>
- <entry>fatalMarker</entry>
- <entry>Defines marker for "Fatal" message severity class</entry>
- </row>
- <row>
- <entry>infoMarker</entry>
- <entry>Defines marker for "Info" message severity class</entry>
- </row>
- <row>
- <entry>warnMarker</entry>
- <entry>Defines marker for "Warn" message severity class</entry>
- </row>
- <!--row>
- <entry>passedMarker</entry>
- <entry>Defines marker if there is no message</entry>
- </row-->
- </tbody>
- </tgroup>
- </table>
-
- <para>The following example shows different variants of customization of the component.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:messages layout="table" tooltip="true" showDetail="false" showSummary="true">
- <f:facet name="errorMarker">
- <h:graphicImage url="/image/error.png"/>
- </f:facet>
- <f:facet name="infoMarker">
- <h:graphicImage url="/image/info.png"/>
- </f:facet>
- </rich:messages>]]></programlisting>
-
- <para>The <emphasis role="bold"><property><rich:messages></property></emphasis> component keeps all messages for all components even after only one Ajax-validated component was updated.</para>
-
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis></para>
-
- <para>There are no skin parameters and default predefined values. To redefine
- the appearance of all <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis> components at once, you should only add to your style
- sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis> component.</para>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/messages_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_msC">
- <title>Classes names that define a component appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-messages</entry>
-
- <entry>Defines styles for a wrapper
- element</entry>
- </row>
-
- <row>
- <entry>rich-messages-marker</entry>
-
- <entry>Defines styles for a
- marker</entry>
- </row>
-
- <row>
- <entry>rich-messages-label</entry>
-
- <entry>Defines styles for a
- label</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="tab_msC"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-messages-label{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/messages_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for messages was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:messages></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- color:red;
-}
-
-...]]></programlisting>
- <para>The <emphasis>
- <property>"errorClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:messages></property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:messages ... errorClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/messages_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, color of messages was changed.</para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/messages.jsf?c=messag..."
-
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:messages></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:modalPanel</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
-<title>Description</title>
- <para>The component implements a modal dialog window. All operations in
- the main application window are locked out while this window is active.
- Opening and closing the window is done through client JavaScript
- code.</para>
-
- <figure>
- <title>The <emphasis role="bold"><property><rich:modalPanel></property></emphasis> component opens in closest to observer layer.
- All other layers are dimmed by blocking <code><div></code> element (gray on the picture).</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
- </section>
-
- <section>
- <title>Key Features</title>
-
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Support of draggable operations and size changes by you</para></listitem>
- <listitem><para>Easy positioning for the modal dialog window</para></listitem>
- <listitem><para>Possibility to restore of the previous component state on a page (including position on the screen) after submitting and reloading</para></listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/modalPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,904 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:modalPanel</keyword>
-
- <keyword>HtmlModalPanel</keyword>
- </keywordset>
- </sectioninfo>
-
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.ModalPanel</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlModalPanel</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.ModalPanel</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.ModalPanelRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.ModalPanelTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>Here is a simple example as it could be used on a page:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:modalPanel id="panel">
- <f:facet name="header">
- <h:outputText value="header" />
- </f:facet>
- ...
- <!--Any Content inside-->
- ...
- <a onclick="Richfaces.hideModalPanel('modalPanelID');" href="#">Hide</a>
-</rich:modalPanel>
-<a onclick="Richfaces.showModalPanel('modalPanelID');" href="#">Show</a>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlModalPanel;
-...
-HtmlModalPanel myPanel = new HtmlModalPanel();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>The component is defined as a panel with some content inside that displays
- its content as a modal dialog. To call it and to close it, the client
- API for the window is used.</para>
-
- <table>
- <title>Functions description</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>Richfaces.showModalPanel (client
- Id)</entry>
-
- <entry>Opens a window with a specified client
- Id</entry>
- </row>
-
- <row>
- <entry>Richfaces.hideModalPanel (client
- Id)</entry>
-
- <entry>Closes a window with a specified client
- Id</entry>
- </row>
-
- <row>
- <entry>Richfaces.hideTopModalPanel ()</entry>
-
- <entry>Closes the current visible window at the top</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <important>
- <title>Important:</title>
- <para>To work properly the <rich:modalPanel> should
- always be placed outside the original <h:form>
- and must include its own <h:form> for such
- cases like performing submissions from within the
- <rich:modalPanel>. </para>
- </important>
- <note>
- <title>Note:</title>
- <para>In order to avoid a bug in IE, the root node of the dialog is
- moved on the top of a DOM tree. </para>
- </note>
-
-
- <para>It's possible to add a <emphasis>
- <property>"header"</property>
- </emphasis> facet to the component to set the content for the
- header.</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a onclick="Richfaces.showModalPanel('pnl');" href="#">Show ModalPanel</a>
-<a4j:form>
- <rich:modalPanel id="pnl">
- <f:facet name="header">
- <h:outputText value="This is a panel header" />
- </f:facet>
- <p>The <rich:modalPanel> accepts different types of information:
- from simple text to iterative components such as <rich:dataTable>, etc.
- </p>
- <a onclick="Richfaces.hideModalPanel('pnl');" href="#">Hide</a>
- </rich:modalPanel>
-</a4j:form>]]></programlisting>
-
- <para>Here is what happening on the page:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> with links</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>A facet named <emphasis>
- <property>"controls"</property>
- </emphasis> can be added to the component to place control elements on
- a header.</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a onclick="Richfaces.showModalPanel('pnl');" href="#">Show ModalPanel</a>
-<a4j:form>
- <rich:modalPanel id="pnl">
- <f:facet name="header">
- <h:outputText value="This is a panel header" />
- </f:facet>
- <f:facet name="controls">
- <h:graphicImage value="/pages/close.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('pnl')" />
- </f:facet>
- <p>The <rich:modalPanel> accepts different types of information:
- from simple text to iterative components such as <rich:dataTable>, etc.
- </p>
- </rich:modalPanel>
-</a4j:form>]]></programlisting>
-
- <para>The result:</para>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> with 'Close' control</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>To understand the sence of "<emphasis>
- <property>domElementAttachment</property>
- </emphasis>" attribute you should understand the
- <emphasis>stacking context</emphasis> in the division
- element (<code><div></code>) HTML makeup. Since each
- positioned or z-indexed element (in CSS <code>position:
- absolute</code> or <code>relative</code> or <code>z-index:
- [any integer value different from 0]</code>) form their own
- stacking context the <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> nested into such element may be overlapped with another
- elements, which appear later in HTML hierarchy and assimilated with
- basic stacking context (HTML <body>). To make the panel
- rendered in closest to the observer layer and avoid such overlapping,
- the component was designed in way when it is always being
- automatically assimilated with <code><body></code> and
- with a very high rendering layer (<code>z-index</code>). Due to some
- side effects the <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> should not always be assimilated with
- <code><body></code> stacking context. The "<emphasis>
- <property>domElementAttachment</property>
- </emphasis>" attribute helps to reassign the panel to it
- '<emphasis>parent</emphasis>' or
- '<emphasis>form</emphasis>' element. If
- '<emphasis>form</emphasis>' is used and no
- parent form is available the panel is functioning as if it is
- assimilated with <code><body></code>. </para>
-
- <note>
- <title>Note:</title>
- <para>If "<emphasis>
- <property>domElementAttachment</property>
- </emphasis>" value is not
- '<emphasis>body</emphasis>' then
- some overlapping may occur. </para>
- </note>
-
- <para>To manage window placement relative to the component, there are <emphasis>
- <property>"left"</property>
- </emphasis> and <emphasis>
- <property>"top"</property>
- </emphasis> attributes defining a window shifting relative to the
- top-left corner of the window.</para>
-
- <para>Modal windows can also support resize and move operations on the client
- side. To allow or disallow these operations, set the <emphasis>
- <property>"resizeable"</property>
- </emphasis> and <emphasis>
- <property>"moveable"</property>
- </emphasis> attributes to "true" or
- "false" values. Window resizing is also limited by <emphasis>
- <property>"minWidth"</property>
- </emphasis> and <emphasis>
- <property>"minHeight"</property>
- </emphasis> attributes specifying the minimal window sizes.</para>
- <para> Also you can use <emphasis>
- <property>"minWidth"</property>
- </emphasis> and <emphasis>
- <property>"minHeight"</property>
- </emphasis> attributes used as <code>showModalPanel()</code> arguments
- in JavaScript options. </para>
- <para> You can pass your parameters during modalPanel opening or closing. This
- passing could be performed in the following way: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[Richfaces.showModalPanel('panelId', {left: auto, param1: value1});]]></programlisting>
- <para> Thus, except the standard modalPanel parameters you can pass any of your
- own parameters. </para>
- <para> Also modalPanel allows to handle its own opening and closing events on
- the client side. The <emphasis>
- <property>"onshow"</property>
- </emphasis> attribute is used in this case. </para>
- <para> The following example shows how on the client side to define opening and
- closing event handling in such a way that your own parameters could
- also be obtained: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[onshow="alert(event.parameters.param1)"]]></programlisting>
-
- <para> Here, during modalPanel opening the value of a passing parameter is
- output. </para>
- <para> More information about this problem could be found on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111804"
- >RichFaces Development Forum</ulink>.</para>
- <para> There is a possibility to restore of the previous component state on a
- page (including position on the screen) after submitting and
- reloading. The modalPanel has some special attributes like <emphasis>
- <property>"showWhenRendered"</property>
- </emphasis> and <emphasis>
- <property>"keepVisualState"</property>
- </emphasis>. </para>
- <para>
- <emphasis>
- <property>"showWhenRendered"</property>
- </emphasis> - This boolean attribute is used if modalPanel should be
- rendered after first page loading. </para>
- <para><emphasis>
- <property> "keepVisualState"</property>
- </emphasis> - Used if modalPanel should save state after submission.
- If <code>keepVisualState="true"</code> then
- parameters which modalPanel has during opening should be submitted and
- passed to new page. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[<a href="javascript:Richfaces.showModalPanel('pnl', {top:'10px', left:'10px', height:'400'});">Show</a>]]></programlisting>
-
- <para> Here, if you open modal dialog window using current link and after
- submits data then modalPanel destination and height on new loaded page
- is restored. </para>
- <para>if you need the content of the modalPanel to be submitted - you need to
- remember two important rules: </para>
- <itemizedlist>
- <listitem>
- <para>modalPanel must have its own form if it has form
- elements (input or/and command components) inside
- (as it was shown in the example above) </para>
- </listitem>
- <listitem>
- <para>modalPanel must not be included into the form (on any
- level up) if it has the form inside.</para>
- </listitem>
- </itemizedlist>
- <para>Simple example of using commandButton within modalPanel is placed
- below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[<a4j:form>
-<rich:modalPanel>
- <f:facet name="header">
- <h:outputText value="Test" />
- </f:facet>
- <f:facet name="controls">
- <h:commandLink value="Close" style="cursor:pointer" onclick="Richfaces.hideModalPanel('mp')" />
- </f:facet>
- <h:form>
- <h:commandButton value="Test" action="#{TESTCONTROLLER.test}" />
- </h:form>
-</rich:modalPanel>]]></programlisting>
-
-
-
- <para>See also discussion about this problem on the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064191"
- >RichFaces Users Forum</ulink>.</para>
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and
- the message that the component (indirectly) produced. This attribute
- defines the parameters of localized error and informational messages
- that occur as a result of conversion, validation, or other application
- actions during the request processing lifecycle. With the help of this
- attribute you can replace the last parameter substitution token shown
- in the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>,
- {2} for <code>"ShortConverter.SHORT"</code>. </para>
- <para>In RichFaces Cookbook article about
- <ulink
- url="http://wiki.jboss.org/auth/wiki/RichFacesCookbook/DetailModalPanelFromTable"
- > Modal Panel </ulink> there is information for those of you who
- would like to click on a details link in table and have it show a
- modal panel with information loaded from the server. </para>
-
- <para>
- To avoid overlapping of the <emphasis role="bold"><property><rich:modalPanel></property></emphasis> component on the page by any embed objects (inserted with HTML <code><EMBED></code> tag) set the <emphasis><property>"overlapEmbedObjects"</property></emphasis> attribute to "true".
- </para>
-
-
- </section>
-
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>show()</entry>
- <entry>Opens the corresponding modalPanel</entry>
- </row>
-
- <row>
- <entry>hide()</entry>
- <entry>Closes the corresponding modalPanel</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Define the header content</entry>
- </row>
- <row>
- <entry>controls</entry>
- <entry>Defines the control elements on the
- header</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters for a component</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header content</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerSizeFont</entry>
-
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>headerWeightFont</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>headerFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a body element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> class name</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The screenshot shows the classes names for defining different
- elements.</para>
-
- <table id="mPC">
- <title>Classes names that define a component appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-modalpanel</entry>
-
- <entry>Defines styles for a wrapper
- <div> element of a
- modalPanel</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-mask-div</entry>
-
- <entry>Defines styles for a wrapper
- <div> element of a mask</entry>
- </row>
-
- <row>
- <entry>rich-mpnl_panel</entry>
-
- <entry>Defines styles for a modalPanel</entry>
- </row>
-
- <row>
- <entry>rich-mp-container </entry>
-
- <entry>Defines styles for a modalPanel
- container</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-resizer</entry>
-
- <entry>Defines styles for a wrapper
- <div> element of a resizing
- element</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-shadow</entry>
-
- <entry>Defines styles for a modalPanel
- shadow</entry>
- </row>
-
- <row>
- <entry>rich-mp-content-table</entry>
-
- <entry>Defines styles for a <table>
- element of a modalPanel</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-header</entry>
-
- <entry>Defines styles for a modalPanel
- header</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-header-cell</entry>
-
- <entry>Defines styles for a header cell</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-text</entry>
-
- <entry>Defines styles for a wrapper
- <div> element of a header
- text</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-body</entry>
-
- <entry>Defines styles for a content inside a
- modalPanel</entry>
- </row>
-
- <row>
- <entry>rich-mpnl-controls</entry>
-
- <entry>Defines styles for a wrapper
- <div> element of a modalPanel
- control</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="mPC"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-mpnl-mask-div{
- background-color:#fae6b0;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the background color for mask was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:modalPanel></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"headerClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> is defined as it's shown in the example
- below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:modalPanel ... headerClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/modalPanel_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,the font style for header was
- changed.</para>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>Vizit <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/modalPanel.jsf?c=moda..."
- > ModalPanel page</ulink> at RichFaces Livedemo for examples
- of component usage and their sources. </para>
-
- <para>Read the "<ulink
- url="http://eclipse.dzone.com/articles/an-introduction-to-jboss-richf?page=0%2C0"
- > An Introduction To JBoss RichFaces</ulink>"
- tutorial by Max Katz to find out how the <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> helps to edit and save changes for table entries. </para>
-
- <para>Some articles at JBoss portal describing different aspects of <emphasis
- role="bold">
- <property><rich:modalPanel></property>
- </emphasis> usage: </para>
-
- <itemizedlist>
- <listitem>
- <para> "<ulink
- url="http://www.jboss.org/community/docs/DOC-11436"
- >ModalPanelWizards</ulink>" article
- describes how to create a typical wizard with the
- help of <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> component (the same could also be
- found in the "<ulink
- url="http://www.jboss.org/community/wiki/PanelsandOutput#Organizewizards"
- > How to organize wizards using the
- <rich:modalPanel>
- component?</ulink>" chapter of RichFaces
- FAQ guide); </para>
- </listitem>
- <listitem>
- <para>Refer to the "<ulink
- url="http://www.jboss.org/community/docs/DOC-11853"
- >How to do a detail view modalPanel in a
- table</ulink>" article in the RichFaces cookbook at JBoss Portal to find out how to
- build a table with details link clicking on which
- will display a modal panel with information loaded from the server.</para>
- </listitem>
- <listitem>
- <para>"<ulink
- url="http://www.jboss.org/community/docs/DOC-11435"
- >ModalPanelValidation</ulink>" article
- gives examples of validation in <emphasis
- role="bold">
- <property><rich:modalPanel></property>
- </emphasis> (the same in the <ulink
- url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4061517"
- >corresponding topic</ulink> at RichFaces Users
- Forum);</para>
- </listitem>
- <listitem>
- <para>"<ulink
- url="http://www.jboss.org/community/docs/DOC-11863"
- >RichFacesPleaseWaitBox</ulink>" article
- describes how to show a "Please
- wait" box and block the input while the
- Ajax request is being processed using combination
- of <emphasis role="bold">
- <property><a4j:status></property>
- </emphasis> and <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> components. </para>
- </listitem>
- </itemizedlist>
-
- </section>
-
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,23 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:nodeSelectListener</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold"><property><rich:nodeSelectListener></property></emphasis>
- represents an action listener method that is notified after selection of a node.
- </para>
- </section>
-
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define some "nodeSelect" listeners for the component</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/nodeSelectListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>rich:nodeSelectListener</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>listener-class</entry>
- <entry>org.richfaces.event.NodeSelectedListener</entry>
- </row>
- <row>
- <entry>event-class</entry>
- <entry>org.richfaces.event.NodeSelectedEvent</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.NodeSelectListenerTag</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:nodeSelectListener type="demo.Bean"/>
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis></para>
- <programlisting role="JAVA"><![CDATA[package demo;
-public class ImplBean implements org.richfaces.event.NodeSelectListener{
- ...
-}
-]]></programlisting>
-
- <programlisting role="JAVA"><![CDATA[
-import demo.ImplBean;
-...
-ImplBean myListener = new ImplBean();
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of Usage</title>
-
-<para>
- The <emphasis role="bold"><property><rich:nodeSelectListener></property></emphasis> is used as a nested tag with <emphasis role="bold"><property><rich:tree></property></emphasis>
- and <emphasis role="bold"><property><rich:treeNode></property></emphasis> components.
-</para>
-<para>
-Attribute <emphasis><property>"type"</property></emphasis> defines the fully qualified Java class name for listener.
- This class should implement <ulink url="&apidoc_framework;/org/richfaces/event/NodeSelectedListener.html"> <code>org.richfaces.event.NodeSelectedListener</code></ulink>.
- interface</para>
-
- <para>
- <emphasis role="bold">The typical variant of using:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:tree switchType="server" value="#{project.data}" var="item" nodeFace="#{item.type}">
- <rich:nodeSelectListener type="demo.ListenerBean"/>
- ...
- <!-- Tree nodes -->
- ...
-</rich:tree>
-...
-]]></programlisting>
-
- <para>
- <emphasis role="bold">Java bean source:</emphasis>
- </para>
-
- <programlisting role="JAVA"><![CDATA[package demo;
-import org.richfaces.event.NodeSelectedEvent;
-public class ListenerBean implements org.richfaces.event.NodeSelectedListener{
- ...
- public void processSelection(NodeSelectedEvent arg0){
- //Custom Developer Code
- }
- ...
-}
-]]></programlisting>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para><emphasis role="bold">
- <property><rich:nodeSelectListener></property>
- </emphasis> has no skin parameters and custom <property>style classes</property>, as the
- component isn't visual.</para>
- </section>
-
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:orderingList</keyword>
- </keywordset>
- <releaseinfo>3.1.3</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> is a component for ordering items in a list. This component provides possibilities to reorder a list and sort it on the client side.</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/orderingList_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Reordering possibility for list items</para></listitem>
- <!--listitem>Customizable component layout (captions, headers, list items and ordering control set)</listitem-->
- <!--listitem>Disabled/enabled ordering controls</listitem-->
- <listitem><para>Multiple selection of list items</para></listitem>
- <listitem><para>Keyboard support</para></listitem>
- <!--listitem>Possibility to manage selection from
- <itemizedlist>
- <listitem><para>Keyboard</para></listitem>
- <listitem><para>Server side</para></listitem>
- </itemizedlist>
- </listitem-->
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/orderingList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1238 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:orderingList</keyword>
- <keyword>orderingList</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.OrderingList</entry>
- </row>
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlOrderingList</entry>
- </row>
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.OrderingList</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.OrderingListRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:orderingList value="#{bean.list}" var="list">
- <rich:column>
- <f:facet name="header">
- <h:outputText value="Name" />
- </f:facet>
- <h:inputText value="#{list.name}" />
- </rich:column>
-<rich:orderingList>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlOrderingList;
-...
-HtmlOrderingList myOrderingList = new HtmlOrderingList();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
-
- <!--maintenance of component orderingList-->
-
- <para>The <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component consists of <itemizedlist>
- <listitem><para><property>Item list</property> element that displays a list of items. It
- has three different representations for a single element: common, selected,
- active. Combination of these states is possible.</para></listitem>
- <listitem><para>
- <property>Ordering controls set</property>
- </para></listitem>
- </itemizedlist>
- </para>
-
- <!-- attributes of component orderingList -->
-
- <para>The <emphasis>
- <property> "value"</property>
- </emphasis> and <emphasis>
- <property>"var" </property>
- </emphasis> attributes are used to access the values of a list. </para>
-
- <para>Controls rendering is based on the <emphasis>
- <property>"controlsType" </property>
- </emphasis> attribute. Possible types are button or none.
- </para>
- <note>
- <para>
- Currently the button controls type is based on <emphasis role="bold"><property><div></property></emphasis> element.
- </para>
- </note>
- <para>The information about the <emphasis><property>"converter"</property></emphasis> attribute is <link linkend="conv">here</link>.</para>
- <para> The <emphasis>
- <property>"selection" </property>
- </emphasis> attribute stores the collection of items selected by you. In the example
- below after submitting the form the current collection is placed in the object's
- property and then <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis> with selected items is shown. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:orderingList value="#{bean.simpleItems}" var="item" selection="#{bean.selection}" controlsType="button">
- <rich:column>
- <f:facet name="header">
- <h:outputText value="Cars" />
- </f:facet>
- <h:outputText value="#{item}" />
- </rich:column>
- </rich:orderingList>
- <rich:dataTable id="infoPanelID" value="#{bean.info}" var="info" rendered="true">
- <rich:column>
- <h:outputText value="#{info}" />
- </rich:column>
- </rich:dataTable>
- <a4j:commandButton value="reRender" reRender="infoPanelID" />
-</h:form>
-...]]></programlisting>
- <para> The <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component allows to use <emphasis><property>"caption"</property></emphasis>
- <!--and <emphasis>
- <property>"footer" </property>
- </emphasis> -->
- facet.
- A caption could be also defined with <emphasis>
- <property>"captionLabel"</property></emphasis> attribute.
- </para>
-
- <!-- ADD SCREENSHOT-->
-
- <para>Simple example is placed below.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:orderingList value="#{bean.simpleItems}" var="item" controlsType="button" selection="#{bean.selection}">
- <f:facet name="caption">
- <h:outputText value="Caption Facet" />
- </f:facet>
- <rich:column>
- <f:facet name="header">
- <h:outputText value="Cars" />
- </f:facet>
- <h:outputText value="#{item.name}" />
- </rich:column>
- <rich:column>
- <f:facet name="header">
- <h:outputText value="Price" />
- </f:facet>
- <h:outputText value="#{item.price}" />
- </rich:column>
-</rich:orderingList>
-...]]></programlisting>
-
- <!-- ordering control set-->
- <para>The <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component provides the possibility to use <property>ordering controls
- set</property>, which performs reordering. Every control has possibility to be disabled. </para>
- <para>An <property>ordering controls set</property> could be defined with <emphasis>
- <property>"topControlLabel"</property>
- </emphasis>, <emphasis>
- <property>"bottomControlLabel"</property>
- </emphasis>, <emphasis>
- <property>"upControlLabel"</property>
- </emphasis>, <emphasis>
- <property>"downControlLabel"</property>
- </emphasis>attributes. </para>
- <para>It is also possible to use <emphasis><property>"topControl" </property></emphasis>,
- <emphasis><property>"topControlDisabled"</property></emphasis>, <emphasis><property>"bottomControl"</property></emphasis>,
- <emphasis><property>"bottomControlDisabled" </property></emphasis>, <emphasis><property>"upControl" </property></emphasis>,
- <emphasis><property>"upControlDisabled" </property></emphasis>,
- <emphasis><property>"downControl"</property></emphasis>, <emphasis><property>"downControlDisabled" </property></emphasis> facets in order to replace the default controls with facets content. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:orderingList value="#{bean.simpleItems}" var="item" controlsType="button" selection="#{bean.selection}">
- <f:facet name="topControl">
- <h:outputText value="Move to top" />
- </f:facet>
- <f:facet name="upControl">
- <h:outputText value="Move up" />
- </f:facet>
- <f:facet name="downControl">
- <h:outputText value="Move down" />
- </f:facet>
- <f:facet name="bottomControl">
- <h:outputText value="Move to bottom" />
- </f:facet>
-<rich:orderingList>
-...]]></programlisting>
-
- <para>The position of the controls relatively to a list could be customized with: <itemizedlist>
- <!--listitem>
- <emphasis>
- <property>"controlsPosition"</property>
- </emphasis> attribute. Possible values: <itemizedlist>
- <listitem><para>left - controls could be rendered to the left side of a list</para></listitem>
- <listitem><para>right(default) - controls could be rendered to the right side of a
- list </para></listitem>
- <listitem><para>top - controls could be rendered above the list </para></listitem>
- <listitem><para>bottom - controls could be rendered below the list </para></listitem>
- </itemizedlist>
- </listitem-->
- <listitem><para><emphasis>
- <property> "controlsHorizontalAlign"</property>
- </emphasis> attribute. Possible values: <itemizedlist>
- <listitem><para>"left" - controls render to the left side of a list</para></listitem>
- <listitem><para>"right" (default) - controls render to the right side of a list</para></listitem>
- <listitem><para>"center" - controls is centered</para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para><emphasis>
- <property> "controlsVerticalAlign"</property>
- </emphasis> attribute. Possible values: <itemizedlist>
- <listitem><para>"top" - controls render aligned to the top side of a list </para></listitem>
- <listitem><para>"bottom" - controls render aligned to the bottom side of a list </para></listitem>
- <listitem><para>"center" (default) - controls is centered relatively to a list
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <!--listitem><emphasis>
- <property>"controlsLayout"</property>
- </emphasis> attribute. Possible values: <itemizedlist>
- <listitem><para>inline - controls defined one by one in line </para></listitem>
- <listitem><para>block - controls defined in column </para></listitem>
- </itemizedlist>
- </listitem-->
- </itemizedlist>
- </para>
-
- <para>The <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component has a possibility to hide any of the controls by pairs using
- following attributes: <itemizedlist>
- <listitem><para>
- <emphasis>
- <property>"orderControlsVisible"</property>
- </emphasis> attribute has two values: "true" or "false". If false
- <property>Up</property> and <property>Down</property> controls are not
- displayed.</para></listitem>
- <listitem><para>
- <emphasis>
- <property>"fastOrderControlsVisible"</property>
- </emphasis> attribute has two values: "true" or "false". If false
- <property>Top</property> and <property>Bottom</property> controls are not
- displayed.</para></listitem>
- </itemizedlist>
- </para>
- <para>
- The <emphasis role="bold"><property><rich:orderingList></property></emphasis> component allows to use internationalization method
- to redefine and localize the labels. You could use application resource bundle and define
- <code>RICH_SHUTTLES_TOP_LABEL</code>,
- <code>RICH_SHUTTLES_BOTTOM_LABEL</code>,
- <code>RICH_SHUTTLES_UP_LABEL</code>,
- <code>RICH_SHUTTLES_DOWN_LABEL</code> there.
- </para>
- <para>
- You could also pack <code>org.richfaces.renderkit.orderingList</code> resource bundle with your JARs defining the same properties.
- </para>
- <!-- Wiil be done for 3.2.0 version-->
- <!--para>The component provides possibility to be customized using templating. The
- customization could be performed by a layout definition nested into the component. 5
- elements are provided to be defined inside template: {list}, {topControl},
- {bottomControl}, {downCotrol}, {upControl}. <para>The example is placed below.</para>
- </para>
- <para>Example:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:orderingList>
- <h:panelGrid columns="2" columnClasses="class1 class2">
- <h:outputText value="{list}"/>
- <h:panelGroup>
- <h:outputText value="{topControl}"/>
- <h:outputText value="{upControl}"/>
- <h:outputText value="{downControl}"/>
- <h:outputText value="{bottomControl}"/>
- </h:panelGroup>
- </h:panelGrid>
-</rich:orderingList>
-...]]>
- </programlisting-->
-
- <table>
- <title>Keyboard usage for elements selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>CTRL+click</entry>
- <entry>Inverts selection for an item</entry>
- </row>
- <row>
- <entry>SHIFT+click</entry>
- <entry>Selects all rows from active one to a clicked row if they differ,
- else select the active row. All other selections are cleared</entry>
- </row>
- <row>
- <entry>CTRL+A</entry>
- <entry>Selects all elements inside the list if some active element is
- already present in a list</entry>
- </row>
- <row>
- <entry>Up, Down arrows</entry>
- <entry>Changes the active and selected elements to the next or previous in a list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Keyboard usage for elements reordering</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>Page Up</entry>
- <entry>Moves selected set to the top of a list</entry>
- </row>
- <row>
- <entry>Page Down</entry>
- <entry>Moves selected set to the bottom of a list</entry>
- </row>
- <row>
- <entry>CTRL+Up arrow</entry>
- <entry>Moves selected item to one position upper</entry>
- </row>
- <row>
- <entry>CTRL+Down arrow</entry>
- <entry>Moves selected item to one position lower</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <!--
- <row>
- <entry>SortAscending()</entry>
- <entry>Sorts items in the list ascending</entry>
- </row>
- <row>
- <entry>SortDescending()</entry>
- <entry>Sorts items in the list descending</entry>
- </row>
- <row>
- <entry>Sort()</entry>
- <entry>Inverts current sorting</entry>
- </row>
- -->
-
- <!--Controls common API -->
- <row>
- <entry role="tbi">hide()</entry>
- <entry role="tbi">Hides ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">show()</entry>
- <entry role="tbi">Shows ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">isShown()</entry>
- <entry role="tbi">Checks if current control is shown (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">enable()</entry>
- <entry role="tbi">Enables ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">disable()</entry>
- <entry role="tbi">Disables ordering control (to be implemented)</entry>
- </row>
- <row>
- <entry role="tbi">isEnabled()</entry>
- <entry role="tbi">Checks if current control is enabled (to be implemented)</entry>
- </row>
- <!--List managing API -->
- <row>
- <entry>Up()</entry>
- <entry>Moves up selected item in the list</entry>
- </row>
- <row>
- <entry>Down()</entry>
- <entry>Moves down selected item in the list</entry>
- </row>
- <row>
- <entry>Top()</entry>
- <entry>Moves top selected item in the list</entry>
- </row>
- <row>
- <entry>Bottom()</entry>
- <entry>Moves bottom selected item in the list</entry>
- </row>
- <row>
- <entry>getSelection()</entry>
- <entry>Returns currently selected item</entry>
- </row>
- <row>
- <entry>getItems()</entry>
- <entry>Returns the collection of all items</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>caption</entry>
- <entry>Redefines the caption content. Related attribute is "captionLabel"</entry>
- </row>
- <row>
- <entry>topControl</entry>
- <entry>Redefines the label for the "Top" control. Related attribute is "topControlLabel"</entry>
- </row>
- <row>
- <entry>bottomControl</entry>
- <entry>Redefines the label for the "Bottom" control. Related attribute is "bottomControlLabel"</entry>
- </row>
- <row>
- <entry>upControl</entry>
- <entry>Redefines the label for the "Up" control. Related attribute is "upControlLabel"</entry>
- </row>
- <row>
- <entry>downControl</entry>
- <entry>Redefines the label for the "Down" control. Related attribute is "downControlLabel"</entry>
- </row>
- <row>
- <entry>topControlDisabled</entry>
- <entry>Redefines the disabled label for the "Top" control</entry>
- </row>
- <row>
- <entry>bottomControlDisabled</entry>
- <entry>Redefines the disabled label for the "Bottom" control</entry>
- </row>
- <row>
- <entry>upControlDisabled</entry>
- <entry>Redefines the disabled label for the "Up" control</entry>
- </row>
- <row>
- <entry>downControlDisabled</entry>
- <entry>Redefines the disabled label for the "Down" control</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a wrapper <div> element of a list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a header cell of a list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-right-width</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-bottom-width</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for caption element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for row element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerGradientColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for selected row element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for cell element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for selected cell element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for active cell element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a disabled button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button highlight</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>trimColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a pressed button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for top, bottom, up, down controls and for controls
- in disabled state</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/orderingList_cn.png"/>
- </imageobject>
- </mediaobject>
-
- </figure>
-
- <table id="OrderLC">
- <title>Classes names that define a list representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-list-body</entry>
- <entry>Defines styles for a wrapper table element of an orderingList</entry>
- </row>
- <row>
- <entry>rich-ordering-list-output</entry>
- <entry>Defines styles for a wrapper <div> element of a
- list</entry>
- </row>
- <row>
- <entry>rich-ordering-list-items</entry>
- <entry>Defines styles for a wrapper table element of items in the
- list</entry>
- </row>
- <row>
- <entry>rich-ordering-list-content</entry>
- <entry>Defines styles for a list content</entry>
- </row>
- <row>
- <entry>rich-ordering-list-header</entry>
- <entry>Defines styles for a wrapper <div> element for a list
- header</entry>
- </row>
- <row>
- <entry>rich-ordering-list-table-header</entry>
- <entry>Defines styles for a wrapper <tr> element for a list
- header</entry>
- </row>
- <row>
- <entry>rich-ordering-list-table-header-cell</entry>
- <entry>Defines styles for a header cell</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a caption representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-list-caption</entry>
- <entry>Defines styles for a caption</entry>
- </row>
- <row>
- <entry>rich-ordering-list-caption-disabled</entry>
- <entry>Defines styles for a caption in disabled state</entry>
- </row>
- <row>
- <entry>rich-ordering-list-caption-active</entry>
- <entry>Defines styles for a caption in active state</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Classes names that define rows representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-list-row</entry>
- <entry>Defines styles for a row</entry>
- </row>
- <row>
- <entry>rich-ordering-list-row-selected</entry>
- <entry>Defines styles for a selected row</entry>
- </row>
- <row>
- <entry>rich-ordering-list-row-active</entry>
- <entry>Defines styles for an active row</entry>
- </row>
- <row>
- <entry>rich-ordering-list-row-disabled</entry>
- <entry>Defines styles for a disabled row</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define cells representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-list-cell</entry>
- <entry>Defines styles for a cell</entry>
- </row>
- <row>
- <entry>rich-ordering-list-cell-selected</entry>
- <entry>Defines styles for a selected cell</entry>
- </row>
- <row>
- <entry>rich-ordering-list-cell-active</entry>
- <entry>Defines styles for an active cell</entry>
- </row>
- <row>
- <entry>rich-ordering-list-cell-disabled</entry>
- <entry>Defines styles for a disabled cell</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a button representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-list-button</entry>
- <entry>Defines styles for a button</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-disabled</entry>
- <entry>Defines styles for a disabled button</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-light</entry>
- <entry>Defines styles for a button highlight</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-press</entry>
- <entry>Defines styles for a pressed button</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-content</entry>
- <entry>Defines styles for a button content</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-selection</entry>
- <entry>Defines styles for a button selection</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-valign</entry>
- <entry>Defines styles for a wrapper <td> element for buttons
- vertical align</entry>
- </row>
- <row>
- <entry>rich-ordering-list-button-layout</entry>
- <entry>Defines styles for a wrapper <div> element of buttons
- layout</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Classes names that define controls representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-ordering-controls</entry>
- <entry>Defines styles for a controls group</entry>
- </row>
- <row>
- <entry>rich-ordering-control-top</entry>
- <entry>Defines styles for a "top" control</entry>
- </row>
- <row>
- <entry>rich-ordering-control-bottom</entry>
- <entry>Defines styles for a "bottom" control</entry>
- </row>
- <row>
- <entry>rich-ordering-control-up</entry>
- <entry>Defines styles for a "up" control</entry>
- </row>
- <row>
- <entry>rich-ordering-control-down</entry>
- <entry>Defines styles for a "down" control</entry>
- </row>
- <row>
- <entry>rich-ordering-control-disabled</entry>
- <entry>Defines styles for controls in disabled state</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="OrderLC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-ordering-list-table-header-cell{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/orderingList_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font weight for header text was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:orderingList></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:orderingList></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"rowClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:orderingList></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:orderingList ... rowClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/orderingList_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for rows was changed.</para>
-
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/orderingList.jsf?c=or..."
- >On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
- <property><rich:orderingList></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,13 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>CommandLink</keyword>
- </keywordset>
- </sectioninfo>
-
-<title>Description</title>
- <para>The component is used for components grouping in the Ajax output area, which offers several additional output opportunities such as inserting of non-present in tree components, saving of transient elements after Ajax request and some others.</para>
-</section>
-</chapter>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/outputPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,195 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:outputPanel</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.OutputPanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Panel</entry>
- </row>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.ajax.OutputPanel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry> org.ajax4jsf.component.html.HtmlAjaxOutputPanel </entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry> org.ajax4jsf.components.AjaxOutputPanelRenderer </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following syntax:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:outputPanel>
- <h:form>
- <h:outputText value="Some text"/>
- <h:inputText id="text1" label="text1" value="#{rsBean.text1}"/>
- </h:form>
-</a4j:outputPanel>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxOutputPanel;
-...
-HtmlAjaxOutputPanel myPanel = new HtmlAjaxOutputPanel();]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> component is used when one or more components should be always updated.
- The component job is similar to that the <emphasis><property>"reRender"</property></emphasis> attribute does, but instead of specifying a comma separated list of components it wraps the components to be updated.
- This could be useful in cases when some components aren't rendered during the primary non-ajax response.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[<a4j:support reRender="mypanel"/>
-...
-<a4j:outputPanel id="mypanel">
- <h:panelGrid rendered="#{not empty foo.bar}">
- ...
- </h:panelGrid>
-</a4j:outputPanel>]]></programlisting>
-
- <para>
- By default the <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> is rendered as opening and closing HTML <emphasis role="bold"><property><span></property></emphasis> tags and functions as container.
- With the help of the <emphasis><property>"layout"</property></emphasis> attribute this output way could be set to any of three variants:
- </para>
- <itemizedlist>
- <listitem>
- <para>"inline" (default)</para>
- </listitem>
- <listitem>
- <para>"block"</para>
- </listitem>
- <listitem>
- <para>"none"</para>
- </listitem>
- </itemizedlist>
-
- <para>
- If <code>layout="block"</code> is set, the component is rendered as a pair of opening and closing <emphasis role="bold"><property><div></property></emphasis> tags.
- In this case it is possible to apply available for <emphasis role="bold"><property><div></property></emphasis> elements style attributes.
- <code>layout ="none"</code> helps to avoid an unnecessary tag around a context that is rendered or not according to the <emphasis><property>"rendered"</property></emphasis> attribute value.
- In case an inner context isn't rendered the <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> is rendered in a <emphasis role="bold"><property><span></property></emphasis> tags with ID equal to ID of a child component and <code>display:none</code> style.
- If a child component is rendered, <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> doesn't present at all in a final code.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:support reRender="mypanel"/>
- ...
-<a4j:outputPanel layout="none">
- <h:panelGrid id="mypanel" rendered="#{not empty foo.bar}">
- ...
- </h:panelGrid>
-</a4j:outputPanel>]]></programlisting>
-
- <para>
- As you see, the code is very similar to the one shown above, but <emphasis><property>"reRender "</property></emphasis> attribute refers directly to the updating panelGrid and not to the framing outputPanel,
- and it's more semantically correct.
- </para>
-
- <para>
- The <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> allows to update a part of a page basing on its own flag.
- The flag is defined by the <emphasis><property>"ajaxRendered"</property></emphasis> attribute.
- The flag is commonly used when a part of a page must be updated or can be updated on any response.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:outputPanel ajaxRendered="true">
- <h:messages/>
-</a4j:outputPanel>]]></programlisting>
-
- <para>
- The <emphasis role="bold"><property><a4j:outPanel></property></emphasis> should be used for non-JSF component part framing, which is to be updated on Ajax response, as RichFaces specifies the list of updating areas as a list of an existing JSF component.
- </para>
- <para> On default non-JSF context isn't saved in a component tree, but is rendered
- anew every time. To accelerate the processing speed and Ajax response input speed,
- RichFaces saves non-JSF context in a component tree on default. This option could be
- canceled by <emphasis>
- <property>"keepTransient"</property>
- </emphasis> attribute that cancels transient flag forced setting for child components.
- This flag setting keeps the current value set by child components. </para>
- <note>
- <title>Note:</title>
- <para> In JSF 1.1 implementation and lower, where non-JSF context should be framed with
- the <emphasis role="bold">
- <property><f:verbatim></property>
- </emphasis> component, <emphasis role="bold">
- <property><a4j:outputPanel></property>
- </emphasis> doesn't improve this JSF implementation option in any way, so
- you still have to use this tag where it's necessary without RichFaces
- usage. </para>
- </note>
- <para> RichFaces allows setting Ajax responses rendering directly basing on component tree
- nodes without referring to the JSP (XHTML) page code. It could be defined by <emphasis>
- <property>"selfRendered"</property>
- </emphasis> attribute setting to "true" on <emphasis role="bold">
- <property><a4j:region></property>
- </emphasis> and could help considerably speed up a response output. However, if a
- transient flag is kept as it is, this rapid processing could cause missing of transient
- components that present on view and don't come into a component tree. Hence,
- for any particular case you could choose a way for you application optimization: speed
- up processing or redundant memory for keeping tree part earlier defined a transient.
- </para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/outputPanel.jsf?c=out...">OutputPanel page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
- </para>
-
- <para>
- Useful articles:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- search the <ulink url="http://www.jboss.org/index.html?module=bb&op=viewforum&f=26">RichFaces Users Forum</ulink> for some additional information on component usage;
- </para>
- </listitem>
-
- </itemizedlist>
-
-
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:paint2D</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>Create image by painting from a managed bean method, same as <emphasis><property>"paint"</property></emphasis> (Graphics2D)
- in <emphasis><property>"SWING"</property></emphasis> components. </para>
- <figure>
- <title><emphasis role="bold"><property><rich:paint2D></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/paint2D_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Simple Graphics2D - painting style directly on the Web page</para></listitem>
- <listitem><para>Supports client/server caching for generated images</para></listitem>
- <listitem><para>Fully supports <emphasis><property>"JPEG"</property></emphasis> (24-bit, default), <emphasis><property>"GIF"</property></emphasis> (8-bit with
- transparency), and <emphasis><property>"PNG"</property></emphasis> (32-bit with transparency)
- formats for sending generated images</para></listitem>
- <listitem><para>Easily customizable borders and white space to wrap the image</para></listitem>
- <listitem><para>Dynamically settable paint parameters using tag attributes</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/paint2D.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,166 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>paint</keyword>
- <keyword>rich:paint2D</keyword>
- <keyword>HtmlPaint2D</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Paint2D</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPaint2D</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Output</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.Paint2DRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.Paint2DTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:paint2D paint="#{paint2D.paint}" data="#{paint2DModel}"/>
-...
-]]></programlisting>
- <para>Here <emphasis>
- <property>"paint"</property>
- </emphasis> specifies the method performing drawing and <emphasis>
- <property>"data"</property>
- </emphasis> specifies Managed Bean property keeping the data used by the method.</para>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPaint2D;
-...
-HtmlPaint2D myImage = new HtmlPaint2D();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The example shows two main attributes of the component:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"paint"</property>
- </emphasis>
- </para>
- <para>Specify a method receiving an object specified in data as a parameter and sending
- graphical information into the stream</para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"data"</property>
- </emphasis>
- </para>
- <para>Specifies a bean class keeping your data for rendering</para>
- </listitem>
- </itemizedlist>
- <para>
- <note>
- <title>Note:</title><para>Data object should implement serializable interface </para></note>
- </para>
- <para>The <emphasis>
- <property>"format"</property>
- </emphasis> attribute of the component defines a format of visual data passing to the server.</para>
- <para>Generated data can be used as a cacheable or non-cacheable resource. It's defined
- with <emphasis>
- <property>"cacheable"</property>
- </emphasis> attribute. If cache support is turned on, a key is created in URI with a mix of
- size (width/height), <code>"paint"</code> method, <emphasis>
- <property>"format"</property>
- </emphasis> and <emphasis>
- <property>"data"</property>
- </emphasis> attributes.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[paintBean.java:
-
-public void paint(Graphics2D g2, Object obj) {
- // code that gets data from the data Bean (PaintData)
- PaintData data = (PaintData) obj;
- ...
- // a code drawing a rectangle
- g2.drawRect(0, 0, data.Width, data.Height);
- ...
- // some more code placing graphical data into g2 stream below
-}
-
-dataBean.java:
-
-public class PaintData implements Serializable{
- private static final long serialVersionUID = 1L;
- Integer Width=100;
- Integer Height=50;
- ...
-}
-
-page.xhtml:
-
-...
-<rich:paint2D paint="#{paint2D.paint}" data="#{paint2DModel.data}"/>
-...
-]]></programlisting>
-
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para><property>Paint2D</property> has no skin parameters and special <emphasis><property>style
- classes</property>, </emphasis> as it consists of one element generated with a
- your method on the server.</para>
- <para>To define some style properties such as an indent or a border, it's possible to
- use <emphasis>
- <property>"style"</property>
- </emphasis> and <emphasis>
- <property>"styleClass"</property>
- </emphasis> attributes on the component.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/paint2D.jsf?c=paint2d"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:paint2D></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:panel</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A skinnable <property>panel</property> that is rendered as a bordered rectangle with or
- without a header.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:panel></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Support for any content inside</para></listitem>
- <listitem><para>Header adding feature</para></listitem>
- </itemizedlist>
-</section>
-</section>
-
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,400 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rectangle</keyword>
- <keyword>rich:panel</keyword>
- <keyword>HtmlPanel</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.panel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.panel</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.PanelRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.PanelTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel header="Panel Header">
- ...
- <!--Any Content inside-->
- ...
-</rich:panel>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanel;
-...
-HtmlPanel myPanel = new HtmlPanel();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis ><property>"header"</property></emphasis > attribute defines text to be represented. If you can use the
- <emphasis ><property>"header"</property></emphasis> facet, you can even not use the <emphasis ><property>"header"</property></emphasis > attribute.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <f:facet name="header">
- <h:graphicImage value="/images/img1.png"/>
- </f:facet>
- ...
- <!--Any Content inside-->
- ...
-</rich:panel>
-...
-]]></programlisting>
-
- <para><emphasis role="bold">
- <property><rich:panel></property>
- </emphasis> components are used to group page content pieces on similarly formatted
- rectangular <property>panels</property>. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- ...
-</rich:panel>
-...
-]]></programlisting>
- <para>It's generating on a page in the following way:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:panel></property></emphasis> without header</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The example shows that similar rectangular areas are formed with a particular style.</para>
- <para>When creating a <property>panel</property> with a header element, one more <emphasis
- role="bold">
- <property><div></property>
- </emphasis> element is added with content defined for a header.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <f:facet name="header">
- <h:outputText value="Olympus EVOLT E-500 "/>
- </f:facet>
- ...
-</rich:panel>
-...
-]]></programlisting>
- <para>It's displayed on a page in the following way:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:panel></property> with header</emphasis></title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>As it has been mentioned <link linkend="panel">above</link>, the component is mostly used for a page style definition,
- hence the main attributes are style ones.</para>
- <itemizedlist>
- <listitem><para><emphasis><property> "styleClass" </property></emphasis></para></listitem>
- <listitem><para><emphasis><property> "headerClass" </property></emphasis></para></listitem>
- <listitem><para><emphasis><property> "bodyClass" </property></emphasis></para></listitem>
- </itemizedlist>
- <para>Moreover, to add e.g. some JavaScript effects, events defined on it are used.</para>
- <itemizedlist>
- <listitem><para> <emphasis><property>"onmouseover"</property></emphasis> </para></listitem>
- <listitem><para> <emphasis><property>"onclick"</property></emphasis> </para></listitem>
- <listitem><para> <emphasis><property>"onmouseout"</property></emphasis> </para></listitem>
- <listitem><para> etc. </para></listitem>
- </itemizedlist>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:panel></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panel></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a whole component</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a header element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size </entry>
- </row>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a body element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
- <figure>
- <title>Style classes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn11">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-panel</entry>
- <entry>Defines styles for a wrapper <div> element of a component</entry>
- </row>
- <row>
- <entry>rich-panel-header</entry>
- <entry>Defines styles for a header element</entry>
- </row>
- <row>
- <entry>rich-panel-body</entry>
- <entry>Defines styles for a body element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold"><property><rich:panel></property></emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the table <link linkend="tab_cn11">above</link>) and define necessary properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-panel-body{
- background-color: #ebf3fd;
-}
-...
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a body background color was changed.</para>
- <para>Also it's possible to change styles of particular <emphasis role="bold"><property><rich:panel></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:panel></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- text-align: justify;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"bodyClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:panel> </property></emphasis> is defined as it's shown in the example below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:panel... bodyClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panel_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, text align of body was changed.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panel.jsf?c=panel"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:panel></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:panelBar</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para><property>panelBar</property> is used for grouping any content which is loaded on the client
- side and appears as groups divided on child panels after the header is clicked.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:panelBar></property></emphasis> with content inside</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBar_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Skinnable slide panel and child items</para></listitem>
- <listitem><para>Groups any content inside each panel</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,289 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>bar</keyword>
- <keyword>rich:panelbar</keyword>
- <keyword>HtmlPanelBar</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.PanelBar</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPanelBar</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.PanelBar</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.PanelBarRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.PanelBarTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelBar>
- ...
- <rich:panelBarItem label="Canon">
- ...
- </rich:panelBarItem>
- <rich:panelBarItem label="Nikon">
- ...
- </rich:panelBarItem>
-</rich:panelBar>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanelBar;
-...
-HtmlPanelBar myBar = new HtmlPanelBar();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it was mentioned <link linkend="panelBar">above</link>,
- <property>panelBar</property> is used for grouping any content on the client, thus its
- customization deals only with specification of sizes and styles for rendering.</para>
- <para><emphasis>
- <property>"width"</property>
- </emphasis> and <emphasis>
- <property>"height"</property>
- </emphasis> (both are 100% on default) attributes stand apart.</para>
- <para>Style attributes are described further.</para>
- <para><property>panelBar</property> could contain any number of child
- <property>panelBarItem</property> components inside, which content is uploaded onto the
- client and headers are controls to open the corresponding child element.</para>
- <!--para>
- The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute.
- The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and the message that the component (indirectly) produced.
- This attribute defines the parameters of localized error and informational messages that
- occur as a result of conversion, validation, or other application actions during the request
- processing lifecycle. With the help of this attribute you can replace the
- last parameter substitution token shown in the messages. For example, {1} for <code>"DoubleRangeValidator.MAXIMUM"</code>, {2}
- for <code>"ShortConverter.SHORT"</code>.
- </para-->
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:panelBar></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panelBar></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameter redefinition for a whole component</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameter</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>There is one predefined class for the <emphasis role="bold">
- <property><rich:panelBar></property>
- </emphasis>, which is applicable to a whole component, specifying padding, borders, and
- etc.</para>
- <figure>
- <title>Style classes</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBar_cn.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- <table id="tab_pB">
- <title>Class name that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-panelbar</entry>
- <entry>Defines styles for a wrapper <div> element of a
- component</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>Other classes responsible for elements rendering are described for child <emphasis
- role="bold">
- <property><rich:panelBarItem></property>
- </emphasis> elements and could be found in the components chapters.</para>
-
- <table>
- <title>Style component classes</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>A class attribute</entry>
- <entry>A component element defined by an attribute</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>styleClass</entry>
- <entry>Applicable to a whole component (together with headers)</entry>
- </row>
- <row>
- <entry>headerClass</entry>
- <entry>Applicable to a header element</entry>
- </row>
- <row>
- <entry>contentClass</entry>
- <entry>Applicable to a content </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:panelBar></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_pB"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-panelbar{
- font-style: italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBar_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example header and content font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:panelBar></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:panelBar></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-family: Tahoma;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"contentClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:panelBar></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panelBar ... contentClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBar_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font family for content were changed.</para>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelBar.jsf?c=panelBar"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:panelBar></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:panelBarItem</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para><property>panelBarItem</property> is used for grouping any content inside within one
- panelBar which is loaded on client side and appears as groups divided on child panels after
- header is clicked.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:panelBarItem></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBarItem_init.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Groups any content inside each Panels</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelBarItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,341 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>item</keyword>
- <keyword>rich:panelbaritem</keyword>
- <keyword>HtmlPanelBar</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.PanelBarItem</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPanelBarItem</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.PanelBarItem</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.PanelBarItemRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.PanelBarItemTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelBar>
- <rich:panelBarItem label="Canon">
- ...
- </rich:panelBarItem>
- <rich:panelBarItem label="Nikon">
- ...
- </rich:panelBarItem>
-</rich:panelBar>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanelBarItem;
-...
-HtmlPanelBarItem myBarItem = new HtmlPanelBarItem();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis>
- <property> "label"</property>
- </emphasis> attribute defines text to be represented. If you can use the <emphasis><property>"label"</property></emphasis> facet, you can even not use the <emphasis>
- <property>"label"</property>
- </emphasis> attribute.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelBarItem...>
- <f:facet name="label">
- <h:graphicImage value="/images/img1.png"/>
- </f:facet>
- ...
- <!--Any Content inside-->
- ...
-</rich:panelBarItem>
-...
-]]></programlisting>
- <para>As it was mentioned <link linkend="panelBarItem">above</link>,
- <property>panelBarItem</property> is used for grouping any content inside within one
- <property>panelBar</property>, thus its customization deals only with specification of sizes
- and styles for rendering.</para>
- <para><property>panelBar</property> could contain any number of child
- <property>panelBarItem</property> components inside, which content is uploaded onto the client
- and headers are controls to open the corresponding child element.</para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>label</entry>
- <entry>defines the label text on the panel item header</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:panelBarItem></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panelBarItem></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a content </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>preferableDataSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>preferableDataFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a header element (active or inactive)</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBarItem_cn.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_pBI">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-panelbar-header</entry>
- <entry>Defines styles for a wrapper <div> element of a header
- element</entry>
- </row>
-
- <row>
- <entry>rich-panelbar-header-act</entry>
- <entry>Defines styles for a wrapper <div> element of an active header
- element</entry>
- </row>
-
- <row>
- <entry>rich-panelbar-content</entry>
- <entry>Defines styles for a content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Style component classes</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>A class attribute</entry>
- <entry>A component element defined by an attribute</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerClass</entry>
- <entry>Applicable to a header element</entry>
- </row>
- <row>
- <entry>contentClass</entry>
- <entry>Applicable to a content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:panelBarItem></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_pBI"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-panelbar-content{
- background-color: #ecf4fe;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBarItem_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a content background color was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:panelBarItem></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:panelBarItem></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-family: monospace;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"headerClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:panelBarItem></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panelBarItem ... headerClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelBarItem_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font family for header of active item was changed.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenu</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> component is used to define an in line vertical menu on a page.</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenu_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Different submission modes</para></listitem>
- <listitem><para>Collapsing/expanding sublevels with optional request sending</para></listitem>
- <listitem><para>Custom and predefined icons support</para></listitem>
- <listitem><para>Disablement support</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenu</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.PanelMenu</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlPanelMenu</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.PanelMenu</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.PanelMenuRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.PanelMenuTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu event="onmouseover">
- <!--Nested panelMenu components-->
-</rich:panelMenu>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanelMenu;
-...
-HtmlPanelMenu myPanelMenu = new HtmlPanelMenu();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>All attributes are not required.</para>
- <para>Use <emphasis>
- <property>"event"</property>
- </emphasis> attribute to define an event for appearance of collapsing/expanding sublevels.
- Default value is "onclick". An example could be seen below.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu event="onmouseover">
- <!--Nested panelMenu components-->
-</rich:panelMenu>
-...]]></programlisting>
-
- <para>Switching mode could be chosen with the <emphasis>
- <property>"mode"</property>
- </emphasis> attribute for all panelMenu items except ones where this attribute was redefined.
- By default all items send traditional request. </para>
- <para>The <emphasis>
- <property>"expandMode"</property>
- </emphasis> attribute defines the submission modes for all collapsing/expanding panelMenu
- groups except ones where this attribute was redefined. </para>
- <para>The <emphasis>
- <property>"mode"</property>
- </emphasis> and <emphasis>
- <property>"expandMode"</property>
- </emphasis> attributes could be used with three possible parameters. The <emphasis>
- <property>"mode"</property>
- </emphasis> attribute defines parameters for all included <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> elements.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Server</code> (default)</para>
- </listitem>
- </itemizedlist>
-
- <para>The common submission of the form is performed and a page is completely refreshed.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu mode="server">
- <rich:panelMenuGroup label="test Group" action="#{bean.action}">
- <rich:panelMenuItem label="test" action="#{capitalsBean.action}">
- <f:param value="test value" name="test"/>
- </rich:panelMenuItem>
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code></para>
- </listitem>
- </itemizedlist>
-
- <para>An Ajax form submission is performed, and additionally specified elements in the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute are reRendered.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu mode="ajax">
- <rich:panelMenuGroup label="test Group" action="#{bean.action}">
- <rich:panelMenuItem label="test" reRender="test" action="#{capitalsBean.action}">
- <f:param value="test value" name="test"/>
- </rich:panelMenuItem>
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- <itemizedlist>
- <listitem>
- <para><code>None</code></para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>
- <property>"Action"</property>
- </emphasis> and <emphasis>
- <property>"ActionListener"</property>
- </emphasis> item's attributes are ignored. Items don't fire any submits itself. Behavior is
- fully defined by the components nested into items.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu event="onclick" submitMode="none">
- <rich:panelMenuItem label="Link to external page">
- <h:outputLink ... >
- <rich:panelMenuItem>
-</rich:panelMenu>
-...]]></programlisting>
-
- <note><title>Note:</title><para> As the <emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> component doesn't provide its own form, use it between
- <emphasis role="bold"> <property><h:form></property></emphasis> and <emphasis role="bold"><property></h:form></property> </emphasis> tags.</para></note>
-
- <para>The <emphasis>
- <property>"expandSingle"</property>
- </emphasis> attribute is defined for expanding more than one submenu on the same level. The
- default value is <emphasis>
- <property>"false"</property>
- </emphasis>. If it's true the previously opened group on the top level closes before
- opening another one. See the picture below.</para>
-
- <figure>
- <title>Using the <emphasis><property>"expandSingle"</property></emphasis> attribute</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenu2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>The <emphasis>
- <property>"selectedChild"</property>
- </emphasis> attribute is used for defining the name of the selected group or item. An example
- for group is placed below:</para>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu selectedChild="thisChild">
- <rich:panelMenuGroup label="Group1" name="thisChild">
- <!--Nested panelMenu components-->
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- <para>
- The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute.
- The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and the message that the component (indirectly) produced.
- This attribute defines the parameters of localized error and informational messages that
- occur as a result of conversion, validation, or other application actions during the request
- processing lifecycle. With the help of this attribute you can replace the
- last parameter substitution token shown in the messages. For example, {1} for <code>"DoubleRangeValidator.MAXIMUM"</code>, {2}
- for <code>"ShortConverter.SHORT"</code>.
- </para>
- </section>
-
- <section>
- <title>JavaScript API</title>
- <para>In Java Script code for expanding/collapsing group element creation it's
- necessary to use <code>expand()</code>/<code>collapse()</code> function.</para>
-
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>expand()</entry>
-
- <entry>Expands group element</entry>
- </row>
-
- <row>
- <entry>collapse()</entry>
-
- <entry>Collapses group element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis></para>
-
- <para>There are no skin parameters. To redefine the appearance of all <emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> components at once, you should add to your style sheets the <emphasis>
- <property>style class</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> component.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <table id="tab_cn_pM">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-pmenu</entry>
- <entry>Defines styles for a wrapper <div> element of a component</entry>
- </row>
- <row>
- <entry>rich-pmenu-top-group</entry>
- <entry>Defines styles for a top group element of a component</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:panelMenu></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_cn_pM"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-pmenu{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenu_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:panelMenu></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:panelMenu></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #ecf4fe;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"hoveredItemClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:panelMenu></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panelMenu ... hoveredItemClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>"styleClass"</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenu_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,background color for hovered item was changed.</para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:panelMenu></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenuGroup</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:panelMenuGroup></property>
- </emphasis> component is used to define an expandable group of items inside the panel menu or other group.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:panelMenuGroup></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look-and-feel</para></listitem>
- <listitem><para>Different submission modes inside every group</para></listitem>
- <listitem><para>Optional submissions on expand collapse groups</para></listitem>
- <listitem><para>Custom and predefined icons supported</para></listitem>
- <listitem><para>Support for disabling</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,613 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenuGroup</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.PanelMenuGroup</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlPanelMenuGroup</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.PanelMenuGroup</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.PanelMenuGroupRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.PanelMenuGroupTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- <rich:panelMenuGroup label="Group1">
- <!--Nested panelMenu components-->
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanelMenuGroup;
-...
-HtmlPanelMenuGroup myPanelMenuGroup = new HtmlPanelMenuGroup();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>All attributes except <emphasis>
- <property>"label"</property>
- </emphasis> are optional. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute defines text to be represented.</para>
- <para>Switching mode could be chosen with the<emphasis>
- <property> "expandMode"</property>
- </emphasis> attribute for the concrete panelMenu group.</para>
- <para>The <emphasis>
- <property>"expandMode"</property>
- </emphasis> attribute could be used with three possible parameters:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>ServerM</code> (default)</para>
- </listitem>
- </itemizedlist>
-
- <para>Regular form submission request is used.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code></para>
- </listitem>
- </itemizedlist>
-
- <para>Ajax submission is used for switching.</para>
-
- <itemizedlist>
- <listitem>
- <para><code>None</code></para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>
- <property>"Action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> attributes are ignored. Items don't fire any submits itself. Behavior is
- fully defined by the components nested into items.</para>
-
- <para>There are three icon-related attributes. The <emphasis>
- <property>"iconExpanded"</property>
- </emphasis> attribute defines an icon for an expanded state. The <emphasis>
- <property>"iconCollapsed"</property>
- </emphasis> attribute defines an icon for a collapsed state. The <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attribute defines an icon for a disabled state.</para>
-
- <para>Default icons are shown on the picture below:</para>
-
- <figure>
- <title>Default icons</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- <rich:panelMenuGroup label="Group1" iconExpanded="disc" iconCollapsed="chevron">
- <!--Nested panelMenu components-->
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- <para> As the result the pictures are shown below. The first one represents the collapsed state,
- the second one - expanded state:</para>
-
- <figure>
- <title>Collapsed state</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <figure>
- <title>Expanded state</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>It's also possible to define a path to the icon. Simple code is placed below.</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- <rich:panelMenuGroup label="Group1" iconExpanded="\images\img1.png" iconCollapsed="\images\img2.png">
- <!--Nested menu components-->
- </rich:panelMenuGroup>
-</rich:panelMenu>
-...]]></programlisting>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
- </para>
- </section>
-
- <section>
- <title>JavaScript API</title>
- <para>In Java Script code for expanding/collapsing group element creation it's
- necessary to use <code>expand()</code>/<code>collapse()</code> function.</para>
-
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>expand()</entry>
-
- <entry>Expand group element</entry>
- </row>
-
- <row>
- <entry>collapse()</entry>
-
- <entry>Collapse group element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:panelMenuGroup></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panelMenuGroup></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title> Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a table element of the first level group</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerWeightFont</entry>
-
- <entry>font-weight</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>headerSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>headerBackgroundColor</entry>
-
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a table element of second and next level groups</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>headerWeightFont</entry>
-
- <entry>font-weight</entry>
- </row>
-
- <row>
- <entry>headerFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>headerSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>tableBorderColor</entry>
-
- <entry>border-top-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for wrapper div element of the first level group</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a hovered group element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
-
- <entry> background-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a disabled group element</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>tabDisabledTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup_cn2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <table id="panelMenuC">
- <title>Classes names that define an upper level groups</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>rich-pmenu-top-group-self-icon</entry>
-
- <entry>Defines styles for a top group icon</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-top-group-self-label</entry>
-
- <entry>Defines styles for a top group label</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a second and lower level groups</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>rich-pmenu-group</entry>
-
- <entry>Defines styles for a group</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-group-self-icon</entry>
-
- <entry>Defines styles for a group icon</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-group-self-label</entry>
-
- <entry>Defines styles for a group label</entry>
- </row>
- </tbody>
-
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define a group state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-pmenu-hovered-element</entry>
-
- <entry>Defines styles for a hovered group element</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-disabled-element</entry>
-
- <entry>Defines styles for a disabled group element</entry>
- </row>
- </tbody>
-
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:panelMenuGroup></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="panelMenuC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-pmenu-disabled-element{
- color: #87b9ff;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a disabled element font style and color were changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:panelMenuGroup></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:panelMenuGroup></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #ecf4fe;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"hoverClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:panelMenuGroup></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panelMenuGroup ... hoverClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuGroup_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the background color for hovered item was changed.</para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Some additional information about usage of component can be found
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel...">on the component Live Demo page</ulink>.
- </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenuItem</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> component is used to define a single item inside popup list.</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look-and-feel</para></listitem>
- <listitem><para>Different submission modes</para></listitem>
- <listitem><para>Optionally supports any content inside</para></listitem>
- <listitem><para>Custom and predefined icons supported</para></listitem>
- <listitem><para>Support for disabling</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/panelMenuItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,566 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:panelMenuItem</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>component-type</entry>
-
- <entry>org.richfaces.PanelMenuItem</entry>
- </row>
-
- <row>
- <entry>component-class</entry>
-
- <entry>org.richfaces.component.html.HtmlPanelMenuItem</entry>
- </row>
-
- <row>
- <entry>component-family</entry>
-
- <entry>org.richfaces.PanelMenuItem</entry>
- </row>
-
- <row>
- <entry>renderer-type</entry>
-
- <entry>org.richfaces.PanelMenuItemRenderer</entry>
- </row>
-
- <row>
- <entry>tag-class</entry>
-
- <entry>org.richfaces.taglib.PanelMenuItemTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
-
- <para>To create the simplest variant on a page use the following syntax:</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- ...
- <rich:panelMenuItem value="Item1"/>
- ...
-</rich:panelMenu>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPanelMenuItem;
-...
-HtmlPanelMenuItem myPanelMenuItem = new HtmlPanelMenuItem();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
-
- <para>All attributes except <emphasis>
- <property>"label"</property>
- </emphasis> are optional. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute defines text to be represented.</para>
- <para>The <emphasis>
- <property>"mode"</property>
- </emphasis> attribute could be used with three possible parameters:</para>
-
- <itemizedlist>
- <listitem>
- <para><code>Server</code> (default)</para>
- </listitem>
- </itemizedlist>
-
- <para>Regular form submission request is used.</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <code>Ajax</code>
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Ajax submission is used for switching.</para>
-
- <itemizedlist>
- <listitem>
- <para>
- <code>None</code>
- </para>
- </listitem>
- </itemizedlist>
-
- <para><emphasis>
- <property>"Action"</property>
- </emphasis> and <emphasis>
- <property>"actionListener"</property>
- </emphasis> attributes are ignored. Items don't fire any
- submits itself. Behavior is fully defined by the components nested
- into items.</para>
-
- <para>Here is an example for value "none":</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- ...
- <rich:panelMenuItem mode="none" onclick="document.location.href='http://labs.jboss.com/jbossrichfaces/">
- <h:outputLink value="http://labs.jboss.com/jbossrichfaces/">
- <h:outputText value="RichFaces Home Page"></h:outputText>
- </h:outputLink>
- </rich:panelMenuItem>
- ...
-</rich:panelMenu>
-...]]></programlisting>
-
- <para>There are two icon-related attributes. The <emphasis>
- <property>"icon"</property>
- </emphasis> attribute defines an icon. The <emphasis>
- <property>"iconDisabled"</property>
- </emphasis> attribute defines an icon for a disabled item.</para>
-
- <para>Default icons are shown on the picture below:</para>
-
- <figure>
- <title>Default icons</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
- <rich:panelMenu>
- ...
- <rich:panelMenuItem value="Item 1.1" icon="chevronUp" />
- ...
- </rich:panelMenu>
-...]]></programlisting>
- <para> As the result the picture is shown below:</para>
-
- <figure>
- <title>Using an <emphasis>
- <property>"icon"</property>
- </emphasis> attribute</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>It's also possible to define a path to the icon. Simple code is
- placed below.</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panelMenu>
- ...
- <rich:panelMenuItem value="Item 1.1" icon="\images\img1.png" />
- ...
-</rich:panelMenu>
-...]]></programlisting>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find in the
- <link linkend="process"> "Decide what to process" </link> guide section. </para>
- </section>
-
- <!--section>
- <title>JavaScript API</title>
- <para>In Java Script code for expanding/collapsing group element creation it's
- necessary to use doExpand()/doCollapse() function.</para>
-
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>doExpand()</entry>
-
- <entry>Expand group element</entry>
- </row>
-
- <row>
- <entry>doCollapse()</entry>
-
- <entry>Collapse group element</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section-->
-
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title> Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a table element of the first
- level item</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
-
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>generalWeightFont</entry>
-
- <entry>font-weight</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
-
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
-
- <entry>border-top-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameter redefinition for a disabled item </title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Parameter for disabled item</entry>
-
- <entry>CSS properties</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>tabDisabledTextColor</entry>
-
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem_cn2.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn_pMI">
- <title>Classes names that define the first level items</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-pmenu-top-item</entry>
-
- <entry>Defines styles for a top panel
- menu item</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-top-item-icon</entry>
-
- <entry>Defines styles for a top panel
- menu item icon</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-top-item-label</entry>
-
- <entry>Defines styles for a top panel
- menu item label</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define the second and lower level items</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-pmenu-item</entry>
-
- <entry>Defines styles for a panel menu
- item</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-item-icon</entry>
-
- <entry>Defines styles for a panel menu
- item icon</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-item-label</entry>
-
- <entry>Defines styles for a panel menu
- item label</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define items state</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-pmenu-item-selected</entry>
-
- <entry>Defines styles for a panel menu
- selected item</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-disabled-element</entry>
-
- <entry>Defines styles for a disabled
- panel menu item</entry>
- </row>
-
- <row>
- <entry>rich-pmenu-hovered-element</entry>
-
- <entry>Defines styles for a hovered
- panel menu item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="tab_cn_pMI"> above</link>) and define
- necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-pmenu-hovered-element {
- background-color: #ff7800;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a hovered element background color was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- color: #a0a0a0;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"disabledClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:panelMenuItem></property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panelMenuItem ... disabledClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelMenuItem_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the text color for disabled item
- was changed.</para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para> Some additional information about usage of component can be found on this <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel..."
- >LiveDemo page</ulink>. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:pickList</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> component is used for moving selected item(s) from one list into another.
- </para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/pickList_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
-<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>Multiple selection of list items</para>
- </listitem>
- <listitem>
- <para>Keyboard support</para>
- </listitem>
- <listitem>
- <para>Supports standard JSF internationalization</para>
- </listitem>
- <listitem>
- <para>Highly customizable look and feel</para>
- </listitem>
- <!--listitem>
- <para>Disablement support</para>
- </listitem-->
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/pickList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1063 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:pickList</keyword>
- <keyword>pickList</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
-
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.PickList</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPickList</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.PickList</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.PickListRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.PickListTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:pickList value="#{pickBean.targetValues}">
- <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
- <f:selectItems value="#{pickBean.sourceValues}"/>
-</rich:pickList>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPickList;
-...
-HtmlPickList myPickList = new HtmlPickList();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> component consists of <itemizedlist>
- <listitem><para>2 <property>item lists</property>. Every item has three different representations: common, selected, active.
- Combination of these states is possible.</para></listitem>
- <listitem><para>
- <property>Move controls set</property> is a set of controls, which performs moving items between lists.
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>
- The <emphasis><property>"value"</property></emphasis> attribute is the initial value of this component.
- </para>
- <para>
- The <emphasis role="bold"><property><f:selectItem /></property></emphasis> or <emphasis role="bold">
- <property><f:selectItems /></property></emphasis> facets are used to define the values of a source list.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:pickList value="#{pickBean.listValues}">
- <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
- <f:selectItem itemValue="Audi" itemLabel="Audi"/>
- <f:selectItems value="#{pickBean.sourceList}"/>
-</rich:pickList>
-...]]></programlisting>
-
- <para>
- The <emphasis> <property> "switchByClick"</property></emphasis> attribute provides an option to copy and remove items between lists by one click.
- Default value of this attribute is "false", so you need a double click to copy, remove items from one list to another.
- </para>
- <para>
- Lables of the <property>move controls</property> can be defined with
- <emphasis><property> "copyAllControlLabel"</property></emphasis>,
- <emphasis><property> "copyControlLabel"</property></emphasis>,
- <emphasis> <property> "removeControlLabel"</property></emphasis>,
- <emphasis> <property> "removeAllControlLabel"</property></emphasis> attributes.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:pickList copyAllControlLabel = "#{pickBean.copyAllLabel}" copyControlLabel = "#{pickBean.copyLabel}"
- removeControlLabel = "#{pickBean.removeLabel}" removeAllControlLabel ="#{pickBean.removeAllLabel}" value="#{pickBean.listValues}">
- <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
- <f:selectItem itemValue="Audi" itemLabel="Audi"/>
- <f:selectItems value="#{pickBean.sourceList}"/>
-</rich:pickList>
-...]]></programlisting>
- <para>
- If you don't want to display labels on the buttons you need to set
- <emphasis><property> "showButtonsLabel"</property></emphasis> to "false".
- </para>
- <figure>
- <title>Move control buttons without labels</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/pickList2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- Alternative to the given attributes are the following facets: <emphasis><property>"copyAllControl"</property></emphasis>,
- <emphasis><property>"removeAllControl"</property></emphasis>,
- <emphasis><property>"copyControl"</property></emphasis>,
- <emphasis><property>"removeControl"</property></emphasis>,
- <emphasis><property>"copyAllControlDisabled"</property></emphasis>,
- <emphasis><property>"removeAllControlDisabled"</property></emphasis>,
- <emphasis><property>"copyControlDisabled"</property></emphasis>,
- <emphasis><property>"removeControlDisabled"</property></emphasis>,
- <emphasis><property>"caption"</property></emphasis>.
- </para>
- <para>
- It is an example of usage of the facets and it is identical to the previous example.
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:pickList value="#{pickBean.listValues}">
- <f:facet name="copyAllControl">
- <h:commandButton value="#{pickBean.copyAllLabel}" />
- </f:facet>
- <f:facet name="copyControl">
- <h:commandButton value="#{pickBean.copyLabel}" />
- </f:facet>
- <f:facet name="removeControl">
- <h:commandButton value="#{pickBean.removeLabel}" />
- </f:facet>
- <f:facet name="removeAllControl">
- <h:commandButton value="#{pickBean.removeAllLabel}" />
- </f:facet>
- <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
- <f:selectItem itemValue="Audi" itemLabel="Audi"/>
- <f:selectItems value="#{pickBean.sourceList}"/>
-</rich:pickList>
-...]]></programlisting>
- <para>
- With the help of <emphasis><property>"moveControlsVerticalAlign"</property></emphasis> attribute
- you can align <property>move controls</property> vertically.
- </para>
- <para>The possible value for <emphasis><property>"moveControlsVerticalAlign"</property></emphasis> are "top", "bottom" and "center" (default value).</para>
-
- <para>
- The <emphasis role="bold">
- <property><rich:pickList></property></emphasis>
- component provides resizing of lists by using such attributes as:
- <itemizedlist>
- <listitem><para>
- <emphasis>
- <property> "listsHeight"</property></emphasis> defines height of the lists.
-
- </para></listitem>
- <listitem><para>
- <emphasis>
- <property> "sourceListWidth"</property></emphasis> defines width of a source list.
-
- </para></listitem>
- <listitem><para>
- <emphasis>
- <property> "targetListWidth"</property></emphasis> defines width of a target list.
-
- </para></listitem>
- </itemizedlist>
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:pickList listsHeight="#{pickBean.listsHeight}" sourceListWidth="#{pickBean.sourceListWidth}" targetListWidth="#{pickBean.targetListWidth}" value="#{pickBean.listValues}">
- <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
- <f:selectItem itemValue="Audi" itemLabel="Audi"/>
- <f:selectItems value="#{pickBean.sourceList}"/>
-</rich:pickList>
-...]]></programlisting>
-
- <para>The <emphasis role="bold"><property><rich:pickList></property></emphasis> component allows to use internationalization method
- to redefine and localize the labels. You could use application resource bundle and define
- <code>RICH_PICK_LIST_COPY_ALL_LABEL</code>,
- <code>RICH_PICK_LIST_COPY_LABEL</code>,
- <code>RICH_PICK_LIST_REMOVE_ALL_LABEL</code>,
- <code>RICH_PICK_LIST_REMOVE_LABEL</code> there.
- </para>
-
- <table>
- <title>Keyboard usage for elements selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Keys and combinations </entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>CTRL+click</entry>
- <entry>Inverts selection for an item</entry>
- </row>
- <row>
- <entry>SHIFT+click</entry>
- <entry>Selects all rows from active one to a clicked row if they differ,
- else select the active row. All other selections are cleared</entry>
- </row>
- <row>
- <entry>CTRL+A</entry>
- <entry>Selects all elements inside the list if some active element is
- already present in a list</entry>
- </row>
- <row>
- <entry>Up, Down arrows</entry>
- <entry>Changes the active and selected elements to the next or previous in a list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <!-- section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody-->
- <!--Sorting API-->
- <!--
- <row>
- <entry>SortAscending()</entry>
- <entry>Sorts items in the list ascending</entry>
- </row>
- <row>
- <entry>SortDescending()</entry>
- <entry>Sorts items in the list descending</entry>
- </row>
- <row>
- <entry>Sort()</entry>
- <entry>Inverts current sorting</entry>
- </row>
- -->
-
- <!--Controls common API -->
- <!--row>
- <entry>hide()</entry>
- <entry>Hides ordering control</entry>
- </row>
- <row>
- <entry>show()</entry>
- <entry>Shows ordering control</entry>
- </row>
- <row>
- <entry>isShown()</entry>
- <entry>Checks if current control is shown</entry>
- </row>
- <row>
- <entry>enable()</entry>
- <entry>Enables ordering control</entry>
- </row>
- <row>
- <entry>disable()</entry>
- <entry>Disables ordering control</entry>
- </row>
- <row>
- <entry>isEnabled()</entry>
- <entry>Checksif current control is enabled</entry>
- </row-->
- <!--List managing API -->
- <!--row>
- <entry>copy()</entry>
- <entry>Copies selected item from the source list to the target list</entry>
- </row>
- <row>
- <entry>remove()</entry>
- <entry>Removes selected item from the target list to the source list</entry>
- </row>
- <row>
- <entry>copyAll()</entry>
- <entry>Copies all items from the source list to the target list</entry>
- </row>
- <row>
- <entry>removeAll()</entry>
- <entry>Removes all items from the target list to the source list</entry>
- </row>
- <row>
- <entry>getSelection()</entry>
- <entry>Returns currently selected item</entry>
- </row>
- <row>
- <entry>getItems()</entry>
- <entry>Returns the collection of all items</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>copyAllControl</entry>
- <entry>Redefines the "copyAll" label with the control set. Related attribute is "copyAllControlLabel"</entry>
- </row>
- <row>
- <entry>removeAllControl</entry>
- <entry>Redefines the "removeAll" label with the control set. Related attribute is "removeAllControlLabel"</entry>
- </row>
- <row>
- <entry>copyControl</entry>
- <entry>Redefines the "copy" label with the control set. Related attribute is "copyControlLabel"</entry>
- </row>
- <row>
- <entry>removeControl</entry>
- <entry>Redefines the "remove" label with the control set. Related attribute is "removeControlLabel"</entry>
- </row>
- <row>
- <entry>copyAllControlDisabled</entry>
- <entry>Redefines the disabled "copyAll" label with the control set.</entry>
- </row>
- <row>
- <entry>removeAllControlDisabled</entry>
- <entry>Redefines the disabled "removeAll" label with the control set.</entry>
- </row>
- <row>
- <entry>copyControlDisabled</entry>
- <entry>Redefines the disabled "copy" label with the control set.</entry>
- </row>
- <row>
- <entry>removeControlDisabled</entry>
- <entry>Redefines the disabled "remove" label with the control set.</entry>
- </row>
- <row>
- <entry>caption</entry>
- <entry>Defines the "caption" label with the control set.</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for a list</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColorr</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a disabled button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a pressed button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a highlighted button</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFon</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>selectControlColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button selection</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a button content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a source and target items</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a source and target cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a selected source and target cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an active source and target cell</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>border-top-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>border-bottom-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for a selected source and target row</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a controls</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>The following pictures illustrate how CSS classes define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/pickList_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="pickListC">
- <title>Classes names that define a list representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-list-picklist</entry>
- <entry>Defines styles for a wrapper <table> element of a pickList</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define a source and target items representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-picklist-source-items</entry>
- <entry>Defines styles for a wrapper <div> element of a source list</entry>
- </row>
- <row>
- <entry>rich-picklist-target-items</entry>
- <entry>Defines styles for a wrapper <div> element of a target list</entry>
- </row>
-
- <row>
- <entry>rich-picklist-body</entry>
- <entry>Defines styles for a wrapper <table> element of a list body (source and target)</entry>
- </row>
-
- <row>
- <entry>rich-picklist-list</entry>
- <entry>Defines styles for a (source and target) list</entry>
- </row>
-
- <row>
- <entry>rich-picklist-list-content</entry>
- <entry>Defines styles for a (source and target) list content</entry>
- </row>
-
- <row>
- <entry>rich-picklist-internal-tab</entry>
- <entry>Defines styles for a wrapper <table> element of list items (source and target)</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define rows representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-picklist-source-row</entry>
- <entry>Defines styles for a source list row</entry>
- </row>
- <row>
- <entry>rich-picklist-source-row-selected</entry>
- <entry>Defines styles for a selected row in a source list</entry>
- </row>
- <row>
- <entry>rich-picklist-target-row-selected</entry>
- <entry>Defines styles for a selected row in a target list</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define a source cell representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-picklist-source-cell</entry>
- <entry>Defines styles for a cell in a source list</entry>
- </row>
- <row>
- <entry>rich-picklist-source-cell-selected</entry>
- <entry>Defines styles for a selected cell in a source list</entry>
- </row>
- <row>
- <entry>rich-picklist-source-cell-active</entry>
- <entry>Defines styles for an active cell in a source list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define a target cell representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-picklist-target-cell</entry>
- <entry>Defines styles for a target list cell</entry>
- </row>
- <row>
- <entry>rich-picklist-target-cell-selected</entry>
- <entry>Defines styles for a selected cell in a target list</entry>
- </row>
- <row>
- <entry>rich-picklist-target-cell-active</entry>
- <entry>Defines styles for an active cell in a target list</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define a control representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-picklist-controls</entry>
- <entry>Defines styles for wrapper <div> element of a pickList controls</entry>
- </row>
- <row>
- <entry>rich-picklist-control-disabled</entry>
- <entry>Defines styles for a control in a disabled state</entry>
- </row>
- <row>
- <entry>rich-picklist-control-copyall</entry>
- <entry>Defines styles for a "copyAll" control</entry>
- </row>
- <row>
- <entry>rich-picklist-control-copy</entry>
- <entry>Defines styles for a "Copy" control</entry>
- </row>
- <row>
- <entry>rich-picklist-control-remove</entry>
- <entry>Defines styles for a "Remove" control</entry>
- </row>
- <row>
- <entry>rich-picklist-control-removeall</entry>
- <entry>Defines styles for a "removeAll" control</entry>
- </row>
- <row>
- <entry>rich-picklist-control-img</entry>
- <entry>Defines styles for a control image</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table >
- <title>Classes names that define a button representation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-list-picklist-button</entry>
- <entry>Defines styles for a button</entry>
- </row>
- <row>
- <entry>rich-list-picklist-button-disabled</entry>
- <entry>Defines styles for a disabled button</entry>
- </row>
- <row>
- <entry>rich-list-picklist-button-press</entry>
- <entry>Defines styles for a pressed button</entry>
- </row>
- <row>
- <entry>rich-list-picklist-button-light</entry>
- <entry>Defines styles for a button highlight</entry>
- </row>
- <row>
- <entry>rich-list-picklist-button-selection</entry>
- <entry>Defines styles for a button selection</entry>
- </row>
- <row>
- <entry>rich-list-picklist-button-content</entry>
- <entry>Defines styles for a button content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="pickListC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-picklist-list{
- background-color:#ecf4fe;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/pickList_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the background color for lists is changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:pickList></property></emphasis> component. In this case you should create own style classes and use them in the corresponding <emphasis role="bold"
- ><property><rich:pickList></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:pickList></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:pickList ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/pickList_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style for buttons is changed.</para>
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf?c=pickList"
- >On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
- <property><rich:pickList></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,17 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
- <section id="poll_d">
- <sectioninfo>
- <keywordset>
- <keyword>a4j:poll</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> component allows periodical sending of Ajax requests to a server and is
- used for a page updating according to a specified time interval.</para>
- </section>
-</root>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/poll.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,196 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:poll</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Poll</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.components.AjaxPoll</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.AjaxPoll</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxPollRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the component with a Page Tag</title>
- <para id="creating">To create the simplest variant on a page use the following syntax:</para>
- <programlisting role="XML"><![CDATA[<a4j:poll interval="500" reRender="grid"/>
-]]></programlisting>
- <!--para>The <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> component defined this way every second submits Ajax form onto the server,
- performs the corresponding action and renders a components with the <emphasis>
- <property>"someDataTable"</property>
- </emphasis> id after a response comes back.</para-->
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.AjaxPoll;
-...
-AjaxPoll myPoll = new AjaxPoll();
-...]]></programlisting>
-
- </section>
-
- <section>
- <title>Details of usage</title>
- <para id="attributes">
- The <emphasis role="bold"><property><a4j:poll></property></emphasis> componet is used for periodical polling of server data.
- In order to use the component it's necessary to set an update interval.
- The <emphasis><property>"interval"</property></emphasis> attribute defines an interval in milliseconds between the previous response and the next request.
- The total period beetween two requests generated by the <emphasis role="bold"><property><a4j:poll></property></emphasis> component is a sum of an<emphasis><property>"interval"</property></emphasis> attribute value and server response time.
- Default value for <emphasis><property>"interval"</property></emphasis> attribute is set to "1000" milliseconds (1 second).
- See an example of definition in the "<link linkend="creating">Creating the component with a Page Tag</link>" section.
- </para>
- <para>
- The <emphasis><property>"timeout"</property></emphasis> attribute defines response waiting time in milliseconds.
- If a response isn't received during this period a connection is aborted and the next request is sent.
- Default value for <emphasis><property>"timeout"</property></emphasis> attribute isn't set.
- </para>
-
- <para>
- The <emphasis><property>"enabled"</property></emphasis> attribute defines should the <emphasis role="bold"><property><a4j:poll></property></emphasis> send request or not.
- It's necessary to render the <emphasis role="bold"><property><a4j:poll></property></emphasis> to apply the current value of <emphasis><property>"enabled"</property></emphasis> attribute.
- You can use an EL-expression for <emphasis><property>"enabled"</property></emphasis> attribute to point to a bean property.
- An example of usage of mentioned above attributes is placed below:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<a4j:region>
- <h:form>
- <a4j:poll id="poll" interval="1000" enabled="#{userBean.pollEnabled}" reRender="poll,grid"/>
- </h:form>
-</a4j:region>
-<h:form>
- <h:panelGrid columns="2" width="80%" id="grid">
- <h:panelGrid columns="1">
- <h:outputText value="Polling Inactive" rendered="#{not userBean.pollEnabled}" />
- <h:outputText value="Polling Active" rendered="#{userBean.pollEnabled}" />
- <a4j:commandButton style="width:120px" id="control" value="#{userBean.pollEnabled?'Stop':'Start'} Polling" reRender="poll, grid">
- <a4j:actionparam name="polling" value="#{!userBean.pollEnabled}" assignTo="#{userBean.pollEnabled}"/>
- </a4j:commandButton>
- </h:panelGrid>
- <h:outputText id="serverDate" style="font-size:16px" value="Server Date: #{userBean.date}"/>
- </h:panelGrid>
-</h:form>
-...]]></programlisting>
-
- <para>
- The example shows how date and time are updated on a page in compliance with data taken from a server.
- The <emphasis role="bold"><property><a4j:poll></property></emphasis> componet sends requests to the server every second.
- <emphasis><property>"reRender"</property></emphasis> attribute of the <emphasis role="bold"><property><a4j:poll></property></emphasis> contains poll's own <code>Id</code>.
- Hence, it is self rendered for applying the current value of <emphasis><property>"enabled"</property></emphasis> attribute.
- </para>
-
-
- <note>
- <title>Notes:</title>
- <itemizedlist>
- <listitem>
- <para>
- The form around the <emphasis role="bold"><property><a4j:poll></property></emphasis> component is required.
- </para>
- </listitem>
-
- <listitem>
- <para>
- To make the <emphasis role="bold"><property><a4j:poll></property></emphasis> component send requests periodically when it <code>limitToList</code> is set to "true",
- pass the <emphasis role="bold"><property><a4j:poll></property></emphasis> ID to it <code>reRender</code> attribute.
- </para>
- </listitem>
-
- </itemizedlist>
- </note>
-
- <!--para>The component decodes all necessary JavaScript for time count and on the expiry of some
- interval for calling of a RichFaces utility method for Ajax request sending (A4J.AJAX.Submit
- (Some request parameters)). </para>
- <para> The timer could be stopped or started in any time. The current state is controlled on the
- component with the <emphasis>
- <property>"enabled"</property>
- </emphasis> attribute: </para>
- <programlisting role="XML"><![CDATA[<a4j:poll interval="1000" enabled="#{bean.boolProperty}"/>
-]]></programlisting>
- <para>As any RichFaces Action component, <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> has all described in the <emphasis role="bold">
- <property>
- <ulink url="index.html#support"><a4j:support></ulink>
- </property>
- </emphasis> chapter attributes to provide the necessary behavior of request sending (delay,
- limitation of a submit and render area, requests frequency, and etc.). For detailed
- information on these attributes see again the <emphasis role="bold">
- <property>
- <ulink url="index.html#support"><a4j:support></ulink>
- </property>
- </emphasis> component description. </para-->
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find "<link linkend="process">Decide what to process</link>" guide section.
- </para>
- </section>
-
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/poll.jsf?c=poll">Poll page</ulink> at RichFaces LiveDemo for examples of the component usage and their sources.
- </para>
-
- <para>
- Useful examples and articles:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- "<ulink url="http://www.jboss.org/community/wiki/CreateABannerUsingEffectsAndPoll">Create a Banner Using Effects and Poll</ulink>" article at RichFaces Wiki
- gives an example of how to create an image banner using <emphasis role="bold"><property><rich:effect></property></emphasis> and <emphasis role="bold"><property><a4j:poll></property></emphasis>components;
- </para>
- </listitem>
- <listitem>
- <para>
- "<ulink url="http://www.jboss.org/community/wiki/CreateAHTMLBannerUsingEffectsAndPoll">Create an HTML Banner Using Effects and Poll</ulink>" article at RichFaces Wiki
- brings the code of the way of creating an HTML banner banner using <emphasis role="bold"><property><rich:effect></property></emphasis> and <emphasis role="bold"><property><a4j:poll></property></emphasis>components;
- </para>
- </listitem>
- <listitem>
- <para>
- "<ulink url="http://www.jboss.org/index.html?module=bb&op=viewtopic&t=125621">RichFaces and Slideshow</ulink>" thread in the RichFaces users forum contains an information and code on making a Slide Show with the help of the <emphasis role="bold"><property><a4j:poll></property></emphasis> component;
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Manage the <ulink url="http://jboss.com/index.html?module=bb&op=viewtopic&t=103909">RichFaces Users Forum</ulink> for fresh issues about the component usage.
- </para>
- </section>
-
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,18 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:portlet</keyword>
- </keywordset>
- </sectioninfo>
-
-<title>Description</title>
- <para>The <emphasis role="bold">
- <property><a4j:portlet></property>
- </emphasis> component is DEPRECATED as far as JSR-301 was defined a same functionality for a UIViewRoot component. Thus, it is implicitly defined by mandatory
- <emphasis role="bold">
- <property><f:view></property></emphasis> component.
- </para>
-</section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/portlet.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,93 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:portlet</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Portlet</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.component.Portlet</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlPortlet</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
- <programlisting role="XML"><![CDATA[<f:view>
- <a4j:portlet>
- ...
- </a4j:portlet>
-</f:view>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[
-import org.ajax4jsf.component.html.HtmlPortlet;
-...
-HtmlPortlet myPortlet = new HtmlPortlet();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
- <para>
- The main component purpose is realization of possibility to create several instances the same portlet on one page.
- But clientId of elements should be different for each window. In that case namespace is used for each portlet.
- The <emphasis role="bold"><property><a4j:portlet></property></emphasis> <code>implemets NaimingContainer</code> interface and adds namespace to all componets on a page.
- All portlet content should be wrapped by <emphasis role="bold"><property><a4j:portlet></property></emphasis> for resolving problems mentioned before.
- </para>
-
- </section>
-
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/portlet.jsf?c=portlet">Portlet page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
-
- <para>
- Useful publications:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107325">Ajax4Jsf Users Forum</ulink> — check the forum for additional information about component usage;
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://anonsvn.jboss.org/repos/ajax4jsf/trunk/samples/portal-echo/">portal-echo application</ulink> — Portlet Sample, could be checked out from JBoss SVN;
- </para>
- </listitem>
- <listitem>
- <para>
- <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=107325">First snapshot with Portal environment support</ulink> contains usage instructions for the Portlet Sample demo.
- </para>
- </listitem>
- </itemizedlist>
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:progressBar</keyword>
- </keywordset>
- <releaseinfo>3.2.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:progressBar></property>
- </emphasis> component is designed for displaying a progress bar which shows the current status of the process. </para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:progressBar></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
-
-
- <listitem><para>Ajax or Client modes</para></listitem>
- <listitem><para>Option to control rerendering frequency</para></listitem>
- <listitem><para>Customizable status information label </para></listitem>
- <listitem><para>Highly customizable look and feel</para></listitem>
-
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/progressBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,749 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:progressBar</keyword>
- <keyword>progressBar</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ProgressBar</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlProgressBar</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ProgressBar</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.ProgressBarRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ProgressBarTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example of how the component can be used on a page: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}"/>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.progressBar;
-...
-HtmlProgressBar myProgressBar = new progressBar();
-...]]></programlisting>
- </section>
- <!-- Start Details of Usage-->
- <section>
- <title>Details of Usage</title>
- <para>
- As it was mentioned above, the <emphasis role="bold"><property><rich:progressBar></property></emphasis>
- component displays the status of the ongoing process.
- </para>
-
- <para>The <emphasis role="bold"><property><rich:progressBar></property> </emphasis> component can run in two modes: <code>Ajax</code> (default) and <code>Client</code>.
- </para>
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code> - In this mode the component works the same way as <emphasis role="bold"><property><a4j:poll/></property></emphasis> which gets the current progress value from the sever, repeating after a set time interval. </para>
-
- </listitem>
- <listitem>
- <para><code>Client</code> - The current progress value in <property>Client</property> mode is set using JavaScript API </para>
- </listitem>
- </itemizedlist>
- <para>
- In order to define the mode you need to use <emphasis><property>"mode"</property></emphasis> attribute.
- </para>
-
- <para>
- One of the key attributes of the component is <emphasis><property>"interval"</property></emphasis> which defines the frequency of status polling and rerenders the component when the value is updated.
- </para>
- <para>
- Polling is active while the <emphasis><property>"enabled"</property></emphasis> attribute is "true".</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}" id="progrs" interval="900" enabled="true"/>
-...]]> </programlisting>
-
- <para>
- With the help of <emphasis><property>"timeout"</property></emphasis> attribute you can define the waiting time on a particular request.
- If a response is not received during this time the request is aborted.
- </para>
-
-
- <para>
- Status of the process is calculated basing on values of the following attributes:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>"value"</property></emphasis> is a value binding to the current progress value
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"minValue"</property></emphasis> (default value is "0") sets minimal progress value
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"maxValue"</property></emphasis> (default value is "100") sets maximum progress value
- </para>
- </listitem>
- </itemizedlist>
- </para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}" minValue="50" maxValue="400"/>
-...]]> </programlisting>
-<para>This is the result</para>
- <figure>
- <title>Progress bar</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <!--para>
- The <emphasis><property> "label"</property></emphasis> attribute is responsible for displaying informational
- data, information on the progress bar, if it's not displayed using children components.
- If this attribute is not set and the children components are not used either, no textual information
- regarding ongoing process will be indicated.
- In order to indicate the current status you need to pass the value to this attribute. Please see an example.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}" id="progrs" label="{value}%"/>
-...]]></programlisting>
-
- <para>
- Displaying information on a progress bar can be also performed using
-
- <emphasis role="bold"><property><h:outputText></property></emphasis> within
- <emphasis role="bold"><property><rich:progressBar></property> </emphasis> tags passing the progress value to the value of the JSF tag.
-</para>
-<para>
-<emphasis role="bold">Example:</emphasis>
-</para>
-
-<programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}">
-<h:outputText value="#{bean.incValue1}"/>
-</rich:progressBar>
-...]]> </programlisting-->
-
- <para>
- There are two ways to display information on a progress bar:
- </para>
- <itemizedlist>
- <listitem>
- <para>Using <emphasis><property> "label"</property></emphasis> attribute</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}" id="progrs" label="#{bean.incValue}"/>
-...]]></programlisting>
- </listitem>
-
- <listitem>
- <para>Using any child(nested) components. One of the components that can be used is <emphasis role="bold"><property><h:outputText /></property></emphasis></para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}">
- <h:outputText value="#{bean.incValue} %"/>
-</rich:progressBar>
-...]]> </programlisting>
- </listitem>
-
- </itemizedlist>
-
- <!--Macrosubs-->
-
- <para>
- The <emphasis role="bold"><property><rich:progressBar></property> </emphasis>
- component provides 3 predefined macrosubstitution parameters:
-
- <itemizedlist>
- <listitem>
- <para><code>{value}</code> contains the current value</para>
- </listitem>
- <listitem>
- <para><code>{minValue}</code> contains min value</para>
- </listitem>
- <listitem>
- <para><code>{maxValue}</code> contains max value</para>
- </listitem>
- </itemizedlist>
-
- You can use them as follows:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}" minValue="400" maxValue="900">
- <h:outputText value="Min value is {minValue}, current value is {value}, max value is {maxValue}"/>
-</rich:progressBar>
-...]]> </programlisting>
- <para>This is the result:</para>
- <figure>
- <title>Macrosubstitution</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <!--END of Macrosubs-->
-
- <!-- Parameters-->
- <!--para>
- The <emphasis><property>"parameters"</property></emphasis>
- is also a special attribute that can be used for substitutional purposes.
- All you need is to define a value of your own parameter
- (e.g parameters="param:'#{bean.incValue1}'")
- and you can use it to pass the data.
- </para-->
-
- <para>
- The <emphasis><property>"parameters"</property></emphasis>
- is also a special attribute which defines parameters that can be to get additional data from server (e.g. additional info about process status).
- All you need is to define the value of your own parameter
- (e.g <code>parameters="param:'#{bean.incValue1}'"</code>)
- and you can use it to pass the data.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue}" parameters="param:'#{bean.dwnlSpeed}'">
- <h:outputText value="download speed {param} KB/s"/>
-</rich:progressBar>
-...]]> </programlisting>
- <para>This is the result:</para>
- <figure>
- <title>Usage of parameters</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
-
- <!-- END Parameters-->
-
- <para>
- The <emphasis><property>"progressVar"</property></emphasis> attribute (deprecated) defines request scoped variable that could be used
- for substitution purpose. This variable contains the data taken from <emphasis><property>"value"</property></emphasis> attribute.
- Please, study carefully the following example.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}" enabled="#{bean.enabled1}" id="progrs1" progressVar="progress">
- <h:outputText value="{progress}%"/>
-</rich:progressBar>
-...]]> </programlisting>
-
-
- <para>In the shown example <emphasis><property> "progressVar"</property></emphasis> attribute
- defines a variable "progress" with the value taken from <emphasis><property>"value"</property></emphasis>
- attribute of the <emphasis role="bold"><property><rich:progressBar></property></emphasis> component.
- The "progress" variable performs substitution passing the current progress value to the
- <emphasis><property>"value"</property></emphasis> attribute of the
- <emphasis role="bold"><property><h:outputText></property></emphasis>.
- This is how the current value of a progress appears on
- the label of <emphasis role="bold"><property><rich:progressBar></property></emphasis>.</para>
-
- <para>As the
- <emphasis><property> "progressVar"</property></emphasis> attribute is deprecated, it's better to use
- the predefined macrosubstitution parameter <code>{value}</code> instead. See how you can rewrite the above example with the help of <code>{value}</code>.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}" enabled="#{bean.enabled1}" id="progrs1">
- <h:outputText value="{value}%"/>
-</rich:progressBar>
-...]]> </programlisting>
-
- <para>
- The component can also employ <emphasis><property> "initial"</property></emphasis> and <emphasis><property> "complete"</property></emphasis> facets to display the states of the process:
- <emphasis><property>"initial"</property></emphasis> facet is displayed when the progress value is less or equal to <emphasis><property> "minValue"</property></emphasis>, and the <emphasis><property>"complete"</property></emphasis> facet is shown when the value is greater or equal to <emphasis><property> "maxValue"</property></emphasis>. Please see an example below.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:progressBar value="#{bean.incValue1}">
- <f:facet name="initial">
- <h:outputText value="Process not started"/>
- </f:facet>
- <f:facet name="complete">
- <h:outputText value="Process completed"/>
- </f:facet>
-</rich:progressBar>
- ...]]> </programlisting>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
- </para>
-
- </section>
- <!-- End. Details of Usage-->
-
- <!-- JavaScript API-->
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
-
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>enable()</entry>
- <entry>Begins polling for Ajax mode </entry>
-
- </row>
- <row>
- <entry>disable()</entry>
- <entry>Stops polling for Ajax mode</entry>
-
- </row>
-
- <row>
- <entry>setValue(value)</entry>
- <entry>Updates the progress of the process</entry>
-
- </row>
- <row>
- <entry>setLabel(label)</entry>
- <entry>Update the label for the process</entry>
-
- </row>
-
-
-
-
- </tbody>
- </tgroup>
- </table>
- </section>
- <!-- End of JavaScript API-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>initial</entry>
- <entry>Defines the information content about the state of the process if the progress value is less or equal to "minValue"</entry>
- </row>
- <row>
- <entry>complete</entry>
- <entry>Defines the information content about the state of the process if the value is greater or equal to "maxValue"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <!-- Look-and-Feel Customization-->
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:progressBar></property>
- </emphasis> components at once: <itemizedlist>
- <listitem><para>Redefine the corresponding skin parameters</para></listitem>
- <listitem><para> Add to your style sheets style classes used by a <emphasis role="bold">
- <property><rich:progressBar></property>
- </emphasis> component</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <!-- Skin Parameters Redefinition-->
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <table>
- <title>Skin parameters redefinition for the progressBar without a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for the completed progress area of the progressBar without a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>selectControlColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for the progressBar with a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>controlTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for the label of the progressBar</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for the completed progress area of the progressBar with a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>selectControlColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for the remained progress area of the progressBar with a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>controlBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>controlTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
- <!-- END Skin Parameters Redefinition-->
-
- <!-- Definition of Custom Style Classes-->
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="pBclasses">
- <title>Classes names for the progressBar without a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-progress-bar-shell</entry>
- <entry>Defines styles for a wrapper <div> element of a progressBar</entry>
- </row>
- <row>
- <entry>rich-progress-bar-uploaded</entry>
- <entry>Defines styles for the completed progress area</entry>
- </row>
- <row>
- <entry>rich-progress-bar-height</entry>
- <entry>Defines height for a progressBar</entry>
- </row>
- <row>
- <entry>rich-progress-bar-width</entry>
- <entry>Defines width for a progressBar</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names for the progressBar with a label</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-progress-bar-shell-dig</entry>
- <entry>Defines styles for a wrapper <div> element of a progressBar</entry>
- </row>
- <row>
- <entry>rich-progress-bar-uploaded-dig</entry>
- <entry>Defines styles for the label</entry>
- </row>
- <row>
- <entry>rich-progress-bar-remained</entry>
- <entry>Defines styles for the remained progress area</entry>
- </row>
- <row>
- <entry>rich-progress-bar-completed</entry>
- <entry>Defines styles for the completed progress area</entry>
- </row>
- <row>
- <entry>rich-progress-bar-height-dig</entry>
- <entry>Defines height for a progressBar</entry>
- </row>
- <row>
- <entry>rich-progress-bar-width</entry>
- <entry>Defines width for a progressBar</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <note>
- <title>Note:</title>
- <para>It's necessary to define width of the component in pixels only.</para>
- </note>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:progressBar></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="pBclasses">above</link>) and define necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.richfacesSkin .mceButton {
- border: 1px #FF0000 solid;
-}
-...]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the example above background color of the remained part of progress area was changed.</para>
-
- <para>It's also possible to change styles of a particular
- <emphasis role="bold"> <property><rich:progressBar></property></emphasis> component. In this case you should create own style classes and use them in corresponding
- <emphasis role="bold"><property><rich:progressBar></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #ebf3fd;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:progressBar> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:progressBar value="#{bean.incValue1}" styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is the result:</para>
-
- <figure>
- <title>Modificaton of a look and feel with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color of the remained part of progress area was changed.</para>
-
- <para>
- In order to change background image for the <emphasis role="bold"> <property><rich:progressBar></property></emphasis> it is necessary to create a CSS class with the same name as predefined one
- (see the tables <link linkend="pBclasses">above</link>) and change <code>background-image</code> CSS property for it:
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-progress-bar-uploaded {
- background-image : url(images/accept.gif);
-}
-...]]></programlisting>
- <para>This is the result:</para>
- <figure>
- <title>Redefining background image for the <rich:progressBar> </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/progressBar_pc2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/progressBar.jsf?c=pro...">On the component Live Demo page</ulink>
- you can see the example of <emphasis role="bold">
- <property><rich:progressBar></property>
- </emphasis> usage and sources for the given example. </para>
-
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,24 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:push</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para>The <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis>periodically perform Ajax request to server, to simulate 'push' data.</para>
- <para>The main difference between <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> and <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis> components is that <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis>
- makes request to minimal code only (not to JSF tree) in order to check the presence of messages in the queue.
- If the message exists the complete request is performed. The component doesn't poll registered beans
- but registers <code>EventListener</code> which receives messages about events.</para>
-</section>
- </root>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/push.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,203 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:push</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Push</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.components.AjaxPush</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.AjaxPush</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxPushRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating on a page</title>
- <programlisting role="XML"><![CDATA[<a4j:push reRender="msg" eventProducer="#{messageBean.addListener}" interval="3000"/>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.AjaxPush;
-...
-AjaxPush myPush = new AjaxPush();
-...]]></programlisting>
- </section>
-
-
- <section>
- <title>Key attributes and ways of usage</title>
- <para>The <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> implements reverse Ajax technique. </para>
-
- <para>The bean, for example, could be subscribed to Java Messaging Service
- (<ulink url="http://java.sun.com/products/jms/">JMS</ulink>)
- topic or it could be implemented as Message Driven Bean (MDB) in order
- to send a message to the <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> component about an event presence. In the presence of the
- event some action occurs.</para>
-
- <para>Thus, a work paradigm with the <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> component corresponds to an anisochronous model, but not
- to pools as for <emphasis role="bold">
- <property><a4j:poll></property>
- </emphasis>
- <link linkend="poll">component</link>. See the simplest example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[...
-class MyPushEventListener implements PushEventListener {
- public void onEvent(EventObject evt) {
- System.out.println(evt.getSource());
- //Some action
- }
-}
-...]]></programlisting>
-
- <para>Code for <code>EventListener</code> registration in the bean is placed
- below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[...
-public void addListener(EventListener listener) {
- synchronized (listener) {
- if (this.listener != listener) {
- this.listener = (PushEventListener) listener;
- }
- }
-}
-...]]></programlisting>
-
- <para>A page code for this example is placed below.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<a4j:status startText="in progress" stopText="done"/>
-<a4j:form>
- <a4j:region>
- <a4j:push reRender="msg" eventProducer="#{pushBean.addListener}" interval="2000"/>
- </a4j:region>
- <a4j:outputPanel id="msg">
- <h:outputText value="#{pushBean.date}">
- <f:convertDateTime type="time"/>
- </h:outputText>
- </a4j:outputPanel>
- <a4j:commandButton value="Push!!" action="#{pushBean.push}" ajaxSingle="true"/>
-</a4j:form>
-...]]></programlisting>
-
- <para>The example shows how date is updated on a page in compliance with data
- taken from a server. In the example <emphasis>
- <property>"interval"</property>
- </emphasis> attribute has value "2000". This
- attribute defines an interval in milliseconds between the previous
- response and the next request. Default value is set to
- "1000" milliseconds (1 second). It's
- possible to set value equal to "0". In this case
- connection is permanent. </para>
- <para>The <emphasis>
- <property>"timeout"</property>
- </emphasis> attribute defines response waiting time in milliseconds.
- If a response isn't received during this period a connection
- is aborted and the next request is sent. Default value for <emphasis>
- <property>"timeout"</property>
- </emphasis> attribute isn't set. Usage of <emphasis>
- <property>"interval"</property>
- </emphasis> and <emphasis>
- <property>"timeout"</property>
- </emphasis> attributes gives an opportunity to set short polls of
- queue state or long connections.</para>
-
- <note>
- <title>Note:</title>
- <para> The form around the <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> component is required.</para>
- </note>
- </section>
-
- <!--section>
- <title>Key attributes and ways of usage</title>
- <para>The main difference between <emphasis role="bold"><property><a4j:push></property></emphasis>and
- <emphasis role="bold"><property><a4j:poll></property></emphasis> components
- is that <emphasis role="bold"><property><a4j:push></property></emphasis> makes request to minimal code only (not to JSF tree) in order to check the presence of messages in the queue.
- If a message exists, a complete request will be performed.
- The component doesn't poll registered beans but registers EventListener which receives messages about events.
- </para>
-<para>
- There are some attributes which allows to customize of the component behaviour:
-</para>
-<para>
-"interval" - Interval (in ms) for call push requests. Default value 1000 (1 sec).
-< If "0" a connection is permanent. Also you can set different value for parameter 'timeout'.>
-</para>
-<para>
-Code for registration of listener:
-</para>
- <programlisting role="JAVA"><![CDATA[
-public void addListener(EventListener listener) {
-synchronized (listener) {
- if (this.listener != listener) {
- this.listener = (PushEventListener) listener;
-}
-]]></programlisting>
-
-<para>
-Component can get message using current code:
-</para>
- <programlisting role="JAVA"><![CDATA[
-System.out.println("event occurs");
-synchronized (listener) {
- listener.onEvent(new EventObject(this));
-}
-]]></programlisting>
-<para>
-Thus, component 'push' uses asynchronous model instead of polls.
-</para>
- </section-->
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section. </para>
- <section>
- <title>Relevant resources links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/push.jsf?c=push"
- >On RichFaces LiveDemo page </ulink> you can found some additional information for
- <emphasis role="bold">
- <property><a4j:push></property>
- </emphasis> component usage. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:queue</keyword>
- </keywordset>
- <releaseinfo>3.3.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:queue></property></emphasis> component enqueues set of Ajax requests sent from client.
- The RichFaces components with built-in Ajax can reference the queue to optimize Ajax requests.
- </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/queue.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:queue</keyword>
- </keywordset>
- </chapterinfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.Queue</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlQueue</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.QueueRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.ajax4jsf.taglib.html.jsp.QueueTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant of the Form Based queue use the following syntax.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form id="form">
- <a4j:queue />
- <h:inputText value="#{bean.a}">
- <a4j:support event="onkeyup" />
- </h:inputText>
-</h:form>]]></programlisting>
-
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold"> Example: </emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlQueue;
-...
-HtmlQueue myQueue = new HtmlQueue();
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of usage</title>
-
- <para>
- The RichFaces Queue has four different types: global default, view scoped default, view scoped named and form-based default queue (general Queue principles are good documented in the "<link linkend="QueuePrinciples">Queue Principles</link>" section).
- The current section will take closer to the form based queue. The usage of other types is similar.
- </para>
-
- <para>
- In order to disable or enable the <emphasis role="bold"><property><a4j:queue></property></emphasis> component on the page you can use the <emphasis><property>"disabled"</property></emphasis> attribute.
- </para>
-
- <para>
- The <emphasis><property>"requestDelay"</property></emphasis> attribute defines delay time for all the requests fired by the action components.
- </para>
-
- <para>
- The <emphasis><property>"size"</property></emphasis> attribute specifies the number of requests that can be stored in the queue at a time.
- The attribute helps to prevent server overloading.
- It is also possible to determine queue's behaviour when it's size is exceeded.
- Use the <emphasis><property>"sizeExceededBehavior"</property></emphasis> for this purpose.
- There are four possible strategies of exceeded queue's behavior:
- </para>
- <itemizedlist>
- <listitem>
- <para>"dropNext" drops next request that should be fired</para>
- </listitem>
- <listitem>
- <para>"dropNew" drops the incoming request</para>
- </listitem>
- <listitem>
- <para>"fireNext" immediately fires the next request in line to be fired</para>
- </listitem>
- <listitem>
- <para>"fireNew" immediately fires the incoming request.</para>
- </listitem>
- </itemizedlist>
-
- <para>
- <emphasis role="bold"> Example: </emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:queue size="2" requestDelay="500" sizeExceededBehavior="dropNext" onsizeexceeded="alert('The size of the queue is exceeded')" />
- <h:inputText value="#{bean.a}">
- <a4j:support event="onkeyup" />
- </h:inputText>
- <h:inputText value="#{bean.b}">
- <a4j:support event="onblur" />
- </h:inputText>
- <h:selectBooleanCheckbox value="#{bean.check}" id="checkboxID">
- <a4j:support id="checkboxSupport" event="onchange" />
- </h:selectBooleanCheckbox>
-</h:form>]]></programlisting>
- <para>
- In this example if the queue has more than 2 requests waiting to be processed the next event will be dropped and a message (the <emphasis><property>"onsizeexceeded"</property></emphasis> attribute fires a JavaScript function) saying that the queues is exceeded will be displayed.
- </para>
-
- <para>
- The <emphasis><property>"ignoreDupResponses"</property></emphasis> attribute that takes a boolean value can also help optimize your Ajax requests.
- If set to true, response processing for request will not occur if a similar request is already waiting in the queue. New request will be fired immediately when the response from the previous one returns.
-
- </para>
-
- <para>
- <emphasis role="bold"> Example: </emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:queue requestDelay="500" ignoreDupResponses="true" />
- <h:inputText value="#{bean.a}">
- <a4j:support event="onkeyup" />
- </h:inputText>
-</h:form>]]></programlisting>
-
- <para>In this example, the requests are glued together and only the last one is submitted.</para>
-
- <para>
- Another key attribute that easies server load is <emphasis><property>"timeout"</property></emphasis>.
- The attribute specifies the amount of time an item can be in the queue before the sent event is be aborted and dropped from the queue.
- </para>
-
- <para>
- If the request is sent and response is not returned within the time frame defined in this attribute - the request is aborted, and the next one is sent.
- </para>
- <para>
- <emphasis role="bold"> Example: </emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:queue timeout="1000" />
- <h:inputText value="#{bean.a}">
- <a4j:support event="onkeyup" />
- </h:inputText>
-</h:form>]]></programlisting>
-
- <para>
- In this case if the sever doesn't respond within a second the request will be aborted.
- </para>
-
- <para>
- As you can see the implementation of the queue provides some custom event handlers that you may use to call JavaScript functions.</para>
- <para>
- The <emphasis><property>"oncomplete"</property></emphasis>is fired after request completed.
- In this event handler request object is be passed as a parameter.
- Thus queue is be accessible using <code>request.queue</code>.
- And the element which was a source of the request is available using <code>this</code>.
- </para>
-
- <para>
- <emphasis role="bold"> Example: </emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- <a4j:queue oncomplete="alert(request.queue.getSize())" requestDelay="1000" />
- <h:inputText value="#{bean.a}">
- <a4j:support event="onkeyup" />
- </h:inputText>
- <h:selectBooleanCheckbox value="#{bean.check}">
- <a4j:support event="onchange"/>
- </h:selectBooleanCheckbox>
-</h:form>]]></programlisting>
-
- <para>In this example you can see how the number of requests waiting in the queue change. You will get a message with the number of the requests in the queue.</para>
-
- <para>The <emphasis><property>"onbeforedomupdate"</property></emphasis> event handler called before
- updating DOM on a client side.</para>
-
- <para> The <emphasis><property>"onrequestqueue"</property></emphasis> event handler called after the new request has been added to queue.
- And the <emphasis><property>"onrequestdequeue"</property></emphasis> event handler called after the request has been removed from queue. </para>
- <para> The <emphasis><property>"onsubmit"</property></emphasis> event handler called
- after request is completed. This attribute allows to invoke JavaScript code before an
- Ajax request is sent. </para>
-
- </section>
-
- <section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <!--Sorting API -->
- <row>
- <entry>getSize()</entry>
- <entry>Returns the current size to the queue</entry>
-
- </row>
- <row>
- <entry>getMaximumSize()</entry>
- <entry>Returns the maximum size to the queue, specified in the "size" attribute</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/queue.jsf?c=queue">Queue Page</ulink> at the RichFaces LiveDemo for examples of component usage and their sources.
- </para>
-
- <para>
- Useful articles:
- </para>
- <para>"<link linkend="QueuePrinciples">Queue Principles</link>" section of the RichFaces developer guide describes general Queue principles.</para>
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:recursiveTreeNodesAdaptor</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:recursiveTreeNodesAdaptor></property></emphasis> is
- an extension of a <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> component
- that provides the possibility to define data models and process nodes recursively. </para>
- <figure>
- <title>Expanded tree with <emphasis role="bold">
- <property><rich:recursiveTreeNodesAdaptor></property>
- </emphasis></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/recursiveTreeNodesAdaptor_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define combined data models</para></listitem>
- <listitem><para>Possibility to define nodes for processing via attributes</para></listitem>
- <listitem><para>Allows to process nodes recursively</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/recursiveTreeNodesAdaptor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,230 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>recursiveTreeNodesAdaptor</keyword>
- <keyword>rich:recursiveTreeNodesAdaptor</keyword>
- <keyword>HtmlrecursiveTreeNodesAdaptor</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.RecursiveTreeNodesAdaptor</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.RecursiveTreeNodesAdaptor</entry>
- </row>
- <!--
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.EffectRenderer</entry>
- </row>
- -->
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.RecursiveTreeNodesAdaptorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree switchType="ajax" stateAdvisor="#{treeDemoStateAdvisor}">
- <rich:recursiveTreeNodesAdaptor roots="#{fileSystemBean.sourceRoots}" var="item" nodes="#{item.nodes}" />
-</rich:tree>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor;
-...
-HtmlRecursiveTreeNodesAdaptor myRecursiveTreeNodesAdaptor = new HtmlRecursiveTreeNodesAdaptor();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold"><property><rich:recursiveTreeNodesAdaptor></property></emphasis> component has a
- <emphasis><property>"roots"</property></emphasis> attribute that defines collection to use at the top of recursion.
- </para>
- <para>
- The <emphasis><property>"nodes"</property></emphasis> attribute defines collection to use on another recursion levels.
- </para>
- <para>
- The <emphasis><property>"var"</property></emphasis> attribute is used to access to the current collection element.
- </para>
- <para>
- The <emphasis role="bold"><property><rich:recursiveTreeNodesAdaptor></property></emphasis> component can be nested without any limitations.
- See the following example.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
- <rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
- <rich:treeNode>
- <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
- </rich:treeNode>
- <rich:recursiveTreeNodesAdaptor id="dir" var="dir" root="#{project.dirs}" nodes="#{dir.directories}">
- <rich:treeNode>
- <h:commandLink action="#{dir.click}" value="Directory: #{dir.name}" />
- </rich:treeNode>
- <rich:treeNodesAdaptor id="file" var="file" nodes="#{dir.files}">
- <rich:treeNode>
- <h:commandLink action="#{file.click}" value="File: #{file.name}" />
- </rich:treeNode>
- </rich:treeNodesAdaptor>
- <rich:treeNodesAdaptor id="file1" var="file" nodes="#{dir.files}">
- <rich:treeNode>
- <h:commandLink action="#{file.click}" value="File1: #{file.name}" />
- </rich:treeNode>
- </rich:treeNodesAdaptor>
- <rich:recursiveTreeNodesAdaptor id="archiveEntry" var="archiveEntry"
- roots="#{dir.files}" nodes="#{archiveEntry.archiveEntries}"
- includedRoot="#{archiveEntry.class.simpleName == 'ArchiveFile'}"
- includedNode="#{archiveEntry.class.simpleName == 'ArchiveEntry'}">
- <rich:treeNode id="archiveEntryNode">
- <h:commandLink action="#{archiveEntry.click}" value="Archive entry: #{archiveEntry.name}" />
- </rich:treeNode>
- </rich:recursiveTreeNodesAdaptor>
- </rich:recursiveTreeNodesAdaptor>
- </rich:treeNodesAdaptor>
-</rich:tree>
-...
-]]></programlisting>
-
- </section>
-
-<!--
- <section>
- <title>Details of Usage</title>
-<para>
- It is possible to use <property><rich:effect></property> in two modes:
-<itemizedlist>
- <listitem>attached to the JSF components or html tags and triggered by particular event.
- Wiring effect with JSF components might be occurs on the server or client.
- Wiring with html tag is possible only on the client side </listitem>
- <listitem>invoking from the javascript code by effect name.
- During the rendering, <property>rich:effect</property> generates the javascript function with defined name. When the function is called,
- the effect is applied </listitem>
-</itemizedlist>
-</para>
- <para>
- <emphasis role="bold">Those a the typical variants of using:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-
-<rich:panel>
- <rich:effect event="onmouseout" type="Opacity" params="duration:0.8,from:1.0,to:0.3" />
- .... panel content ....
-</rich:panel>
-...
-
-
-<div id="contentDiv">
- ..... div content ......
-</div>
-
-<input type="button" onclick="hideDiv({duration:0.7})" value="Hide" />
-<input type="button" onclick="showDiv()" value="Show" />
-
-<rich:effect name="hideDiv" for="contentDiv" type="Fade" />
-<rich:effect name="showDiv" for="contentDiv" type="Appear" />
-
-
-<rich:effect for="window" event="onload" type="Appear" params="id:'contentDiv',duration:0.8,from:0.3,to:1.0" />
-...
-]]></programlisting>
-
- <figure>
- <title>Initial:</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/effect1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <figure>
- <title>When the mouse cursor is over:</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/effect0.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-<para>
-<emphasis><property>"name"</property></emphasis> attribute defines the name of the javascript function will
-be generated on a page when the component is rendered. You can invoke this function to activate the effect. The function access one parameter.
-It is a set of effect options in JSON format.
-</para>
-
-<para>
-<emphasis><property>"type"</property></emphasis> attribute defines the type of effect. For example, "Fade", "Blind", "Opacity". Take a look at scriptaculous documentation
-for set of available effect.
-</para>
-
-<para>
-<emphasis><property>"for"</property></emphasis> attribute defines the id of the component or html tag, the effect will be attached to.
-Richfaces converts the <emphasis><property>"for"</property></emphasis> attribute value to the client id of the component if such component is found. If not, the value is left as is for possible
-wiring with on the DOM element's id on the client side.
-By default, the target of the effect is the same element that effect pointed to. However, the target element
-is might be overridden with <emphasis><property>"effectId"</property></emphasis> option passed with <emphasis><property>"params"</property></emphasis>
-attribute of with function paramenter.
-</para>
-
-<para>
-<emphasis><property>"params"</property></emphasis> attribute allows to define the set of options possible for particurar effect.
-For example, 'duration', 'delay', 'from', 'to'. Additionally to the options used by the effect itself, there are two option that might override
-the <property>rich:effect</property> attribute. Those are:
-<itemizedlist>
- <listitem><emphasis><property>"effectId"</property></emphasis> allows to re-define the target of effect.
- The option is overrire the value of <emphasis><property>"for"</property></emphasis> attribute</listitem>
- <listitem><emphasis><property>"effectType"</property></emphasis> defines the effect type.
- The option is overrire the value of <emphasis><property>"type"</property></emphasis> attribute</listitem>
-</itemizedlist>
-</para>
-
- </section>
-
-
--->
- <section>
- <title>Relevant resources links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?...">On the component Live Demo page</ulink>
- you can see the example of <emphasis role="bold"><property><rich:recursiveTreeNodesAdaptor></property></emphasis> usage. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,19 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:region</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:region></property></emphasis> component specifies the part of the component tree to be processed on server.
- If no <emphasis role="bold"><property><a4j:region></property></emphasis> is defined the whole View functions as a region.
- </para>
- </section>
-
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/region.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,206 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:region</keyword>
- </keywordset>
- </chapterinfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.AjaxRegion</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.AjaxRegion</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxRegion</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxRegionRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of the <emphasis role="bold"><property><a4j:region></property></emphasis> component on a page use the following syntax:</para>
- <programlisting role="XML"><![CDATA[<a4j:region>
- ...
-</a4j:region>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxRegion;
-...
-HtmlAjaxRegion newRegion = new HtmlAjaxRegion();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:region></property></emphasis> component specifies the part of the component tree to be processed on server.
- The processing includes data handling during decoding, conversion, validation and model update.
- Note that the whole Form is still submitted but only part taken into region will be processed.
-
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- ...
- <a4j:region>
- <a4j:commandLink/>
- </a4j:region>
- ...
-<h:form>]]></programlisting>
-
- <para>The whole Form on the schematic listing above will be submitted by request invoked with the <emphasis role="bold"><property><a4j:commandLink></property></emphasis>.
- The only part that is going to be processed on the server is enclosed with <emphasis role="bold"><property><a4j:region></property></emphasis> and <emphasis role="bold"><property></a4j:region></property></emphasis> tags.
- If no <emphasis role="bold"><property><a4j:region></property></emphasis> is defined the whole View functions as a region.
- </para>
-
- <!-- <para>The region is a component used for manipulation with components sent to the server.
- It sets particular processing parameters for an area on the server, i.e. the region deals with data input on the server and has no direct impact on output.
- To read more on the components responsible for out, see <ulink url="http://java.sun.com/javaee/javaserverfaces/reference/index.html">Sun official documentation</ulink>.
- </para>
-
- <para>The region marks an area page that is decoded on the server. This component helps to reduce data quantity processed by the server, but the region doesn't influence on the standard submission rules. It means that:<itemizedlist>
- <listitem><para>
- The area that is to be submitted onto the server should be embedded in <emphasis role="bold">
- <property><h:form></property>/<property><a4j:form></property>
-</emphasis> component.
- </para></listitem>
- <listitem><para>
- The whole form is submitted on Ajax response and not a region that request is performed from.
- </para></listitem>
- </itemizedlist></para>
- -->
-
- <para>The regions could be nested. Server picks out and decodes only the region, which contains the component that initiates the request.</para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[<h:form>
- ...
- <a4j:region>
- <a4j:commandLink value="Link 1" id="link1"/>
- <a4j:region>
- <a4j:commandLink value="Link 2" id="link2"/>
- </a4j:region >
- </a4j:region>
- ...
-<h:form>]]></programlisting>
- <para>
- The external region is decoded for <code>link1</code> and the internal one is decoded for <code>link2</code>.
- </para>
-
- <para>
- The <emphasis><property>"renderRegionOnly"</property></emphasis> attribute is used when it is necessary to exclude all the components from the outside of the region from updating on the page during Renderer Response phase.
- Such manipulation allows region to be passed straight into Encode and reduces performance time.
- This optimization should be implemented carefully because it doesn't allow data from the outside of active region to be updated.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:form>
- ...
- <a4j:region renderRegionOnly="true">
- <a4j:commandLink value="Link 1" id="link1"/>
- </a4j:region>
- ...
- <a4j:region renderRegionOnly="false">
- <a4j:commandLink value="Link 2" id="link2"/>
- </a4j:region>
- ...
-</h:form>]]></programlisting>
- <para>
- On the example above the first region only will be updated if <code>link1</code> initiates a request.
- When a request is initiated by <code>link2</code> both regions will be updated.
- In this case search for components to include them into Renderer Response will be performed on the whole component tree.
- </para>
-
-
- <para>
- <property>RichFaces</property> allows setting Ajax responses rendering basing on component tree nodes directly, without referring to the JSP (XHTML) code.
- This speeds up a response output considerably and could be done by setting the <emphasis role="bold"><property><a4j:region></property></emphasis> <emphasis><property>"selfRendered"</property></emphasis> attribute to "true".
- However, this rapid processing could cause missing of transient components that present on view and don't come into a component tree as well as omitting of <emphasis role="bold"><property><a4j:outputPanel></property></emphasis> usage described below.
-</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:region selfRendered ="true">
- <a4j:commandLink value="Link" id="link"/>
- <!--Some HTML content-->
-</a4j:region>]]></programlisting>
- <para>In this case the processing is quicker and going on without referring to the page code.
- The HTML code is not saved in a component tree and could be lost.
- Thus, such optimization should be performed carefully and additional <property>RichFaces</property> components usage (e.g. <emphasis role="bold"><property><a4j:outputPanel></property></emphasis>) is required.</para>
-
-
-
- <para>
- Starting from <property>RichFaces 3.2.0</property> the <emphasis role="bold"><property><a4j:region></property></emphasis> can be used together with iterative components (e.g. <emphasis role="bold"><property><rich:column></property></emphasis> or <emphasis role="bold"><property><rich:scrollableDataTable></property></emphasis>, etc.).
- It became possible to re-render a particular row in a table without updating the whole table and without any additional listeners.
- </para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[<rich:column>
- <a4j:region>
- <a4j:commandLink reRender="out"/>
- </a4j:region>
-</rich:column>
-<rich:column>
- <h:outputText id="out">
-</rich:column>]]></programlisting>
-
- <para>
- In most cases there is no need to use the <emphasis role="bold"><property><a4j:region></property></emphasis> as <code>ViewRoot</code> is a default one.
- </para>
-
-
- </section>
-
-
-
-
- <section>
- <title>Relevant resources links</title>
- <para>Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/region.jsf?c=region"><a4j:region> demo page</ulink> at
-RichFaces live demo for examples of component usage and their sources.
- </para>
- <para>Useful articles and examples:</para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://www.jboss.org/community/docs/DOC-11866"><a4j:region> and two <h:inputTexts></ulink> in RichFaces cookbook at JBoss portal;
- </para>
- </listitem>
- <listitem>
- <para>
- "<ulink url="http://ishabalov.blogspot.com/2007/08/sad-story-about-uiinput.html">A sad story about UIInput</ulink>" at personal blog of I.Shabalov and <ulink url="http://livedemo.exadel.com/richfaces-local-value-demo/pages/local-value-d...">exhaustive example</ulink> of solving the problem with the help of <emphasis role="bold"><property><a4j:region></property></emphasis>.
- </para>
- </listitem>
-
- </itemizedlist>
- </section>
-
- </section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:repeat</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:repeat></property></emphasis> component implements a basic iteration component that allows to update a set of its children with Ajax.
- </para>
-</section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/repeat.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,127 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:repeat</keyword>
- </keywordset>
- </chapterinfo>
- <para>
- <table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Repeat</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Data</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxRepeat</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.RepeatRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following syntax:
- </para>
- <programlisting role="XML"><![CDATA[<a4j:repeat id="detail" value="#{bean.props}" var="detail">
- <h:outputText value="#{detail.someProperty}"/>
-</a4j:repeat>]]></programlisting>
- <para>
- The output is generated according to a collection contained in <code>bean.props</code> with the <code>detail</code> key passed to child components.
- </para>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxRepeat;
-...
-HtmlAjaxRepeat repeater = new HtmlAjaxRepeat ();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of usage</title>
- <para>
- The <emphasis role="bold"><property><a4j:repeat></property></emphasis> component is similar to Facelets <emphasis role="bold"><property><ui:repeat></property></emphasis> tag,
- which is used to iterate through a collection of objects binded with JSF page as EL expression.
- The main difference of the <emphasis role="bold"><property><a4j:repeat></property></emphasis> is a possibility to update particular components (it's children) instead of all using Ajax requests.
- The feature that makes the component different is a special <emphasis><property>"ajaxKeys"</property></emphasis> attribute that defines row that are updated after an Ajax request.
- As a result it becomes easier to update several child components separately without updating the whole page.
- </para>
-
-
- <programlisting role="XML"><![CDATA[...
-<table>
- <tbody>
- <a4j:repeat value="#{repeatBean.items}" var="item" ajaxKeys="#{updateBean.updatedRow}">
- <tr>
- <td><h:outputText value="#{item.code}" id="item1" /></td>
- <td><h:outputText value="#{item.price}" id="item2" /></td>
- </tr>
- </a4j:repeat>
- </tbody>
-</table>
- ...]]></programlisting>
-
- <para>
- The example above the <emphasis role="bold"><property><a4j:repeat></property></emphasis> points to an method that contains row keys to be updated.
- </para>
- <note>
- <title>Note:</title>
- <para>
- The <emphasis role="bold"><property><a4j:repeat></property></emphasis> component is defined as fully updated,
- but really updated there are only the row keys which defined in the <emphasis><property>"ajaxKeys"</property></emphasis> attribute.
- </para>
- </note>
-
-
- <para>
- One more benefit of this component is absence of strictly defined markup as JSF HTML DataTable and TOMAHAWK DataTable has.
- Hence the components could be used more flexibly anywhere where it's necessary to output the results of selection from some collection.
- </para>
-
- <para>The next example shows collection output as a plain HTML list:</para>
- <programlisting role="XML"><![CDATA[<ul>
- <a4j:repeat ...>
- <li>...<li/>
- ...
- <li>...<li/>
- </a4j:repeat>
-</ul>]]></programlisting>
- <para>All other general attributes are defined according to the similar
- attributes of iterative components (<emphasis role="bold">
- <property><h:dataTable></property>
- </emphasis> or <emphasis role="bold">
- <property><ui:repeat></property>
- </emphasis>) and are used in the same way.</para>
- </section>
-
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/repeat.jsf?c=repeat">Repeat page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
- </para>
- </section>
-</chapter>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_ajaxValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_ajaxValidator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_ajaxValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,262 @@
+<section role="NotInToc" id="rich_ajaxValidator">
+ <title>
+ <
+ rich:ajaxValidator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.2</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The<emphasis role="bold">
+ <property><rich:ajaxValidator></property>
+ </emphasis>is a component designed to provide Ajax validation inside for JSF inputs.</para>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Skips all JSF processing except validation</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to use both standard and custom validation</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to use Hibernate Validation</para>
+ </listitem>
+ <listitem>
+ <para>Event based validation triggering</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>The <emphasis role="bold">
+ <property><rich:ajaxValidator></property>
+ </emphasis> component should be added as a child component to an input
+ JSF tag which data should be validated and an event that triggers
+ validation should be specified as well. The component is ajaxSingle by
+ default so only the current field will be validated.</para>
+
+
+ <para>The following example demonstrates how the <emphasis role="bold">
+ <property><rich:ajaxValidator></property>
+ </emphasis> adds Ajax functionality to standard JSF validators. The
+ request is sent when the input field loses focus, the action is
+ determined by the <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute that is set to
+ <code>"onblur"</code>. </para>
+
+
+
+ <programlisting role="XML">...
+<rich:panel>
+ <f:facet name="header">
+ <h:outputText value="User Info:" />
+ </f:facet>
+ <h:panelGrid columns="3">
+ <h:outputText value="Name:" />
+ <h:inputText value="#{userBean.name}" id="name" required="true">
+ <f:validateLength minimum="3" maximum="12"/>
+ <rich:ajaxValidator event="onblur"/>
+ </h:inputText>
+ <rich:message for="name" />
+
+ <h:outputText value="Age:" />
+ <h:inputText value="#{userBean.age}" id="age" required="true">
+ <f:convertNumber integerOnly="true"/>
+ <f:validateLongRange minimum="18" maximum="99"/>
+ <rich:ajaxValidator event="onblur"/>
+ </h:inputText>
+ <rich:message for="age"/>
+ </h:panelGrid>
+</rich:panel>
+...</programlisting>
+
+ <para>This is the result of the snippet. </para>
+
+
+ <figure>
+ <title>Simple example of <emphasis role="bold">
+ <property><rich:ajaxValidator></property>
+ </emphasis>with </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ajaxValidator1.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>In the example above it's show how to work with standard JSF validators.
+ The <emphasis role="bold">
+ <property><rich:ajaxValidator></property>
+ </emphasis> component also works perfectly with custom validators
+ enhancing their usage with Ajax. </para>
+
+ <para> Custom validation can be performed in two ways: </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Using JSF Validation API is available in
+ javax.faces.validator package</para>
+ </listitem>
+ <listitem>
+ <para>Using Hibernate Validator, specifying a constraint for
+ the data to be validated. A reference on Hibernate
+ Validator can be found <ulink url="http://www.hibernate.org/hib_docs/validator/reference/en/html_single/">in Hibernated documentation</ulink>.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para> The following example shows how the data entered by user can be validated
+ using Hibernate Validator. </para>
+
+ <programlisting role="XML">...
+<rich:panel>
+ <f:facet name="header">
+ <h:outputText value="User Info:" />
+ </f:facet>
+ <h:panelGrid columns="3">
+ <h:outputText value="Name:" />
+ <h:inputText value="#{validationBean.name}" id="name" required="true">
+ <rich:ajaxValidator event="onblur" />
+ </h:inputText>
+ <rich:message for="name" />
+
+ <h:outputText value="Email:" />
+ <h:inputText value="#{validationBean.email}" id="email">
+ <rich:ajaxValidator event="onblur" />
+ </h:inputText>
+ <rich:message for="email" />
+
+ <h:outputText value="Age:" />
+ <h:inputText value="#{validationBean.age}" id="age">
+ <rich:ajaxValidator event="onblur" />
+ </h:inputText>
+ <rich:message for="age" />
+ </h:panelGrid>
+</rich:panel>
+...</programlisting>
+
+
+ <para>Here is the source code of the managed bean.</para>
+
+
+ <programlisting role="JAVA">package org.richfaces.demo.validation;
+
+import org.hibernate.validator.Email;
+import org.hibernate.validator.Length;
+import org.hibernate.validator.Max;
+import org.hibernate.validator.Min;
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+
+public class ValidationBean {
+
+ private String progressString="Fill the form please";
+
+ @NotEmpty
+ @Pattern(regex=".*[^\\s].*", message="This string contain only spaces")
+ @Length(min=3,max=12)
+ private String name;
+ @Email
+ @NotEmpty
+ private String email;
+
+ @NotNull
+ @Min(18)
+ @Max(100)
+ private Integer age;
+
+ public ValidationBean() {
+ }
+
+ /* Corresponding Getters and Setters */
+
+}</programlisting>
+
+ <para>By default the Hibernate Validator generates an error message in 10
+ language, though you can redefine the messages that are displayed to a
+ user when validation fails. In the shows example it was done by adding
+ <code>(message="wrong email
+ format")</code> to the <code>@Email</code> annotation.</para>
+
+ <para>This is how it looks. </para>
+ <figure>
+ <title>Validation using Hibernate validator </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/ajaxValidator2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/ajaxValidator.html">Table of
+ <rich:ajaxValidator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.ajaxValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlajaxValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.ajaxValidator</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.ajaxValidatorRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.ajaxValidatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxValidator.jsf?c=a...">AjaxValidator page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_beanValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_beanValidator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_beanValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,203 @@
+<section role="NotInToc" id="rich_beanValidator">
+ <title>
+ <
+ rich:beanValidator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.2</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The<emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> component designed to provide validation using Hibernate model-based constraints.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Validation using Hibernate constraints</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>Starting from 3.2.2 GA version Rich Faces provides support for model-based constraints defined using Hibernate Validator.
+ Thus it's possible to use Hibernate Validators the same as for Seam based applications.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> component is defined in the same way as any JSF validator.
+ Look at the example below.
+ </para>
+ <programlisting role="XML"><rich:panel>
+ <f:facet name="header">
+ <h:outputText value="#{validationBean.progressString}" id="progress"/>
+ </f:facet>
+ <h:panelGrid columns="3">
+ <h:outputText value="Name:" />
+ <h:inputText value="#{validationBean.name}" id="name">
+ <rich:beanValidator summary="Invalid name"/>
+ </h:inputText>
+ <rich:message for="name" />
+
+ <h:outputText value="Email:" />
+ <h:inputText value="#{validationBean.email}" id="email">
+ <rich:beanValidator summary="Invalid email"/>
+ </h:inputText>
+ <rich:message for="email" />
+
+ <h:outputText value="Age:" />
+ <h:inputText value="#{validationBean.age}" id="age">
+ <rich:beanValidator summary="Wrong age"/>
+ </h:inputText>
+ <rich:message for="age" />
+ <f:facet name="footer">
+ <a4j:commandButton value="Submit" action="#{validationBean.success}" reRender="progress"/>
+ </f:facet>
+ </h:panelGrid>
+</rich:panel></programlisting>
+
+ <para>
+ Please play close attention on the bean code that contains the constraints defined with Hibernate annotation which perform validation of the input data.
+ </para>
+
+ <programlisting role="JAVA">
+
+package org.richfaces.demo.validation;
+
+import org.hibernate.validator.Email;
+import org.hibernate.validator.Length;
+import org.hibernate.validator.Max;
+import org.hibernate.validator.Min;
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Pattern;
+
+public class ValidationBean {
+
+ private String progressString="Fill the form please";
+
+ @NotEmpty
+ @Pattern(regex=".*[^\\s].*", message="This string contain only spaces")
+ @Length(min=3,max=12)
+ private String name;
+ @Email
+ @NotEmpty
+ private String email;
+
+ @NotNull
+ @Min(18)
+ @Max(100)
+ private Integer age;
+
+ public ValidationBean() {
+ }
+
+ /* Corresponding Getters and Setters */
+
+ public void success() {
+ setProgressString(getProgressString() + "(Strored successfully)");
+ }
+
+ public String getProgressString() {
+ return progressString;
+ }
+
+ public void setProgressString(String progressString) {
+ this.progressString = progressString;
+ }
+}</programlisting>
+
+ <para>The following figure shows what happens if validation fails</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/beanValidator1.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>As you can see from the example that in order to validate the
+ <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> should be nested into a input JSF or RichFaces
+ component. </para>
+
+ <para>The component has the only attribute - <emphasis>
+ <property>"summary"</property>
+ </emphasis>which displays validation messages about
+ validation errors.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/beanValidator.html">Table of
+ <rich:beanValidator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.beanValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlbeanValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.beanValidator</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.beanValidatorRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.beanValidatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/beanValidator.jsf?c=b...">
+ On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_calendar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_calendar.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_calendar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,1249 @@
+<section role="NotInToc" id="rich_calendar">
+ <title>
+ <
+ rich:calendar
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component is used to create inputs for date and time and enter them inline or using pup-up calendar that allows to navigate through monthes and years.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Popup representation</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ <listitem>
+ <para>Smart and user-defined positioning</para>
+ </listitem>
+ <listitem>
+ <para>Cells customization</para>
+ </listitem>
+ <listitem>
+ <para>Macro substitution based on tool bars customization</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component can work properly in two ways of data loading
+ defined by the <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute.
+ The attribute has two possible values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>client</code> — the default mode.
+ In this mode calendar loads an initial portion of data within a definite date range.
+ The range is specified with the help of <emphasis>
+ <property>"preloadDateRangeBegin"</property>
+ </emphasis> and <emphasis>
+ <property>"preloadDateRangeEnd"</property>
+ </emphasis> attributes
+ that are designed for this mode only!
+ Additional data requests are not sent.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>ajax</code> — in this mode the <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> requests portions of data for element rendering from special Data Model.
+ The default calendar Data Model could be redefined with the help of <emphasis>
+ <property>dataModel</property>
+ </emphasis> attribute that points to the object that implements <code>
+ <ulink url="&apidoc_framework;org/richfaces/model/CalendarDataModel.html">CalendarDataModel</ulink>
+ </code> interface.
+ If <emphasis>
+ <property>"dataModel"</property>
+ </emphasis> attribute has <emphasis>
+ <property>"null"</property>
+ </emphasis> value, data requests are not sent.
+ In this case the "<code>ajax</code>" mode is equal to the "<code>client</code>".
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> could be represented on a page in two ways (a) the calendar itself without input field and button and
+ (b) date input with button and popping-up calendar.
+ This is defined with <emphasis>
+ <property>"popup" </property>
+ </emphasis> attribute, which is <emphasis>
+ <property>"true"</property>
+ </emphasis> by default.
+ For popup rendering a "lazy" loading is implemented: a client side script method builds the popup after request is completed.
+ Such improvement speeds up page loading time.
+ </para>
+
+ <figure>
+ <title>The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> with <emphasis>
+ <property>popup="false"</property>
+ </emphasis> (a) and default representation (b)</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar7.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ By default the <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> is rendered as input filed with a button and calendar hidden in a pop-up.
+ The button is represented with calendar pictogramm.
+ This pictogramm could be easily changed with the help of <emphasis>
+ <property>"buttonIcon"</property>
+ </emphasis>
+ and <emphasis>
+ <property>"buttonIconDisabled"</property>
+ </emphasis> attributes, which specify the icon for button enabled and disabled states respectively.
+ To change the button appearance from icon to usual button define the value for the <emphasis>
+ <property>"buttonLabel"</property>
+ </emphasis> attribute.
+ In this case <emphasis>
+ <property>"buttonIcon"</property>
+ </emphasis> and <emphasis>
+ <property>"buttonIconDisabled"</property>
+ </emphasis> attributes are ignored.
+ </para>
+
+ <figure>
+ <title>The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> with <emphasis>
+ <property>buttonLabel="Open calendar"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar8.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>
+ There are two attributes that specify the place where the popup calendar is rendered relative to the input field and icon:
+ <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> and <emphasis>
+ <property>"direction"</property>
+ </emphasis> attributes.
+ By default the pop-up calendar appears under input and aligned with it left border (see Fig. 6.211, b).
+ Speaking in terms of RichFaces it means that <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis>
+ <emphasis>
+ <property>jointPoint="bottom-left"</property>
+ </emphasis>
+ and <emphasis>
+ <property>direction="bottom-right".</property>
+ </emphasis>
+ There are four possible joint-points and four possible directions for each joint-point.
+ Besides that, the values of <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> and <emphasis>
+ <property>"direction"</property>
+ </emphasis> could be set to
+ <emphasis>
+ <property>"auto"</property>
+ </emphasis> that activates smart pop-up positioning.
+ </para>
+ <figure>
+ <title>Four possible positions of joint-points (red) and four possible directions (black) shown for bottom-left joint-point.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar9.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <para>Usage <emphasis>
+ <property>"currentDate"</property>
+ </emphasis> attribute isn't available in the popup mode.</para>
+ <para>With help of the <emphasis>
+ <property>"currentDate"</property>
+ </emphasis> attribute you can define month and year which will be
+ displayed currently.</para>
+ <para>The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute stores selected date currently.</para>
+
+ <para>The difference between the value and currentDate attributes </para>
+ <para> The <emphasis>
+ <property>"todayControlMode"</property>
+ </emphasis> attribute defines the mode for "today"
+ control. Possible values are: </para>
+ <itemizedlist>
+ <listitem>
+ <para>"hidden" - in this mode
+ "Today" button will not be
+ displayed</para>
+ </listitem>
+ <listitem>
+ <para>"select" - (default) in this state
+ "Today" button activation will
+ scroll the calendar to the current date and it
+ become selected date</para>
+ </listitem>
+ <listitem>
+ <para>"scroll" - in this mode
+ "Today" activation will simply
+ scroll the calendar to current month without
+ changing selected day.</para>
+ </listitem>
+ </itemizedlist>
+
+
+
+ <para>
+ With the help of the
+ <emphasis>
+ <property>"readonly"</property>
+ </emphasis>
+ attribute you can make date, time and input field unavailable, but you can look through the next/previous month or the next/previous year.
+ </para>
+ <para>
+ In order to disable the component, use the <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute. With its help both controls are disabled in the
+ <emphasis>
+ <property>"popup"</property>
+ </emphasis>
+ mode.
+ </para>
+ <figure>
+ <title>Using the <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute.</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar6.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+
+ <para>
+ <emphasis>
+ <property>"ondateselect"</property>
+ </emphasis> attribute is used to define an event that is triggered
+ before date selection.</para>
+ <para>
+ <emphasis>
+ The <property>"ondateselected"</property>
+ </emphasis> attribute is used to define an event that is triggered
+ after date selection. </para>
+ <para>For example, to fire some event after date selection you should use
+ <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis>. And it should be bound to <emphasis>
+ <property>"ondateselected"</property>
+ </emphasis> event as it's shown in the example below:</para>
+ <programlisting role="XML">...
+<rich:calendar id="date" value="#{bean.dateTest}">
+ <a4j:support event="ondateselected" reRender="mainTable"/>
+</rich:calendar>
+...</programlisting>
+ <note>
+ <title>Note:</title>
+ <para>
+ When a timePicker was fulfilled, the <emphasis>
+ <property>"ondateselected"</property>
+ </emphasis> attribute does not allow you to submit a selected date. It happens because this event rose when the date is selected but the input hasn't been updated with new value yet.
+
+ </para>
+ </note>
+ <para>
+ <emphasis>
+ <property>"ondateselect"</property>
+ </emphasis> could be used for possibility of date selection canceling.
+ See an example below:</para>
+ <programlisting role="XML">...
+<rich:calendar id="date" value="#{bean.dateTest}" ondateselect="if (!confirm('Are you sure to change date?')){return false;}"/>
+...</programlisting>
+ <para>
+ <emphasis>
+ <property>"oncurrentdateselected"</property>
+ </emphasis> event is fired when the "next/previous month" or
+ "next/previous year" button is pressed, and the value is applied. </para>
+ <para>
+ <emphasis>
+ <property>"oncurrentdateselect"</property>
+ </emphasis> event is fired when the "next/previous month" or
+ "next/previous year" button is pressed, but the value is not applied
+ yet (you can change the logic of applying the value). Also this event
+ could be used for possibility of "next/previous month" or
+ "next/previous year" selection canceling. See an example below: </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:calendar id="date" value="#{bean.dateTest}" oncurrentdateselect="if (!confirm('Are you sure to change month(year)?')){return false;}"
+ oncurrentdateselected="alert('month(year) select:'+event.rich.date.toString());"/>
+...</programlisting>
+ <para>How to use these attributes see also on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092275#...">RichFaces Users Forum</ulink>.</para>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">in the corresponding section </link>. </para>
+
+
+
+
+
+
+
+ <para> The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This attribute
+ defines the parameters of localized error and informational messages
+ that occur as a result of conversion, validation, or other application
+ actions during the request processing lifecycle. With the help of this
+ attribute you can replace the last parameter substitution token shown
+ in the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>,
+ {2} for <code>"ShortConverter.SHORT"</code>. </para>
+ <para>The <emphasis>
+ <property>"defaultTime"</property>
+ </emphasis> attribute to set the default time value for the current
+ date in two cases:</para>
+ <itemizedlist>
+ <listitem>
+ <para> If time is not set </para>
+ </listitem>
+ <listitem>
+ <para> If another date is selected and the value of the <emphasis>
+ <property>"resetTimeOnDateSelect"</property>
+ </emphasis> attribute is set to
+ "true" </para>
+ </listitem>
+ </itemizedlist>
+ <para> The <emphasis>
+ <property> "enableManualInput" </property>
+ </emphasis> attribute enables/disables input field, so when <code>
+ enableManualInput = "false" </code>, user
+ can only pick the date manually and has no possibility to type in the
+ date (default value is "false"). </para>
+ <para>The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component allows to use <emphasis>
+ <property>"header"</property>
+ </emphasis>, <emphasis>
+ <property>"footer"</property>
+ </emphasis>, <emphasis>
+ <property>"optionalHeader"</property>
+ </emphasis>, <emphasis>
+ <property>"optionalFooter"</property>
+ </emphasis> facets. The following elements are available in these
+ facets: <code>{currentMonthControl}</code>,
+ <code>{nextMonthControl}</code>, <code>{nextYearControl}</code>,
+ <code>{previousYearControl}</code>,
+ <code>{previousMonthControl}</code>,
+ <code>{todayControl}</code>, <code>{selectedDateControl}</code>. These
+ elements could be used for labels output.</para>
+ <para>Also you can use <emphasis>
+ <property>"weekNumber"</property>
+ </emphasis> facet with available <code>{weekNumber}</code>,
+ <code>{elementId}</code> elements and <emphasis>
+ <property>"weekDay"</property>
+ </emphasis> facet with <code>{weekDayLabel}</code>,
+ <code>{weekDayLabelShort}</code>,
+ <code>{weekDayNumber}</code>, <code>{isWeekend}</code>,
+ <code>{elementId}</code> elements.
+ <code>{weekNumber}</code>, <code>{weekDayLabel}</code>,
+ <code>{weekDayLabelShort}</code>,
+ <code>{weekDayNumber}</code> elements could be used for labels output,
+ <code>{isWeekend}</code>, <code>{elementId}</code> - for
+ additional processing in JavaScript code.</para>
+ <para>These elements are shown on the picture below.</para>
+
+ <figure>
+ <title>Available elements</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Simple example of usage is placed below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="CSS">...
+<!-- Styles for cells -->
+<style>
+ .width100{
+ width:100%;
+ }
+ .talign{
+ text-align:center;
+ }
+</style>
+...</programlisting>
+
+ <programlisting role="XML">...
+<rich:calendar id="myCalendar" popup="true" locale="#{calendarBean.locale}" value="#{bean.date}"
+ preloadRangeBegin="#{bean.date}" preloadRangeEnd="#{bean.date}" cellWidth="40px" cellHeight="40px">
+
+ <!-- Customization with usage of facets and accessible elements -->
+ <f:facet name="header">
+ <h:panelGrid columns="2" width="100%" columnClasses="width100, fake">
+ <h:outputText value="{selectedDateControl}" />
+ <h:outputText value="{todayControl}" style="font-weight:bold; text-align:left"/>
+ </h:panelGrid>
+ </f:facet>
+ <f:facet name="weekDay">
+ <h:panelGroup style="width:60px; overflow:hidden;" layout="block">
+ <h:outputText value="{weekDayLabelShort}"/>
+ </h:panelGroup>
+ </f:facet>
+ <f:facet name="weekNumber">
+ <h:panelGroup>
+ <h:outputText value="{weekNumber}" style="color:red"/>
+ </h:panelGroup>
+ </f:facet>
+ <f:facet name="footer">
+ <h:panelGrid columns="3" width="100%" columnClasses="fake, width100 talign">
+ <h:outputText value="{previousMonthControl}" style="font-weight:bold;"/>
+ <h:outputText value="{currentMonthControl}" style="font-weight:bold;"/>
+ <h:outputText value="{nextMonthControl}" style="font-weight:bold;"/>
+ </h:panelGrid>
+ </f:facet>
+ <h:outputText value="{day}"></h:outputText>
+</rich:calendar>
+...</programlisting>
+
+ <para>This is a result:</para>
+ <figure>
+ <title>Facets usage</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>As it's shown on the picture above
+ <code>{selectedDateControl}</code>, <code>{todayControl}</code>
+ elements are placed in the <emphasis>
+ <property>"header"</property>
+ </emphasis> facet, <code>{previousMonthControl}</code>,
+ <code>{currentMonthControl}</code>,
+ <code>{nextMonthControl}</code> - in the <emphasis>
+ <property>"footer"</property>
+ </emphasis> facet, <code>{weekDayLabelShort}</code> - in the <emphasis>
+ <property>"weekDay"</property>
+ </emphasis> facet, <code>{nextYearControl}</code>,
+ <code>{previousYearControl}</code> are absent. Numbers of
+ weeks are red colored.</para>
+
+ <para> It is possible to show and manage date. Except scrolling controls you can
+ use quick month and year selection feature. It's necessary to
+ click on its field, i.e. current month control, and choose required
+ month and year. </para>
+ <figure>
+ <title>Quick month and year selection</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Also the <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component allows to show and manage time. It's
+ necessary to define time in a pattern (for example, it could be
+ defined as "<code>d/M/yy HH:mm</code>"). Then after
+ you choose some data in the calendar, it becomes possible to manage
+ time for this date. For time editing it's necessary to click
+ on its field (see a picture below). To clean the field click on the
+ "Clean".</para>
+
+ <figure>
+ <title>Timing</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/calendar4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>It's possible to handle events for calendar from JavaScript code.
+ A simplest example of usage JavaScript API is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:calendar value="#{calendarBean.selectedDate}" id="calendarID"
+ locale="#{calendarBean.locale}"
+ popup="#{calendarBean.popup}"
+ datePattern="#{calendarBean.pattern}"
+ showApplyButton="#{calendarBean.showApply}" style="width:200px"/>
+<a4j:commandLink onclick="$('formID:calendarID').component.doExpand(event)" value="Expand"/>
+...</programlisting>
+
+ <para>Also the discussion about this problem can be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078301#...">RichFaces Users Forum</ulink>.</para>
+
+
+
+ <!-- <para>The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component provides the possibility to use a special Data
+ Model to define data for element rendering. Data Model includes two
+ major interfaces: </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."><code>CalendarDataModel</code></ulink>
+
+ </para>
+ </listitem>
+ <listitem>
+ <para> <ulink url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."><code>CalendarDataModelItem</code></ulink>
+
+ </para>
+ </listitem>
+ </itemizedlist>
+
+
+ <para><code>CalendarDataModel</code> provides the following function:</para>
+ <itemizedlist>
+ <listitem>
+ <para><code>CalendarDataModelItem[]
+ getData(Date[])</code>;</para>
+ </listitem>
+ </itemizedlist>
+ <para>This method is called when it's necessary to represent the next
+ block of <code>CalendarDataModelItem</code>. It happens during navigation
+ to the next (previous) month or in any other case when calendar
+ renders. This method is called in <emphasis>
+ <property>"Ajax"</property>
+ </emphasis> mode when the calendar renders a new page. </para>
+ <para><code>CalendarDataModelItem</code> provides the following function:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Date <code>getDate()</code> - returns date from the
+ item. Default implementation returns date.</para>
+ </listitem>
+ <listitem>
+ <para>Boolean <code>isEnabled()</code> - returns
+ "true" if date is <emphasis>
+ <property>"selectable"</property>
+ </emphasis> on the calendar. Default
+ implementation returns
+ "true".</para>
+ </listitem>
+ <listitem>
+ <para>String <code>getStyleClass()</code> - returns string
+ appended to the style class for the date span. For
+ example it could be "relevant
+ holyday". It means that the class could
+ be defined like the
+ "rich-cal-day-relevant-holyday"
+ one. Default implementation returns empty
+ string.</para>
+ </listitem>
+ <listitem>
+ <para>Object <code>getData()</code> - returns any additional
+ payload that must be JSON-serializable object. It
+ could be used in the custom date representation on
+ the calendar (inside the custom facet).</para>
+ </listitem>
+ </itemizedlist>
+
+-->
+
+
+ <para> The <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component provides the possibility to use
+ internationalization method to redefine and localize the labels. You
+ could use application resource bundle and define
+ <code>RICH_CALENDAR_APPLY_LABEL</code>,
+ <code>RICH_CALENDAR_TODAY_LABEL</code>,
+ <code>RICH_CALENDAR_CLOSE_LABEL</code>,
+ <code>RICH_CALENDAR_OK_LABEL</code>,
+ <code>RICH_CALENDAR_CLEAN_LABEL</code>,
+ <code>RICH_CALENDAR_CANCEL_LABEL </code> there. </para>
+ <para>You could also pack <code>org.richfaces.renderkit.calendar</code>
+ <ulink url="&apidoc;org/richfaces/renderkit/CalendarRendererBase.html#CALENDAR_BUNDLE">resource</ulink> bundle with your JARs defining the same
+ properties. </para>
+ <note>
+ <title>Note:</title>
+ <para>Only for Internet Explorer 6 and later. To make <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> inside <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> rendered properly, enable the
+ standards-compliant mode. Explore <ulink url="http://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx">!DOCTYPE reference at MSDN</ulink> to find out
+ how to do this. </para>
+ </note>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/calendar.html">Table of
+ <rich:calendar>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.Calendar</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlCalendar</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.Calendar</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.CalendarRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.CalendarTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>selectDate(date)</entry>
+
+ <entry>Selects the date specified. If
+ the date isn't in
+ current month - performs
+ request to select</entry>
+ </row>
+
+ <row>
+ <entry role="tbi">isDateEnabled(date)</entry>
+
+ <entry role="tbi">Checks if given date
+ is selectable (to be
+ implemented)</entry>
+ </row>
+
+ <row>
+ <entry role="tbi">enableDate(date)</entry>
+
+ <entry role="tbi">Enables date cell
+ control on the calendar (to be
+ implemented)</entry>
+ </row>
+
+ <row>
+ <entry role="tbi">disableDate(date)</entry>
+
+ <entry role="tbi">Disables date cell
+ control on the calendar (to be
+ implemented)</entry>
+ </row>
+
+ <row>
+ <entry role="tbi">enableDates(date[])</entry>
+
+ <entry role="tbi">Enables dates cell
+ controls set on the calendar
+ (to be implemented)</entry>
+ </row>
+
+ <row>
+ <entry role="tbi">disableDates(date[])</entry>
+
+ <entry role="tbi">Disables dates cell
+ controls set on the calendar
+ (to be implemented)</entry>
+ </row>
+
+ <row>
+ <entry>nextMonth()</entry>
+
+ <entry>Navigates to next month</entry>
+ </row>
+
+ <row>
+ <entry>nextYear()</entry>
+
+ <entry>Navigates to next year</entry>
+ </row>
+
+ <row>
+ <entry>prevMonth()</entry>
+
+ <entry>Navigates to previous month
+ </entry>
+ </row>
+
+ <row>
+ <entry>prevYear()</entry>
+
+ <entry>Navigates to previous
+ year</entry>
+ </row>
+
+ <row>
+ <entry>today()</entry>
+
+ <entry>Selects today date</entry>
+ </row>
+
+ <row>
+ <entry>getSelectedDate()</entry>
+
+ <entry>Returns currently selected
+ date</entry>
+ </row>
+
+ <row>
+ <entry>Object getData()</entry>
+
+ <entry>Returns additional data for the
+ date</entry>
+ </row>
+
+ <!--
+ <row>
+ <entry>enable()</entry>
+
+ <entry>Enables calendar</entry>
+ </row>
+
+ <row>
+ <entry>disable()</entry>
+
+ <entry>Disables calendar</entry>
+ </row>
+ -->
+
+ <row>
+ <entry>getCurrentMonth()</entry>
+
+ <entry>Returns number of the month
+ currently being viewed</entry>
+ </row>
+
+ <row>
+ <entry>getCurrentYear()</entry>
+
+ <entry>Returns number of the year
+ currently being viewed</entry>
+ </row>
+
+ <row>
+ <entry>doCollapse()</entry>
+
+ <entry>Collapses calendar
+ element</entry>
+ </row>
+
+ <row>
+ <entry>doExpand()</entry>
+
+ <entry>Expands calendar element</entry>
+ </row>
+
+ <row>
+ <entry>resetSelectedDate()</entry>
+
+ <entry>Clears a selected day
+ value</entry>
+ </row>
+
+ <row>
+ <entry>doSwitch()</entry>
+
+ <entry>Inverts a state for the popup
+ calendar</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Redefines calendar header. Related attribute is "showHeader"</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Redefines calendar footer. Related attribute is "showFooter"</entry>
+ </row>
+ <row>
+ <entry>optionalHeader</entry>
+ <entry>Defines calendar's optional header</entry>
+ </row>
+ <row>
+ <entry>optionalFooter</entry>
+ <entry>Defines calendar's optional footer</entry>
+ </row>
+ <row>
+ <entry>weekNumber</entry>
+ <entry>Redefines week number</entry>
+ </row>
+ <row>
+ <entry>weekDay</entry>
+ <entry>Redefines names of the week days. Related attributes are "weekDayLabels" and "weekDayLabelsShort"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn3">
+ <title>Classes names that define an input field and a button
+ appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-calendar-input </entry>
+
+ <entry>Defines styles for an input
+ field</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-button</entry>
+
+ <entry>Defines styles for a popup
+ button</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a days appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>rich-calendar-days</entry>
+
+ <entry>Defines styles for names of
+ working days in a
+ header</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-weekends</entry>
+
+ <entry>Defines styles for names of
+ weekend in a header</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-week</entry>
+
+ <entry>Defines styles for weeks
+ numbers</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-today</entry>
+
+ <entry>Defines styles for cell with a
+ current date</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-cell</entry>
+
+ <entry>Defines styles for cells with
+ days</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-holly</entry>
+
+ <entry>Defines styles for
+ holiday</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-select</entry>
+
+ <entry>Defines styles for a selected
+ day</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-hover</entry>
+
+ <entry>Defines styles for a hovered
+ day</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a popup element</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-calendar-popup</entry>
+
+ <entry>Defines styles for a popup
+ element</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-exterior</entry>
+
+ <entry>Defines styles for a popup
+ element exterior</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-tool</entry>
+
+ <entry>Defines styles for
+ toolbars</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-month</entry>
+
+ <entry>Defines styles for names of
+ months</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-header-optional</entry>
+
+ <entry>Defines styles for an optional
+ header</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-footer-optional</entry>
+
+ <entry>Defines styles for an optional
+ footer</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-header</entry>
+
+ <entry>Defines styles for a
+ header</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-footer</entry>
+
+ <entry>Defines styles for a
+ footer</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-boundary-dates</entry>
+
+ <entry>Defines styles for an active
+ boundary button</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-btn</entry>
+
+ <entry>Defines styles for an inactive
+ boundary date</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-toolfooter</entry>
+
+ <entry>Defines styles for a today
+ control date</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a popup element during quick month
+ and year selection</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-calendar-date-layout</entry>
+ <entry>Defines styles for a popup
+ element during quick year
+ selection</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-editor-layout-shadow</entry>
+ <entry>Defines styles for a
+ shadow</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-editor-btn</entry>
+ <entry>Defines styles for an inactive
+ boundary date</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-date-layout-split</entry>
+ <entry>Defines styles for a wrapper
+ <td> element for
+ month items near split
+ line</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-editor-btn-selected</entry>
+ <entry>Defines styles for an selected
+ boundary date</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-editor-btn-over</entry>
+ <entry>Defines styles for a boundary
+ date when pointer was moved
+ onto</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-editor-tool-over</entry>
+ <entry>Defines styles for a hovered
+ toolbar items</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-editor-tool-press</entry>
+ <entry>Defines styles for a pressed
+ toolbar items</entry>
+ </row>
+
+ <row>
+ <entry>rich-calendar-date-layout-ok</entry>
+ <entry>Defines styles for a
+ "ok"
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-date-layout-cancel</entry>
+ <entry>Defines styles for a
+ "cancel"
+ button</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a popup element during time selection</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-calendar-time-layout</entry>
+ <entry>Defines styles for a popup
+ element during time
+ selection</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-editor-layout-shadow</entry>
+ <entry>Defines styles for a
+ shadow</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-time-layout-fields</entry>
+ <entry>Defines styles for a wrapper
+ <td> element for
+ input fields and
+ buttons</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-spinner-input-container</entry>
+ <entry>Defines styles for a wrapper
+ <td> element for
+ an input field</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-spinner-input</entry>
+ <entry>Defines styles for an input
+ field</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-spinner-buttons</entry>
+ <entry>Defines styles for a wrapper
+ <td> element for
+ spinner buttons</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-spinner-up</entry>
+ <entry>Defines styles for a
+ "up"
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-spinner-down</entry>
+ <entry>Defines styles for a
+ "down"
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-time-layout-ok</entry>
+ <entry>Defines styles for a
+ "ok"
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-calendar-time-layout-cancel</entry>
+ <entry>Defines styles for a
+ "cancel"
+ button</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/calendar.jsf?c=calendar">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> usage and sources for the given example. </para>
+ <para>How to use JavaScript API see on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078301#...">RichFaces Users Forum</ulink>.</para>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_changeExpandListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_changeExpandListener.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_changeExpandListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,113 @@
+<section role="NotInToc" id="rich_changeExpandListener">
+ <title>
+ <
+ rich:changeExpandListener
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:changeExpandListener></property>
+ </emphasis>
+ represents an action listener method that is notified on an expand/collapse event on the node.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define some "changeExpand" listeners for the component</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:changeExpandListener></property>
+ </emphasis> is used as a nested tag with <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>
+ and <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> components.
+</para>
+ <para>
+Attribute <emphasis>
+ <property>"type"</property>
+ </emphasis> defines the fully qualified Java class name for the listener.
+ This class should implement <ulink url="&apidoc_framework;org/richfaces/event/TreeListenerEventsProducer.html#addChangeExpandListener(org.richfaces.event.NodeExpandedListener)">
+ <code>org.richfaces.event.NodeExpandedListener</code>
+ </ulink>interface.
+</para>
+
+ <para>
+ <emphasis role="bold">The typical variant of using:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:tree switchType="server" value="#{project.data}" var="item" nodeFace="#{item.type}">
+ <rich:changeExpandListener type="demo.ListenerBean"/>
+ ...
+ <!-- Tree nodes -->
+ ...
+</rich:tree>
+...
+</programlisting>
+
+ <para>
+ <emphasis role="bold">Java bean source:</emphasis>
+ </para>
+
+ <programlisting role="JAVA">package demo;
+import org.richfaces.event.NodeExpandedEvent;
+public class ListenerBean implements org.richfaces.event.NodeExpandedListener{
+ ...
+ public void processExpansion(NodeExpandedEvent arg0){
+ //Custom Developer Code
+ }
+ ...
+}
+...</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/changeExpandListener.html">Table of
+ <rich:changeExpandListener>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>listener-class</entry>
+ <entry>org.richfaces.event.NodeExpandedListener</entry>
+ </row>
+ <row>
+ <entry>event-class</entry>
+ <entry>org.richfaces.event.NodeExpandedEvent</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ChangeExpandListenerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_colorPicker.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,309 @@
+<section role="NotInToc" id="rich_colorPicker">
+ <title>
+ <
+ rich:colorPicker
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.1</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis>
+ component
+ lets you visually choose a color or define it in hex, RGB, or HSB input fields.
+ </para>
+ <figure>
+ <title>
+ Simple
+ <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis>
+ component
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/colorPicker_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Possibility to get color in hex, or RGB color models</para>
+ </listitem>
+ <listitem>
+ <para>Flat/inline representation</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> component allows you easily select a color or define it in hex, RGB, or HSB input
+ fields. There are two squares in the widget that help you to compare the currently selected
+ color and the already selected color. </para>
+ <para> The <property>
+ <emphasis>"value"</emphasis>
+ </property> attribute stores the selected color. </para>
+ <para> The value of the <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> component could be saved in hex or RGB color models. You can explicitly define a
+ color model in the <property>
+ <emphasis>"colorMode"</emphasis>
+ </property> attribute. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">
+...
+<rich:colorPicker value="#{bean.color}" colorMode="rgb" />
+...
+ </programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title> Usage of the <property>
+ <emphasis>"colorMode"</emphasis>
+ </property> attribute. </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/colorPicker_rgb.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> component has two representation states: flat and inline. With the help of the <property>
+ <emphasis>"flat"</emphasis>
+ </property> attribute you can define whether the component is rendered flat. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">
+...
+<rich:colorPicker value="#{bean.color}" flat="true" />
+...
+ </programlisting>
+
+ <para>The component specific event handler <property>
+ <emphasis>"onbeforeshow"</emphasis>
+ </property> captures the event which occurs before
+ the <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> widget is opened. The <property>
+ <emphasis>"onbeforeshow"</emphasis>
+ </property> attribute could be used in order to cancel this
+ event. See the example below:</para>
+ <programlisting role="XML">
+...
+<rich:colorPicker value="#{bean.color}" onbeforeshow="if (!confirm('Are you sure you want to change a color?')){return false;}" />
+...
+ </programlisting>
+
+ <para> The <property>
+ <emphasis>"showEvent"</emphasis>
+ </property> attribute defines the event that shows <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> widget. The default value is "onclick". </para>
+ <para> The <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> component allows to use the <emphasis>
+ <property>"icon"</property>
+ </emphasis> facet. </para>
+ <para> You can also customize <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> rainbow slider ( <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="images/colorPicker_arrows.png"/>
+ </imageobject>
+ </inlinemediaobject> ) with the help of the <property>
+ <emphasis>"arrows"</emphasis>
+ </property> facet. </para>
+ <programlisting role="XML">
+...
+<rich:colorPicker value="#{bean.color}">
+ <f:facet name="icon">
+ <h:graphicImage value="/pages/colorPicker_ico.png" />
+ </f:facet>
+ <f:facet name="arrows">
+ <f:verbatim>
+ <div style="width: 33px; height: 5px; border: 1px solid #bed6f8; background:none;" />
+ </f:verbatim>
+ </f:facet>
+</rich:colorPicker>
+...
+ </programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title> Usage of the <emphasis>
+ <property>"icon"</property>
+ </emphasis>, and <emphasis>
+ <property>"arrows"</property>
+ </emphasis> facets </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/colorPicker_facets.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/colorPicker.html">Table of
+ <rich:colorPicker>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ColorPicker</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlColorPicker</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ColorPicker</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ColorPickerRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ColorPickerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>arrows</entry>
+ <entry>Redefines colorPicker arrows</entry>
+ </row>
+ <row>
+ <entry>icon</entry>
+ <entry>Redefines colorPicker icon</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="colorPicker_cn_inline">
+ <title> Classes names for the representation of the input field and icon containing selected
+ color </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Selector name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>.rich-colorpicker-span input</entry>
+ <entry>Defines styles for the input field that contains selected color</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-icon</entry>
+ <entry>Defines styles for the icon</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="colorPicker_cn_widget">
+ <title>Classes names for the widget</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>.rich-colorpicker-ext</entry>
+ <entry>Defines styles for the wrapper <div> element of a widget</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-color</entry>
+ <entry>Defines styles for the color palette</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-current-color</entry>
+ <entry>Defines styles for the currently selected color</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-new-color</entry>
+ <entry>Defines styles for the already selected color</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-colors-input</entry>
+ <entry>Defines styles for the hex, RGB, and HSB input fileds</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="colorPicker_cn_buttons">
+ <title>Classes names for the buttons representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>.rich-colorpicker-submit</entry>
+ <entry>Defines styles for the "Apply" button</entry>
+ </row>
+ <row>
+ <entry>.rich-colorpicker-cancel</entry>
+ <entry>Defines styles for the "Cancel" button</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/colorPicker.jsf?c=col...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:colorPicker></property>
+ </emphasis> component usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_column.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_column.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_column.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,626 @@
+<section role="NotInToc" id="rich_column">
+ <title>
+ <
+ rich:column
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component for row rendering for a UIData component.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Completely skinned table rows and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine columns with the help of <emphasis>
+ <property>"colspan"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine rows with the help of <emphasis>
+ <property>"rowspan"</property>
+ </emphasis> and <emphasis>
+ <property>"breakBefore"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="sort">Sorting column values</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="filter">Filtering column values</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>To output a simple table, the <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> component is used the same way as the standard <emphasis role="bold">
+ <property><h:column></property>
+ </emphasis>, i.e. the following code on a page is used:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting 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>
+ <para>The result is:</para>
+ <figure>
+ <title>Generated <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Now, in order to group columns with text information into one row in one
+ column with a flag, use the <emphasis>
+ <property>"colspan"</property>
+ </emphasis> attribute, which is similar to an HTML one, specifying
+ that the first column contains 3 columns. In addition, it's
+ necessary to specify that the next column begins from the first row
+ with the help of the
+ <code>breakBefore="true"</code>.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting 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>
+ <para>As a result the following structure is rendered:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> modified with <emphasis>
+ <property>"colspan"</property>
+ </emphasis> and <emphasis>
+ <property>"breakbefore"</property>
+ </emphasis> attributes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The same way is used for <property>columns</property> grouping with the <emphasis>
+ <property>"rowspan"</property>
+ </emphasis> attribute that is similar to an HTML one responsible for
+ rows quantity definition occupied with the current one. The only thing
+ to add in the example is an instruction to move onto the next row for
+ each next after the second column.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting 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>
+ <para>As a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> generated with <emphasis>
+ <property>"rowspan"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Hence, additionally to a standard output of a particular row provided with
+ the <emphasis role="bold">
+ <property><h:column></property>
+ </emphasis> component, it becomes possible to group easily the rows
+ with special HTML attribute.</para>
+ <para>The columns also could be grouped in a particular way with the help of the
+ <emphasis role="bold">
+ <property><h:columnGroup></property>
+ </emphasis> component that is described in <link linkend="columnGroup">the following chapter</link>.</para>
+ <para>
+ <ulink url="http://wiki.jboss.org/wiki/DynamicColumns">In the Dynamic Columns Wiki article</ulink> you
+ can find additional information about dynamic columns.</para>
+ </section>
+ <section id="sortAndFilter">
+ <title>Sorting and Filtering</title>
+ <section id="sort">
+ <title>Sorting</title>
+ <para> In order to sort the columns you should use <emphasis>
+ <property>"sortBy"</property>
+ </emphasis> attribute that indicates what values to be
+ sorted.This attribute can be used only with the <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component.
+ In order to sort the column you should click on its
+ header. See the following example. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">
+ <f:facet name="header">
+ <h:outputText value="Sorting Example"/>
+ </f:facet>
+ <rich:column sortBy="#{cap.state}">
+ <f:facet name="header">
+ <h:outputText value="State Name"/>
+ </f:facet>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column sortBy="#{cap.name}">
+ <f:facet name="header">
+ <h:outputText value="State Capital"/>
+ </f:facet>
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ </rich:dataTable>
+</h:form>
+...</programlisting>
+ <para>This is result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> with <emphasis>
+ <property>"sortBy"</property>
+ </emphasis> attribute </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The <emphasis>
+ <property>"sortExpression"</property>
+ </emphasis> attribute defines a bean property which is used
+ for sorting of a column. This attribute can be used only with the <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component.
+ The following example is a example of the attribute usage.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:scrollableDataTable id="carList"
+ value="#{dataTableScrollerBean.allCars}" sortMode="single"
+ binding="#{dataTableScrollerBean.table}">
+ <rich:column id="make" sortExpression="#{cap.make}">
+ <f:facet name="header">
+ <h:outputText styleClass="headerText" value="Make" />
+ </f:facet>
+ <h:outputText value="#{category.make}" />
+ </rich:column>
+ <rich:column id="model">
+ <f:facet name="header">
+ <h:outputText styleClass="headerText" value="Model" />
+ </f:facet>
+ <h:outputText value="#{category.model}" />
+ </rich:column>
+ <rich:column id="price">
+ <f:facet name="header">
+ <h:outputText styleClass="headerText" value="Price" />
+ </f:facet>
+ <h:outputText value="#{category.price}" />
+ </rich:column>
+</rich:scrollableDataTable>
+...</programlisting>
+ <!-- <figure>
+ <title>The <emphasis>
+ <property>"sortExpression"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column7.png"
+ />
+ </imageobject>
+ </mediaobject>
+ </figure>-->
+ <para> The <emphasis>
+ <property>"selfSorted"</property>
+ </emphasis> attribute that would add the possibility of
+ automatic sorting by clicking the column header. Default
+ value is "true". In the example below the
+ second column is unavailable for sorting. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="State Flag"/>
+ </f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column sortBy="#{cap.state}" selfSorted="false">
+ <f:facet name="header">
+ <h:outputText value="State Name"/>
+ </f:facet>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+</rich:dataTable>
+...</programlisting>
+ <para>
+ <emphasis>
+ <property>"sortOrder"</property>
+ </emphasis> attribute is used for changing the sorting of
+ columns by means of external controls. </para>
+ <para>Possible values are:</para>
+ <itemizedlist>
+ <listitem>
+ <para> "ASCENDING" - column is
+ sorted in ascending </para>
+ </listitem>
+ <listitem>
+ <para> "DESCENDING" - column is
+ sorted in descending </para>
+ </listitem>
+ <listitem>
+ <para> "UNSORTED" - column
+ isn't sorted </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="300px">
+ <f:facet name="header">
+ <h:outputText value="Sorting Example"/>
+ </f:facet>
+ <rich:column sortBy="#{cap.state}" sortOrder="ASCENDING">
+ <f:facet name="header">
+ <h:outputText value="State Name"/>
+ </f:facet>
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column sortBy="#{cap.name}" sortOrder="DESCENDING">
+ <f:facet name="header">
+ <h:outputText value="State Capital"/>
+ </f:facet>
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ </rich:dataTable>
+</h:form>
+...</programlisting>
+ <para>Below you can see the result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> with <emphasis>
+ <property>"sortOrder"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column6.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> In the example above the first column is sorted in descending
+ order. But if recurring rows appear in the table the
+ relative second column are sorted in ascending order. </para>
+ <para>If the values of the columns are complex, the <emphasis>
+ <property>"sortOrder"</property>
+ </emphasis> attribute should point to a bean property containing the sort order.
+ See how it's done in the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?c=columns...">LiveDemo</ulink>
+ for <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis>.</para>
+ <para>You can customize the sorting's icon element using
+ "rich-sort-icon" class.</para>
+ <note>
+ <title>Note</title>
+ <para>
+ In order to sort a column with the values not in English you can add the <code>org.richfaces.datatableUsesViewLocale</code> context parameter in your web.xml.
+ Its value should be "true".
+ </para>
+ </note>
+ <!-- <para> The <emphasis>
+ <property>"sortPriority"</property>
+ </emphasis> attribute defines a set of column
+ <property>ids</property> in the order the columns could be
+ set. </para>
+ <para> If the columns sort order changed externally sort priorities
+ could be used to define which columns will be sorted first. </para> -->
+ <!--para>
+ Note that <emphasis><property>"sortPriority"</property></emphasis> attribute is defined in
+ the <emphasis role="bold"><property><rich:dataTable></property></emphasis> component!
+ </para-->
+ <note>
+ <title>Note:</title>
+ <para>
+ The <emphasis>
+ <property>"sortBy"</property>
+ </emphasis> and the <emphasis>
+ <property>"selfSorted"</property>
+ </emphasis> attributes used with the <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component.
+ Also the <emphasis>
+ <property>"selfSorted"</property>
+ </emphasis> can be used with the <emphasis role="bold">
+ <property><rich:extendedDataTable></property>
+ </emphasis>.
+ </para>
+ <para> The <emphasis>
+ <property>"sortable"</property>
+ </emphasis> and the <emphasis>
+ <property>"sortExpression"</property>
+ </emphasis> attributes used with the <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component.</para>
+ </note>
+ </section>
+
+ <section id="filter">
+ <title>Filtering</title>
+
+ <para> There are two ways to filter the column value: </para>
+ <itemizedlist>
+ <listitem>
+ <para> Using built-in filtering. It uses
+ <code>startsWith()</code>
+ function to make filtering. In this case
+ you need to define <emphasis>
+ <property>"filterBy"</property>
+ </emphasis> attribute at column you want
+ to be filterable. This attribute defines
+ iterable object property which is used
+ when filtering performed. </para>
+ <para> The <emphasis>
+ <property>"filterValue"</property>
+ </emphasis> attribute is used to get or
+ change current filtering value. It could
+ be defined with initial filtering value
+ on the page or as value binding to
+ get/change it on server. If the <emphasis>
+ <property>"filterValue"</property>
+ </emphasis> attribute isn't
+ empty from the beginning table is
+ filtered on the first rendering. </para>
+ <para> You can customize the input form using
+ "rich-filter-input"
+ CSS class. </para>
+ <para> In order to change filter event you could
+ use <emphasis>
+ <property>"filterEvent"</property>
+ </emphasis> attribute on column, e.g.
+ "onblur"(default
+ value). </para>
+ <!--para>
+ The <emphasis><property>"filterDefaultLabel"</property></emphasis> attribute defines the label that appears instead of input field.
+ </para-->
+ <para>Below you can see the example:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap" width="500px">
+ <rich:column filterBy="#{cap.state}" filterValue="#{filterName.filterBean}" filterEvent="onkeyup">
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column filterBy="#{cap.name}" filterEvent="onkeyup">
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+</rich:dataTable>
+...</programlisting>
+ <para> This is the result: </para>
+ <figure>
+ <title>Built-in filtering feature usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column8.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para> Using external filtering. In this case you
+ need to write your custom filtering
+ function or expression and define
+ controls. </para>
+ <para> The <emphasis>
+ <property>"filterExpression"</property>
+ </emphasis> attribute is used to define
+ expression evaluated to boolean value.
+ This expression checks if the object
+ satisfies filtering condition. </para>
+ <para> The <emphasis>
+ <property>"filterMethod"</property>
+ </emphasis> attribute is defined with
+ method binding. This method accepts on
+ Object parameter and return boolean
+ value. So, this method also could be
+ used to check if the object satisfies
+ filtering condition. The usage of this
+ attribute is the best way for
+ implementing your own complex business
+ logic. </para>
+ <para>See the following example:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap" id="table">
+ <rich:column filterMethod="#{filteringBean.filterStates}">
+ <f:facet name="header">
+ <h:inputText value="#{filteringBean.filterValue}" id="input">
+ <a4j:support event="onkeyup" reRender="table"
+ ignoreDupResponses="true" requestDelay="700" focus="input" />
+ </h:inputText>
+ </f:facet>
+ <h:outputText value="#{cap.state}" />
+ </rich:column>
+ <rich:column filterExpression="#{fn:containsIgnoreCase(cap.timeZone, filteringBean.filterZone)}">
+ <f:facet name="header">
+ <h:selectOneMenu value="#{filteringBean.filterZone}">
+ <f:selectItems value="#{filteringBean.filterZones}" />
+ <a4j:support event="onchange" reRender="table" />
+ </h:selectOneMenu>
+ </f:facet>
+ <h:outputText value="#{cap.timeZone}" />
+ </rich:column>
+</rich:dataTable>
+...</programlisting>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/column.html">Table of
+ <rich:column>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Column</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlColumn</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Column</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ColumnRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ColumnTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=column">Column</ulink> page at
+ RichFaces live demo for examples of component usage and their sources.</para>
+ <para>"
+ <ulink url="http://www.jboss.org/community/docs/DOC-9607">Using the "rendered" attribute of <rich:column></ulink>" article
+ in RichFaces cookbook at JBoss portal gives an example of code of the component usage case.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columnGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columnGroup.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columnGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,205 @@
+<section role="NotInToc" id="rich_columnGroup">
+ <title>
+ <
+ rich:columnGroup
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component combines columns in one row to organize complex subparts of a table.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:columnGroup></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/columnGroup_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Completely skinned table columns and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine columns and rows inside</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of strings with Ajax </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:columnGroup></property>
+ </emphasis> component combines columns set wrapping them into the <emphasis role="bold">
+ <property><tr></property>
+ </emphasis> element and outputting them
+ into one row. Columns are combined in a group the same way as when the <emphasis>
+ <property>"breakBefore"</property>
+ </emphasis> attribute is used for
+ columns to add a moving to the next rows, but the first variant is clearer from a source code. Hence, the
+ following simple examples are very same.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">
+ <rich:column colspan="3">
+ <f:facet name="header">State Flag</f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:columnGroup>
+ <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:columnGroup>
+</rich:dataTable>
+...
+</programlisting>
+ <para>And representation without a grouping:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist">
+ <rich:column colspan="3">
+ <f:facet name="header">State Flag</f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{cap.state}"/>
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+ <rich:column >
+ <h:outputText value="#{cap.timeZone}"/>
+ </rich:column>
+</rich:dataTable>
+....
+</programlisting>
+ <para>The result is:</para>
+ <figure>
+ <title>Generated <emphasis role="bold">
+ <property><rich:columnGroup></property>
+ </emphasis> component
+ with <emphasis>
+ <property>"breakBefore"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/columnGroup2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>It's also possible to use the component for output of complex headers in a table. For example adding
+ of a complex header to a facet for the whole table looks the following way:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<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>
+...
+</programlisting>
+ <para>Generated on a page as:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:columnGroup></property>
+ </emphasis>with complex headers</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/columnGroup3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/columnGroup.html">Table of
+ <rich:columnGroup>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ColumnGroup</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlColumnGroup</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ColumnGroup</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ColumnGroupRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ColumnGroupTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=colum...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:columnGroup></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columns.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columns.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_columns.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,423 @@
+<section role="NotInToc" id="rich_columns">
+ <title>
+ <
+ rich:columns
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> is a component, that allows you to create a <property>dynamic</property> set of columns from your model.</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/columns_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Dynamic tables creation</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine columns with the help of <emphasis>
+ <property>"colspan"</property>
+ </emphasis> and <emphasis>
+ <property>"breakBefore"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine rows with the help of <emphasis>
+ <property>"rowspan"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="sort">Sorting column values</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="filter">Filtering column values</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component gets a list from data model and outputs
+ corresponding set of columns inside <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> on a page. It is possible to use <emphasis>
+ <property>"header"</property>
+ </emphasis> and <emphasis>
+ <property>"footer"</property>
+ </emphasis> facets with <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component. </para>
+ <para> The <emphasis>
+ <property>"value"</property>
+ </emphasis> and <emphasis>
+ <property>"var"</property>
+ </emphasis> attributes are used to access the values of collection. </para>
+ <para>The simple example is placed below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
+ <rich:columns value="#{capitalsBean.labels}" var="col" index="index">
+ <f:facet name="header">
+ <h:outputText value="#{col.text}" />
+ </f:facet>
+ <h:outputText value="#{cap[index]}" />
+ <f:facet name="footer">
+ <h:outputText value="#{col.text}" />
+ </f:facet>
+ </rich:columns>
+</rich:dataTable>
+...</programlisting>
+ <para> The <emphasis>
+ <property>"columns"</property>
+ </emphasis> attribute defines the count of columns. </para>
+ <para> The <emphasis>
+ <property>"rowspan"</property>
+ </emphasis> attribute defines the number of rows to be displayed. If
+ the value of this attribute is zero, all remaining rows in the table
+ are displayed on a page. </para>
+ <para> The <emphasis>
+ <property>"begin"</property>
+ </emphasis> attribute contains the first iteration item. Note, that
+ iteration begins from zero. </para>
+ <para> The <emphasis>
+ <property>"end"</property>
+ </emphasis> attribute contains the last iteration item. </para>
+ <para> With the help of the attributes described below you can customize the
+ output, i.e. define which columns and how many rows appear on a page. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap">
+ <rich:columns value="#{capitalsBean.labels}" var="col" index="index" rowspan="0" columns="3" begin="1" end="2">
+ <f:facet name="header">
+ <h:outputText value="#{col.text}" />
+ </f:facet>
+ <h:outputText value="#{cap[index]}" />
+ </rich:columns>
+</rich:dataTable>
+...</programlisting>
+ <para> In the example below, columns from first to second and all rows are shown
+ in the <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> . </para>
+ <para>The result is:</para>
+ <figure>
+ <title> Generated <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> with columns from first to second and all rows </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/columns2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component does not prevent to use <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> . In the following example one column renders in any way
+ and another columns could be picked from the model. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{rowBean.rows}" var="row">
+ <rich:column>
+ <h:outputText value ="#{row.columnValue}"/>
+ </rich:column>
+ <rich:columns value="#{colBean.columns}" var="col">
+ <f:facet name="header">
+ <h:outputText value="#{col.header}"/>
+ </f:facet>
+ <h:outputText value="#{row.columnValue}"/>
+ <f:facet name="footer">
+ <h:outputText value="#{col.footer}"/>
+ </f:facet>
+ </rich:columns>
+</rich:dataTable>
+...</programlisting>
+ <para>
+ Now, you can use a few <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> together with <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis> within the one table:
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{dataTableScrollerBean.model}" var="model" width="500px" rows="5">
+ <f:facet name="header">
+ <h:outputText value="Cars Available"></h:outputText>
+ </f:facet>
+ <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">
+ <f:facet name="header">
+ <h:outputText value="#{columns.header}" />
+ </f:facet>
+ <h:outputText value="#{model[ind].model} " />
+ </rich:columns>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Price" />
+ </f:facet>
+ <h:outputText value="Price" />
+ </rich:column>
+ <rich:columns value="#{dataTableScrollerBean.columns}" var="columns" index="ind">
+ <f:facet name="header">
+ <h:outputText value="#{columns.header}" />
+ </f:facet>
+ <h:outputText value="#{model[ind].mileage}$" />
+ </rich:columns>
+</rich:dataTable>
+...
+ </programlisting>
+
+ <para> In order to group columns with text information into one row, use the <emphasis>
+ <property>"colspan"</property>
+ </emphasis> attribute, which is similar to an HTML one. In the
+ following example the third column contains 3 columns. In addition,
+ it's necessary to specify that the next column begins from
+ the first row with the help of the <code>breakBefore =
+ "true"</code> . </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{columns.data1}" var="data">
+ <rich:column>
+ <h:outputText value="#{column.Item1}" />
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{column.Item2}" />
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{column.Item3}" />
+ </rich:column>
+ <rich:columns columns="3" colspan="3" breakBefore="true">
+ <h:outputText value="#{data.str0}" />
+ </rich:columns>
+</rich:dataTable>
+...</programlisting>
+
+ <!--para>As a result the following structure is rendered:</para>
+ <figure>
+ <title><rich:column> modified with colspan and breakbefore attributes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure-->
+
+ <para> The same way is used for <property>columns</property> grouping with the <emphasis>
+ <property>"rowspan"</property>
+ </emphasis> attribute that is similar to an HTML. The only thing to
+ add in the example is an instruction to move onto the next row for
+ each next after the second column. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{columns.data1}" var="data">
+ <rich:columns columns="2" rowspan="3">
+ <h:outputText value="#{data.str0}" />
+ </rich:columns>
+ <rich:column>
+ <h:outputText value="#{column.Item1}" />
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{column.Item2}" />
+ </rich:column>
+ <rich:column breakBefore="true">
+ <h:outputText value="#{column.Item3}" />
+ </rich:column>
+</rich:dataTable>
+...
+</programlisting>
+
+ <!--para>As a result:</para>
+ <figure>
+ <title><rich:column> generated with rowspan attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/column4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure-->
+ <note>
+ <title>Note:</title>
+ <para> The <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> tag is initialized during components tree
+ building process. This process precedes page rendering at
+ "Render Response" JSF phase. To be
+ rendered properly the component needs all it variables to be
+ initialized while the components tree is being building. A
+ <emphasis>javax.servlet.jsp.JspTagException</emphasis>
+ occurs if <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> uses variables passed from other components, if
+ these variables are initialized during rendering. Thus, when
+ <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> is asking for such variables they do not already
+ exist. Use <property><c:forEach></property>
+ JSP standard tag as workaround. Compare two examples below. </para>
+ <para> This code calls the exception: </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{bean.data}" var="var">
+ <rich:columns value="#{var.columns}">
+ ...
+ </rich:columns>
+</rich:dataTable>
+...</programlisting>
+ <para> This code works properly: </para>
+ <programlisting role="XML">...
+<c:forEach items="#{bean.data}" var="var">
+ <rich:columns value="#{var.columns}">
+ ...
+ </rich:columns>
+</c:forEach>
+...</programlisting>
+ </note>
+
+
+ <note>
+ <title>Note:</title>
+ <para>Since 3.3.0GA <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> requires explicit definition of <emphasis>
+ <property>"id"</property>
+ </emphasis> for children components to ensure that decode process works properly.
+ The example of how you can define unique <emphasis>
+ <property>"id"</property>
+ </emphasis> for children component: </para>
+ <programlisting role="XML">...
+<rich:columns value="#{bean.columns}" var="col" index="ind" ... >
+ <h:inputText id="input#{ind}" value="">
+ <a4j:support id="support#{ind}" event="onchange" reRender="someId" />
+ </h:inputText>
+</rich:columns>
+...</programlisting>
+ <para>Only if <emphasis>
+ <property>"id"</property>
+ </emphasis> defined as shown above Ajax after onchange event will be processed as expected. </para>
+
+ </note>
+
+
+
+ <para>Sorting and filtering for the <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component works the same
+ as for <emphasis role="bold">
+ <property><rich:column></property>
+ </emphasis>. See the <link linkend="sortAndFilter">"Sorting and Filtering"</link> section.</para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/columns.html">Table of
+ <rich:columns>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Column</entry>
+ </row>
+ <!--row>
+ <entry>component-class</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry></entry>
+ </row-->
+ <row>
+ <entry>tag-class</entry>
+ <entry> org.richfaces.taglib.ColumnsTagHandler
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columns"> On the component LiveDemo page </ulink> you can found some additional information
+ for <emphasis role="bold">
+ <property><rich:columns></property>
+ </emphasis> component usage. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_comboBox.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_comboBox.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_comboBox.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,576 @@
+<section role="NotInToc" id="rich_comboBox">
+ <title>
+ <
+ rich:comboBox
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> is a component creates combobox element with built-in Ajax capability.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/comboBox_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Client-side suggestions</para>
+ </listitem>
+ <listitem>
+ <para>Browser like selection</para>
+ </listitem>
+ <listitem>
+ <para>Smart user-defined positioning</para>
+ </listitem>
+ <!--listitem>Possible to set the popup appearance delay through <emphasis><property>"showDelay"</property></emphasis>
+ or <emphasis><property>"minChars"</property></emphasis> attributes
+ </listitem-->
+ <listitem>
+ <para>Seam entity converter support</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis>
+ is a simplified suggestion box component, that provides input with client-side suggestions.
+ <!--
+ component consists of an <property>input field</property>, the <property>button</property> and the <property>popup list</property> of suggestions
+ attached to input. If you want to see the popup list you can press the <property>button</property> or type the first letter of suggested word in the <property>input field</property>.
+ -->
+
+ The component could be in two states:
+
+ <!-- NEED DESCRIPTION "HOW TO MANAGE THIS"-->
+
+ <itemizedlist>
+ <listitem>
+ <para>Default - only input and button is shown</para>
+ </listitem>
+ <listitem>
+ <para>Input, button and a popup list of suggestions attached to input is shown</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ There are two ways to get values for the popup list of suggestions:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>Using the <emphasis>
+ <property>"suggestionValues"</property>
+ </emphasis> attribute, that defines the suggestion collection</para>
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" />
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ Using the <emphasis role="bold">
+ <property><f:selectItem /></property>
+ </emphasis> or <emphasis role="bold">
+ <property><f:selectItems /></property>
+ </emphasis> JSF components.
+ </para>
+
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" valueChangeListener="#{bean.selectionChanged}">
+ <f:selectItems value="#{bean.selectItems}"/>
+ <f:selectItem itemValue="Oregon"/>
+ <f:selectItem itemValue="Pennsylvania"/>
+ <f:selectItem itemValue="Rhode Island"/>
+ <f:selectItem itemValue="South Carolina"/>
+</rich:comboBox>
+...</programlisting>
+ <note>
+ <title>Note:</title>
+ <para>
+ These JSF components consider only the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute for this component.
+ </para>
+ </note>
+ </listitem>
+ </itemizedlist>
+ <para> Popup list content loads at page render time. No additional requests could be performed on the popup calling.
+ </para>
+ <para>
+ The <emphasis>
+ <property> "value"</property>
+ </emphasis> attribute stores value from input after submit.
+ </para>
+ <para>
+ The <emphasis>
+ <property> "directInputSuggestions"</property>
+ </emphasis> attribute defines, how the first value from the suggested one appears in an input field.
+ If it's "true" the first value appears with the suggested part highlighted.
+ </para>
+
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" directInputSuggestions="true" />
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> with <emphasis>
+ <property> "directInputSuggestions"</property>
+ </emphasis> attribute.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/comboBox3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ The <emphasis>
+ <property> "selectFirstOnUpdate"</property>
+ </emphasis> attribute defines if the first value from suggested is selected in a popup list.
+ If it's "false" nothing is selected in the list before a user hovers some item with the mouse.
+ </para>
+
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" selectFirstOnUpdate="false" />
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> with <emphasis>
+ <property> "selectFirstOnUpdate"</property>
+ </emphasis> attribute.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/comboBox4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!--para>
+ The <emphasis><property> "filterNewValues"</property></emphasis> attribute defines the appearance of values in the list.
+ If it's "true" only the part of a list, which satisfies the prefix entered appears in a popup list.
+ If it's "false" all values appear in the popup list and the list is scrolled to the first value that satisfies the prefix.
+ </para-->
+ <para>
+ The <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis> attribute defines the default label of the input element. Simple example is placed below.
+ </para>
+
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" defaultLabel="Select a city..." />
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> with <emphasis>
+ <property> "defaultLabel"</property>
+ </emphasis> attribute.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/comboBox5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ With the help of the <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute you can disable the whole
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> component. See the following example.
+ </para>
+
+ <programlisting role="XML">...
+<rich:comboBox value="#{bean.state}" suggestionValues="#{bean.suggestions}" defaultLabel="Select a city..." disabled="true" />
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> with <emphasis>
+ <property> "disabled"</property>
+ </emphasis> attribute.</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/comboBox6.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ The <emphasis>
+ <property>"enableManualInput"</property>
+ </emphasis> attribute enables/disables input field, so when <code>enableManualInput = "false"</code>,
+ user can only pick the value manually and has no possibility to type in the value (default value is "false").
+ </para>
+ <!--para>
+ The <emphasis role="bold"><property><rich:comboBox></property></emphasis> component provides the possibility to use
+ specific event attribute <emphasis><property> "onlistcall"</property></emphasis> which is fired before the list opening.
+ </para-->
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> component provides to use
+ specific event attributes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "onlistcall"</property>
+ </emphasis>which is fired before the list opening and gives you a possibility to cancel list popup/update
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "onselect"</property>
+ </emphasis>which gives you a possibility to send Ajax request when item is selected
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:comboBox></property>
+ </emphasis> component allows to use sizes attributes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "listWidth"</property>
+ </emphasis> and <emphasis>
+ <property> "listHeight"</property>
+ </emphasis> attributes
+ specify popup list sizes with values in pixels
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "width"</property>
+ </emphasis> attribute customizes the size of input element with values in pixels.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <!-- <para>It's possible to handle events for comboBox from JavaScript code. A simplest example of usage JavaScript API is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:comboBox defaultLabel="Enter some value" id="comboBoxID">
+ ...
+ </rich:comboBox>
+...
+<h:commandButton value="Enable" onclick="#{rich:component('comboBoxID')}.enable(event)"/>
+...]]></programlisting> -->
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/comboBox.html">Table of
+ <rich:comboBox>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ComboBox</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlComboBox</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ComboBox</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.ComboBoxRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ComboBoxTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>showList()</entry>
+ <entry>Shows the popup list</entry>
+ </row>
+ <row>
+ <entry>hideList()</entry>
+ <entry>Hides the popup list</entry>
+ </row>
+ <row>
+ <entry> enable()</entry>
+ <entry> Enables the control for input</entry>
+ </row>
+ <row>
+ <entry> disable()</entry>
+ <entry>Disables the control for input</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="comboBoxC">
+ <title>Classes names that define popup list representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-combobox-shell</entry>
+ <entry>Defines styles for a wrapper <div> element of a list</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-list-position</entry>
+ <entry>Defines position of a list</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-list-decoration</entry>
+ <entry>Defines styles for a list</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-list-scroll</entry>
+ <entry>Defines styles for a list scrolling</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define font representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-combobox-font</entry>
+ <entry>Defines styles for a font</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-font-inactive</entry>
+ <entry>Defines styles for an inactive font</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-font-disabled</entry>
+ <entry>Defines styles for a disabled font</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define input field representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-combobox-input</entry>
+ <entry>Defines styles for an input field</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-input-disabled</entry>
+ <entry>Defines styles for an input field in disabled state</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-input-inactive</entry>
+ <entry>Defines styles for an inactive input field</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define item representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-combobox-item</entry>
+ <entry>Defines styles for an item</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-item-selected</entry>
+ <entry>Defines styles for a selected item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define button representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-combobox-button</entry>
+ <entry>Defines styles for a button</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-inactive</entry>
+ <entry>Defines styles for an inactive button</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-disabled</entry>
+ <entry>Defines styles for a button in disabled state</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-hovered</entry>
+ <entry>Defines styles for a hovered button</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-background</entry>
+ <entry>Defines styles for a button background</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-background-disabled</entry>
+ <entry>Defines styles for a disabled button background</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-background-inactive</entry>
+ <entry>Defines styles for an inactive button background</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-pressed-background</entry>
+ <entry>Defines styles for a pressed button background</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-icon</entry>
+ <entry>Defines styles for a button icon</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-icon-inactive</entry>
+ <entry>Defines styles for an inactive button icon</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-button-icon-disabled</entry>
+ <entry>Defines styles for a disabled button icon</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define shadow representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-combobox-shadow</entry>
+ <entry>Defines styles for a wrapper <div> element of a shadow</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-shadow-tl</entry>
+ <entry>Defines styles for a top-left element of a shadow</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-shadow-tr</entry>
+ <entry>Defines styles for a top-right element of a shadow</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-shadow-bl</entry>
+ <entry>Defines styles for a bottom-left element of a shadow</entry>
+ </row>
+ <row>
+ <entry>rich-combobox-shadow-br</entry>
+ <entry>Defines styles for a bottom-right element of a shadow</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/comboBox.jsf?c=comboBox">ComboBox page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_componentControl.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_componentControl.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_componentControl.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,386 @@
+<section role="NotInToc" id="rich_componentControl">
+ <title>
+ <
+ rich:componentControl
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> allows to call JavaScript API functions on components after defined events.</para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Management of components JavaScript API
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Customizable initialization variants
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Customizable activation events
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Possibility to pass parameters to the target component
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> is a command component, that allows to call JavaScript API function on some defined event.
+ Look at the example:
+ </para>
+ <programlisting role="XML">...
+<rich:componentControl attachTo="doExpandCalendarID" event="onclick" operation="Expand" for="ccCalendarID" />
+...
+</programlisting>
+ <para>
+ In other words it means "clicking on the component with ID <code>doExpandCalendarID</code> expands the component with ID <code>ccCalendarID</code>".
+ It can be said, that <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> makes interact two components with the help of JavaScript API function.
+ </para>
+ <para>
+ The ID of the component the event that invokes JavaScript API function is applied, is defined with <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute (see the exapmle above).
+ If <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute is not specified, the <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> is supposed to be attached to it's parent.
+ </para>
+
+ <programlisting role="XML"><h:commandButton value="Show Modal Panel">
+ <!--componentControl is attached to the commandButton-->
+ <rich:componentControl for="ccModalPanelID" event="onclick" operation="show"/>
+</h:commandButton></programlisting>
+ <para>
+ It is possible to invoke the <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> handler operation as usual JavaScript function.
+ For this purpose it is necessary to specify the name of the JS function with the help of the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="text/javascript">function func (event) {
+}</programlisting>
+ <programlisting role="XML"><rich:componentControl name="func" event="onRowClick" for="menu" operation="show" /></programlisting>
+
+ <para>
+ An important <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> feature, is that it allows transferring parameters, with the help of special attribute <emphasis>
+ <property>"params"</property>
+ </emphasis>:
+ </para>
+
+ <programlisting role="XML">...
+<rich:componentControl name="func" event="onRowClick" for="menu" operation="show" params="#{car.model}"/>
+...</programlisting>
+ <para>
+ The alternative way for parameters transferring uses <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> attribute.
+ As the code above, the following code will represent the same functionality:
+ </para>
+
+ <programlisting role="XML">...
+<rich:componentControl event="onRowClick" for="menu" operation="show">
+ <f:param value="#{car.model}" name="model"/>
+</rich:componentControl>
+...</programlisting>
+
+
+
+
+
+
+
+
+
+
+ <!-- In order to use the <emphasis role="bold"><property><rich:componentControl></property></emphasis> with another components you need to take the following steps:
+
+
+ </para>
+ <itemizedlist>
+ <listitem><para>Define a name of a function that is generated (definition is similar to a
+ definition of <emphasis role="bold">
+ <property><a4j:jsFunction></property>
+ </emphasis>). An "<code>event</code>" argument is passed to this function.</para></listitem>
+ </itemizedlist>
+ <para>An example is placed below:</para>
+ <programlisting role="XML"><![CDATA[...
+<rich:componentControl name="ffunction" for="comp_ID" operation="show"/>
+...
+]]></programlisting>
+ <para>According to this code a function with name <code>ffunction</code>
+ is generated. It is used in JavaScript code to trigger an operation on the target component
+ with defined <code>id="comp_ID"</code>.</para>
+ <para>The generated function is shown below:</para>
+ <programlisting role="JAVA"><![CDATA[function ffunction (event) {
+}
+]]></programlisting>
+ <itemizedlist>
+ <listitem><para>Attach to a parent component (usage is similar to <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> component).</para></listitem>
+ </itemizedlist>
+ <para>An example is placed below:</para>
+
+ <programlisting role="XML"><![CDATA[...
+<rich:modalPanel id="ccModalPanelID" onshow="alert(event.parameters.show)" onhide="alert(event.parameters.hide)">
+ <h:outputText value="#{bean.text}"/>
+</rich:modalPanel>
+<h:commandButton value="Show Modal Panel">
+ <rich:componentControl for="ccModalPanelID" event="onclick" disableDefault="true" operation="show">
+ <f:param name="show" value="componentControl work(show)"/>
+ <rich:componentControl/>
+</h:commandButton>
+...
+]]></programlisting>
+ <para>In the example the <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute contains value of an <property>id</property> of <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> component. The <emphasis>
+ <property>"operation"</property>
+ </emphasis> attribute contains a name of JavaScript API function. An <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute is used to trigger an operation defined with the <emphasis>
+ <property>"operation"</property>
+ </emphasis> attribute. A set of parameters is defined with <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis>. As an alternative, the <emphasis>
+ <property>"params"</property>
+ </emphasis> attribute can be used. Thus, one of main features is that <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> allows to transfer parameters. The <emphasis>
+ <property>"disableDefault"</property>
+ </emphasis> attribute with "true" value is used instead
+ of <code>onclick="return false;"</code> attribute for <emphasis role="bold">
+ <property><h:commandButton></property>
+ </emphasis> to avoid a problem with form submit and <property>modalPanel</property> showing.</para>
+ <itemizedlist>
+ <listitem><para>Attach with <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute.</para></listitem>
+ </itemizedlist>
+ <para>An example is placed below:</para>
+
+ <programlisting role="XML"><![CDATA[...
+<rich:calendar popup="#{componentControl.calendarPopup}" id="ccCalendarID" />
+ ...
+<f:verbatim>
+ <a href="#" id="doExpandCalendarID">Calendar (nextYear)</a>
+</f:verbatim>
+<rich:componentControl attachTo="doExpandCalendarID" for="ccCalendarID" event="onclick" disableDefault="true" operation="nextYear" />
+...
+]]></programlisting>
+ <para>In the example the <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute contais a value of an <property>id</property> of <emphasis role="bold"><property><a></property></emphasis> element.
+ The <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute contains value of an <property>id</property> of <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis> component. The <emphasis>
+ <property>"operation"</property>
+ </emphasis> attribute contains a name of JavaScript API function. Thus, clicking on the link
+ represents the next year on the calendar.
+ </para> -->
+
+
+
+
+ <para>
+ With the help of the <emphasis>
+ <property>"attachTiming"</property>
+ </emphasis> attribute you can define the page loading phase when
+ <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> is attached to source component. Possible values are:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>immediate</code> — attached during execution of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> script
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onavailable</code> — attached after the target component is initialized
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>onload</code> — attached after the page is loaded
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> interacts with such components as:
+
+<emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:modalPanel ></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:calendar></property>
+ </emphasis>
+
+ </para>
+ <para>
+ In order to use <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> with another component you should place the id of this component into <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute field.
+ All operations with defined component you can find in the JavaScript API section of defined component.
+ </para>
+
+ <programlisting role="XML"><h:form>
+ <rich:toolTip id="toolTip" mode="ajax" value="and then just touch me." direction="top-right" />
+</h:form>
+<h:commandButton id="ButtonID" value="Push me">
+ <rich:componentControl attachTo="ButtonID" event="onmouseover" operation="show" for="toolTip" />
+</h:commandButton></programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is shown with the help of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis>.
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/componentControl_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!--para>One more example of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> usage is placed below:</para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:panelMenu id="ccContextMenuPanelMenuID">
+ <h:outputText value="click text" />
+ </rich:panelMenu>
+ <rich:contextMenu id="ccContextMenuID" submitMode="ajax">
+ <rich:menuItem icon="/pics/header.png" value="tab1" reRender="cmInfoID">
+ <f:param name="cmdParam" value="menu" />
+ </rich:menuItem>
+ <rich:menuSeparator />
+ <rich:menuItem icon="/pics/info.png" value="a" reRender="cmInfoID">
+ <f:param name="cmdParam" value="a" />
+ </rich:menuItem>
+ <rich:menuItem icon="/pics/info.png" value=" b" reRender="cmInfoID">
+ <f:param name="cmdParam" value="b" />
+ </rich:menuItem>
+ <rich:menuItem icon="/pics/info.png" value="c" reRender="cmInfoID">
+ <f:param name="cmdParam" value="c" />
+ </rich:menuItem>
+ </rich:contextMenu>
+ <rich:componentControl event="oncontextmenu" attachTo="ccContextMenuPanelMenuID" for="ccContextMenuID" disableDefault="true" operation="Show" />
+...
+]]></programlisting-->
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/componentControl.html">Table of
+ <rich:componentControl>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.ComponentControl</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlComponentControl</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.ComponentControl</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.ComponentControlRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.ComponentControlTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/componentControl.jsf?...">ComponentControl page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ <para>
+ Information on JSF <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> component You can find at <ulink url="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/tlddocs/f/param.html"><f:param> TLD reference</ulink> in Java Server Faces technology section at Sun portal.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_contextMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_contextMenu.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_contextMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,561 @@
+<section role="NotInToc" id="rich_contextMenu">
+ <title>
+ <
+ rich:contextMenu
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component is used for creation of multilevelled context menus that are activated after defined events like <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>, <emphasis>
+ <property>"onclick"</property>
+ </emphasis> etc.
+ The component could be applied to any element on the page.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/contextMenu_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oncontextmenu"</property>
+ </emphasis> event support</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ <listitem>
+ <para>Pop-up appearance event customization</para>
+ </listitem>
+ <listitem>
+ <para>Usage of shared instance of a menu on a page</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> is a support-like component. Context menu itself is an invisible panel that
+ appears after a particular client-side event (<emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>, <emphasis>
+ <property>"onclick"</property>
+ </emphasis>, etc.) occurred on a
+ parent component. The event is defined with an <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute. The component uses <emphasis>
+ <property>"oncontextmenu"</property>
+ </emphasis> event by default to call a context menu by clicking on the right mouse
+ button.</para>
+
+ <para>
+ <property>
+ <link linkend="menuGroup"><rich:menuGroup></link>
+ </property>, <property>
+ <link linkend="menuItem"><rich:menuItem></link>
+ </property> and <property>
+ <link linkend="menuSeparator"><rich:menuSeparator></link>
+ </property> components
+ can be used as nested elements for <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis>in the same way as for <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis>.
+ </para>
+ <para>
+ By default, the <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> disables right mouse click on a page in the context menu area only.
+ But if you want to disable browser's context menu completely you should set the <emphasis>
+ <property>"disableDefaultMenu"</property>
+ </emphasis> attribute value to "true".
+ </para>
+ <para>
+ If <emphasis>
+ <property>"attached"</property>
+ </emphasis> value is "true" (default value), component is attached to the parent component or to the component,
+ which <emphasis>
+ <property>"id"</property>
+ </emphasis> is specified in the <emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute:
+ </para>
+
+ <programlisting role="XML"><rich:contextMenu event="oncontextmenu" attachTo="pic1" submitMode="none">
+ <rich:menuItem value="Zoom In" onclick="enlarge();" id="zin"/>
+ <rich:menuItem value="Zoom Out" onclick="decrease();" id="zout"/>
+</rich:contextMenu>
+<h:panelGrid columns="1" columnClasses="cent">
+ <h:panelGroup id="picture">
+ <h:graphicImage value="/richfaces/jQuery/images/pic1.png" id="pic"/>
+ </h:panelGroup>
+</h:panelGrid>
+<h:panelGrid columns="1" columnClasses="cent">
+ <h:panelGroup id="picture1">
+ <h:graphicImage value="/richfaces/jQuery/images/pic2.png" id="pic1"/>
+ </h:panelGroup>
+</h:panelGrid></programlisting>
+ <para>The <code>"enlarge()"</code> and
+ <code>"decrease()"</code> functions definition is placed
+ below.</para>
+ <programlisting role="JAVA"><script type="text/javascript">
+ function enlarge(){
+ document.getElementById('pic').width=document.getElementById('pic').width*1.1;
+ document.getElementById('pic').height=document.getElementById('pic').height*1.1;
+ }
+ function decrease(){
+ document.getElementById('pic').width=document.getElementById('pic').width*0.9;
+ document.getElementById('pic').height=document.getElementById('pic').height*0.9;
+ }
+</script></programlisting>
+
+ <para>In the example a picture zooming possibility with <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component usage was shown. The picture is placed on the <emphasis role="bold">
+ <property><h:panelGroup></property>
+ </emphasis> component. The <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component is not nested to <emphasis role="bold">
+ <property><h:panelGroup></property>
+ </emphasis> and has a value of the<emphasis>
+ <property>"attachTo"</property>
+ </emphasis> attribute defined as <code>"pic1"</code>. Thus,
+ the context menu is attached to the component, which
+ <emphasis>
+ <property>"id"</property>
+ </emphasis> is <code>"pic1"</code>.
+ The context menu has two items to zoom in (zoom out) a picture by <emphasis>
+ <property>"onclick"</property>
+ </emphasis> event.
+ For earch item corresponding JavaScript function is defined to provide necessary action
+ as a result of the clicking on it. For the menu is defined an <emphasis>
+ <property>"oncontextmenu"</property>
+ </emphasis> event to call the context menu on a right click mouse event.</para>
+
+ <para>In the example the context menu is defined for the parent <emphasis role="bold">
+ <property><h:panelGroup></property>
+ </emphasis> component with a value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute equal to "<code>picture</code>" You
+ should be careful with such definition, because a client context menu is looked for a
+ DOM element with a client Id of a parent component on a server. If a parent component
+ doesn't encode an Id on a client, it can't be found by the <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> and it's attached to its closest parent in a DOM tree.</para>
+
+ <para> If the <emphasis>
+ <property>"attached"</property>
+ </emphasis> attribute has "false" value,
+ component activates via JavaScript API with assistance of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis>. An example is placed below.</para>
+ <para id="ex">
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><h:form id="form">
+ <rich:contextMenu attached="false" id="menu" submitMode="ajax">
+ <rich:menuItem ajaxSingle="true">
+ <b>{car} {model}</b> details
+ <a4j:actionparam name="det" assignTo="#{ddmenu.current}" value="{car} {model} details"/>
+ </rich:menuItem>
+ <rich:menuGroup value="Actions">
+ <rich:menuItem ajaxSingle="true">
+ Put <b>{car} {model}</b> To Basket
+ <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Put {car} {model} To Basket"/>
+ </rich:menuItem>
+ <rich:menuItem value="Read Comments" ajaxSingle="true">
+ <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Read Comments"/>
+ </rich:menuItem>
+ <rich:menuItem ajaxSingle="true">
+ Go to <b>{car}</b> site
+ <a4j:actionparam name="bask" assignTo="#{ddmenu.current}" value="Go to {car} site"/>
+ </rich:menuItem>
+ </rich:menuGroup>
+ </rich:contextMenu>
+
+ <h:panelGrid columns="2">
+ <rich:dataTable value="#{dataTableScrollerBean.tenRandomCars}" var="car" id="table" onRowMouseOver="this.style.backgroundColor='#F8F8F8'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" rowClasses="cur">
+ <rich:column>
+ <f:facet name="header">Make</f:facet>
+ <h:outputText value="#{car.make}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">Model</f:facet>
+ <h:outputText value="#{car.model}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">Price</f:facet>
+ <h:outputText value="#{car.price}" />
+ </rich:column>
+ <rich:componentControl event="onRowClick" for="menu" operation="show">
+ <f:param value="#{car.model}" name="model"/>
+ <f:param value="#{car.make}" name="car"/>
+ </rich:componentControl>
+ </rich:dataTable>
+ <a4j:outputPanel ajaxRendered="true">
+ <rich:panel>
+ <f:facet name="header">Last Menu Action</f:facet>
+ <h:outputText value="#{ddmenu.current}"></h:outputText>
+ </rich:panel>
+ </a4j:outputPanel>
+ </h:panelGrid>
+</h:form></programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>The <emphasis>
+ <property>"attached"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/contextMenu2.png" scalefit="1"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the example the context menu is activated (by clicking on the left mouse button) on
+ the table via JavaScript API with assistance of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis>. The attribute <emphasis>
+ <property>"for"</property>
+ </emphasis> contains a value of the <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> Id. For menu appearance Java Script API function
+ <code>"show()"</code> is used. It is defined with <emphasis>
+ <property>"operation"</property>
+ </emphasis> attribute for the <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis> component. Context menu is recreated after the every call on a client and
+ new {car} and {model} values are inserted in it. In the example for a menu customization
+ macrosubstitutions were used.</para>
+
+ <para>The <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component can be defined once on a page and can be used as shared for
+ different components (this is the main difference from the <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> component). It's necessary to define it once on a page (as it was
+ shown in the example <link linkend="ex">above</link>) and activate it on required
+ components via JavaScript API with assistance of <emphasis role="bold">
+ <property><rich:componentControl></property>
+ </emphasis>.</para>
+
+ <para>The <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis>
+ <emphasis>
+ <property>"submitMode"</property>
+ </emphasis> attribute can be set to three possible parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> — default value, uses regular form submition request;</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code> — Ajax submission is used for switching;</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code> — neither <code>Server</code> nor <code>Ajax</code> is used.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The <emphasis>
+ <property>"action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> item's attributes are ignored. Menu items don't fire any submits
+ themselves. The behavior is fully defined by the components nested inside items.</para>
+
+ <note>
+ <title>Notes:</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ When nesting <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> into JSF <emphasis role="bold">
+ <property><h:outputText></property>
+ </emphasis>,
+ specify an <code>id</code> for <emphasis role="bold">
+ <property><h:outputText></property>
+ </emphasis>, otherwise, do not nest the <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> to make it work properly.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ As the <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> component doesn't provide its own form,
+ use it between <emphasis role="bold">
+ <property><h:form></property>
+ </emphasis> and <emphasis role="bold">
+ <property></h:form></property>
+ </emphasis> tags.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </note>
+
+
+ <!-- <para>It's possible to handle events for contextMenu from JavaScript code. A simplest example of usage JavaScript API is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:contextMenu ... id="cmID">
+ ...
+ </rich:contextMenu>
+ ...
+<h:commandButton value="Show" onclick="#{rich:component('cmID')}.show(event)"/>
+...]]></programlisting> -->
+
+ <!-- Will be done for latest version -->
+ <!--para> It's possible to define the direction for list appear in the <emphasis>
+ <property>"direction"</property>
+ </emphasis>attribute. If the accordance of the popup corner to corner of the label isn't
+ set <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute must set next accordances: </para>
+ <itemizedlist>
+ <listitem>
+ <para>top-left - a menu drops to the top and left</para>
+ </listitem>
+
+ <listitem>
+ <para>top-right - a menu drops to the top and right</para>
+ </listitem>
+
+ <listitem>
+ <para>bottom-left - a menu drops to the bottom and left</para>
+ </listitem>
+
+ <listitem>
+ <para>bottom-right - a menu drops to the bottom and right</para>
+ </listitem>
+
+ <listitem>
+ <para>auto(default) - smart positioning activation</para>
+ </listitem>
+ </itemizedlist>
+ <para><emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis> provides <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> attribute to set the point on the label element to connect popup. Possible
+ values are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>tr - a menu is attached to the top-right point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>tl - a menu is attached to the top-left point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>br - a menu is attached to the bottom-right point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>bl - a menu is attached to the bottom-left point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>auto(default) - smart positioning activation</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In order to set the offset for the menu popup relatively to label, you can use <emphasis>
+ <property>"horizontalOffset"</property>
+ </emphasis> and <emphasis>
+ <property>"verticalOffset"</property>
+ </emphasis> attributes. Values can be negative.</para-->
+
+ <!-- For menuItem, not for contexMenu -->
+ <!--para><property>menuItem</property> provides <emphasis>
+ <property>"submitMode"</property>
+ </emphasis> attribute to define the way of submission. Possible values : <itemizedlist>
+ <listitem>
+ <para>Server (default)</para>
+ </listitem>
+ </itemizedlist>
+ <para>The standard form submission is performed and the page is completely refreshed.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Ajax</para>
+ </listitem>
+ </itemizedlist>
+ <para>An Ajax form submission is performed, and specified elements in the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute are rerendered.</para>
+ <itemizedlist>
+ <listitem>
+ <para>None</para>
+ </listitem>
+ </itemizedlist>
+ <para> The <emphasis>
+ <property>"action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> item's attributes are ignored. Menu items don't fire any submits
+ themselves. The behavior is fully defined by the components nested inside items.</para>
+ <template
+ <para>emphasis role="bold">
+ <property><contextMenu></property>
+ </emphasis> could not be generated for every component where it's defined. Templating could
+ be used instead. So only representation data could be loaded from server. And markup
+ could be evaluated on client side. So it's should accept macrosubstitutions like
+ {value} </para>
+
+ </para-->
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/contextMenu.html">Table of
+ <rich:contextMenu>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ContextMenu</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.ContextMenu</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ContextMenu</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DropDownMenuRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ContextMenuTagHandler</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ <entry>Apply to</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>hide()</entry>
+ <entry>Hides component or group</entry>
+ <entry>Component, group</entry>
+ </row>
+ <row>
+ <entry>show(event, context)</entry>
+ <entry>Shows component or group</entry>
+ <entry>Component, group</entry>
+ </row>
+ <!--row>
+ <entry>Enable()</entry>
+ <entry>Enable component, item, group</entry>
+ <entry>Component, Item, Group</entry>
+ </row>
+ <row>
+ <entry>Disable()</entry>
+ <entry>Disable component, item or group</entry>
+ <entry>Component, Item, Group</entry>
+ </row-->
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="cMC">
+ <title>Classes names that define the contextMenu element</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-list-border</entry>
+ <entry>Defines styles for borders</entry>
+ </row>
+ <row>
+ <entry>rich-menu-list-bg</entry>
+ <entry>Defines styles for a general background list</entry>
+ </row>
+ <row>
+ <entry>rich-menu-list-strut</entry>
+ <entry>Defines styles for a wrapper <div> element for a strut
+ of a popup list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/contextMenu.jsf?c=con...">ContextMenu page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataDefinitionList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,201 @@
+<section role="NotInToc" id="rich_dataDefinitionList">
+ <title>
+ <
+ rich:dataDefinitionList
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component to render definition lists that allows choosing data from a model
+ and obtains built-in support of Ajax updates.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataDefinitionList_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Completely skinned table rows and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of rows with Ajax</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to receive values dynamically from a model</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component allows to generate a definition list from a model.</para>
+ <para>The component has the <emphasis>
+ <property>"term"</property>
+ </emphasis> facet, which corresponds to the <emphasis>
+ <property>"type"</property>
+ </emphasis> parameter for the <emphasis role="bold">
+ <property><dt></property>
+ </emphasis> HTML element.</para>
+ <para>Here is an example:</para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataDefinitionList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" first="4" title="Cars">
+ <f:facet name="term">
+ <h:outputText value="#{car.make} #{car.model}"></h:outputText>
+ </f:facet>
+ <h:outputText value="Price:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.price}" /><br/>
+ <h:outputText value="Mileage:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.mileage}" /><br/>
+ </rich:dataDefinitionList>
+</h:form>
+...
+</programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component with <emphasis>
+ <property>"term"</property>
+ </emphasis> facet</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataDefinitionList2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the example the <emphasis>
+ <property>"rows"</property>
+ </emphasis> attribute limits a number of output elements of the list.</para>
+
+ <para>The <emphasis>
+ <property>"first"</property>
+ </emphasis> attribute defines the first element for output. <emphasis>
+ <property>"title"</property>
+ </emphasis> is used for a popup title.</para>
+
+ <para>The <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component could be partially updated with Ajax. The <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute allows to define row keys that are updated after an Ajax request, you need to pass an array with key (lines) of the list that you want to be updated after the Ajax request is executed.</para>
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataDefinitionList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
+ binding="#{listBean.dataList}" id="list">
+ ...
+</rich:dataDefinitionList>
+...
+<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
+...
+</programlisting>
+
+ <para> In the example the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> component. As a result the component is updated after an Ajax request.</para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataDefinitionList.html">Table of
+ <rich:dataDefinitionList>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DataDefinitionList</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDataDefinitionList</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataDefinitionList</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataDefinitionListRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DataDefinitionListTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_dDL">
+ <title>Classes names that define a list appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-deflist</entry>
+ <entry>Defines styles for an html <dl> element</entry>
+ </row>
+ <row>
+ <entry>rich-definition</entry>
+ <entry>Defines styles for an html <dd> element</entry>
+ </row>
+ <row>
+ <entry>rich-definition-term</entry>
+ <entry>Defines styles for an html <dt> element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataD...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dataDefinitionList></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataFilterSlider.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataFilterSlider.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataFilterSlider.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,168 @@
+<section role="NotInToc" id="rich_dataFilterSlider">
+ <title>
+ <
+ rich:dataFilterSlider
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A slider-based action component is used for filtering table data.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataFilterSlider></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataFilterSlider_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Filter any UIData based component in dependency on its child's values</para>
+ </listitem>
+ <listitem>
+ <para>Fully skinnable control and input elements</para>
+ </listitem>
+ <listitem>
+ <para>Optional value text field with an attribute-managed position</para>
+ </listitem>
+ <listitem>
+ <para>Optional disablement of the component on a page</para>
+ </listitem>
+ <listitem>
+ <para>Optional toolTip to display the current value while a handle is dragged</para>
+ </listitem>
+ <listitem>
+ <para>Dragged state is stable after the mouse moves</para>
+ </listitem>
+ <listitem>
+ <para>Optional manual input possible if a text input field is present</para>
+ </listitem>
+ <listitem>
+ <para>Validation of manual input</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property>dataFilterSlider</property>
+ </emphasis> component is bound to some UIData component using a <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute and filters data in a table. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataFilterSlider sliderListener="#{mybean.doSlide}"
+ startRange="0"
+ endRange="50000"
+ increment="10000"
+ handleValue="1"
+ for="carIndex"
+ forValRef="inventoryList.carInventory"
+ filterBy="getMileage" />
+...
+<h:dataTable id="carIndex">
+ ...
+</h:dataTable>
+...</programlisting>
+ <para>In this example other two attributes are used for filtering:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"forValRef"</property>
+ </emphasis> is a string which is used in a value attribute of the target UIData component.
+ It's designed for resetting the UIData component back to the original list provided
+ by a backing bean. </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"filterBy"</property>
+ </emphasis> is a getter of an object member that is to be compared to a slider value.
+ It's a value that is used in results filtering. </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <emphasis>
+ <property>"handleValue"</property>
+ </emphasis> is an attribute for keeping the current handle position on the
+ <property>dataFilterSlider</property> component. Based on the current value, appropriate
+ values obtained from a getter method defined in <emphasis>
+ <property>"filterBy"</property>
+ </emphasis> are filtered.</para>
+ <para>One more important attribute is a <emphasis>
+ <property>"storeResults"</property>
+ </emphasis> one that allows the <property>dataFilterSlider</property> component to keep UIData
+ target object in session.</para>
+ <para>If it's necessary the component submits a form on event of a handle state
+ changing, use the <emphasis>
+ <property>"submitOnSlide"</property>
+ </emphasis> attribute. When the attribute definition is <code>"true"</code>, submission on this event is
+ defined.</para>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the<link linkend="process"> "Decide what to process " </link> guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataFilterSlider.html">Table of
+ <rich:dataFilterSlider>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.dataFilterSlider</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDataFilterSlider</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataFilterSlider</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataFilterSliderRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.dataFilterSliderTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataFilterSlider.jsf?...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dataFilterSlider></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataGrid.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataGrid.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataGrid.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,218 @@
+<section role="NotInToc" id="rich_dataGrid">
+ <title>
+ <
+ rich:dataGrid
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component to render data as a grid that allows choosing data from a model
+ and obtains built-in support of Ajax updates.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataGrid></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataGrid_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>A completely skinned table and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of rows with Ajax</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to receive values dynamically from a model</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The component takes a list from a model and outputs it the same way as with <emphasis role="bold">
+ <property><h:panelGrid></property>
+ </emphasis> for inline data. To define grid properties and styles, use the same definitions as
+ for <emphasis role="bold">
+ <property><h:panelGrid></property>.</emphasis>
+ </para>
+ <para>The component allows to:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Use <emphasis>
+ <property>"header"</property>
+ </emphasis> and <emphasis>
+ <property>"footer"</property>
+ </emphasis> facets for output</para>
+ </listitem>
+ <listitem>
+ <para>Limit number of output elements (<emphasis>
+ <property>"elements"</property>
+ </emphasis> attribute) and define first element for output (<emphasis>
+ <property>"first"</property>
+ </emphasis> attribute)</para>
+ </listitem>
+ <listitem>
+ <para>Bind pages with <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> component</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:panel style="width:150px;height:200px;">
+ <h:form>
+ <rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car" columns="2" elements="4" first="1">
+ <f:facet name="header">
+ <h:outputText value="Car Store"></h:outputText>
+ </f:facet>
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="#{car.make} #{car.model}"></h:outputText>
+ </f:facet>
+ <h:panelGrid columns="2">
+ <h:outputText value="Price:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.price}"/>
+ <h:outputText value="Mileage:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.mileage}"/>
+ </h:panelGrid>
+ </rich:panel>
+ <f:facet name="footer">
+ <rich:datascroller></rich:datascroller>
+ </f:facet>
+ </rich:dataGrid>
+ </h:form>
+</rich:panel>
+...
+</programlisting>
+ <para>This is a result:</para>
+
+ <figure>
+ <title>Component usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataGrid2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The component was created basing on the <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute allows to define row keys that are updated after an Ajax request.</para>
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataGrid value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
+ binding="#{listBean.dataGrid}" id="grid" elements="4" columns="2">
+ ...
+</rich:dataGrid>
+...
+<a4j:commandButton action="#{listBean.action}" reRender="grid" value="Submit"/>
+...</programlisting>
+
+ <para> In the example <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:dataGrid></property>
+ </emphasis> component. As a result the component is updated after an Ajax request.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataGrid.html">Table of
+ <rich:dataGrid>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DataGrid</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDataGrid</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataGrid</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataGridRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DataGridTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ <row>
+ <entry>caption</entry>
+ <entry>Defines the caption content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataGrid.jsf?c=dataGrid">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dataGrid></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataList.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,213 @@
+<section role="NotInToc" id="rich_dataList">
+ <title>
+ <
+ rich:dataList
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component to render unordered lists that allows choosing data from a model
+ and obtains built-in support of Ajax updates.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataList_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>A completely skinned list and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of rows with Ajax</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to receive values dynamically from a model</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component allows to generate a list from a model.</para>
+ <para>The component has the <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute, which corresponds to the <emphasis>
+ <property>"type"</property>
+ </emphasis> parameter for the <emphasis role="bold">
+ <property><ul></property>
+ </emphasis> HTML element and defines a marker type. Possible values for <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute are: "disc",
+ "circle",
+ "square".</para>
+ <para>Here is an example:</para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" type="disc" title="Car Store">
+ <h:outputText value="#{car.make} #{car.model}"/><br/>
+ <h:outputText value="Price:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.price} "/><br/>
+ <h:outputText value="Mileage:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.mileage} "/><br/>
+ </rich:dataList>
+</h:form>
+...
+</programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component with <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataList2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In the example the <emphasis>
+ <property>"rows"</property>
+ </emphasis> attribute limits a number of output elements of the list.</para>
+
+ <para>The <emphasis>
+ <property>"first"</property>
+ </emphasis> attribute defines the first element for output. <emphasis>
+ <property>"title"</property>
+ </emphasis> is used for a popup title. See the picture below:</para>
+
+ <figure>
+ <title>The <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component with <emphasis>
+ <property>"title"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataList3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis>
+ component could be partially updated with
+ Ajax. The <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute allows to define row keys that are updated after an Ajax request.</para>
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
+ binding="#{listBean.dataList}" id="list" rows="5" type="disc">
+ ...
+</rich:dataList>
+...
+<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
+...
+</programlisting>
+
+ <para> In the example <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains the value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> component. As a result the component is updated after an Ajax request.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataList.html">Table of
+ <rich:dataList>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DataList</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDataList</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataList</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataListRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DataListTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="dataLC">
+ <title>Classes names that define a list appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-datalist</entry>
+ <entry>Defines styles for an html <ul> element</entry>
+ </row>
+ <row>
+ <entry>rich-list-item</entry>
+ <entry>Defines styles for an html <li> element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataList">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dataList></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataOrderedList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataOrderedList.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataOrderedList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,255 @@
+<section role="NotInToc" id="rich_dataOrderedList">
+ <title>
+ <
+ rich:dataOrderedList
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component to render ordered lists that allows choosing data from a model
+ and obtains built-in support of Ajax updates.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataOderedList></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataOrderedList_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>A completely skinned list and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of rows with Ajax</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to receive values dynamically from a model</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:dataOrderedList></property>
+ </emphasis>
+ component allows to generate an ordered list from a model.
+ </para>
+ <para>
+ The component has the
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ attribute, which corresponds to the
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ parameter for the
+ <emphasis role="bold">
+ <property><ol></property>
+ </emphasis>
+ HTML element and defines a marker type. Possible values for
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ attribute are: "A", "a", "I", "i", "1".
+ </para>
+ <para>Here is an example:</para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataOrderedList var="car" value="#{dataTableScrollerBean.allCars}" rows="5" type="1" title="Car Store">
+ <h:outputText value="#{car.make} #{car.model}"/><br/>
+ <h:outputText value="Price:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.price}" /><br/>
+ <h:outputText value="Mileage:" styleClass="label"></h:outputText>
+ <h:outputText value="#{car.mileage}" /><br/>
+ </rich:dataOrderedList>
+</h:form>
+...
+</programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataOrderedList></property>
+ </emphasis>
+ component with the
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ attribute
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataOrderedList2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ In the example the
+ <emphasis>
+ <property>"rows"</property>
+ </emphasis>
+ attribute limits a number of output elements of the list.
+ </para>
+
+ <para>The
+ <emphasis>
+ <property>"first"</property>
+ </emphasis>
+ attribute defines the first element for output.
+ <emphasis>
+ <property>"title"</property>
+ </emphasis>
+ is used for a popup title.
+ </para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:dataOrderedList></property>
+ </emphasis>
+ component could be partially updated with
+ Ajax. The
+ <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis>
+ attribute allows to define row keys that are updated after
+ an Ajax request.
+ </para>
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataOrderedList value="#{dataTableScrollerBean.allCars}" var="car" ajaxKeys="#{listBean.list}"
+ binding="#{listBean.dataList}" id="list">
+ ...
+</rich:dataOrderedList>
+...
+<a4j:commandButton action="#{listBean.action}" reRender="list" value="Submit"/>
+...
+</programlisting>
+
+ <para>
+ In the example
+ <emphasis>
+ <property>"reRender"</property>
+ </emphasis>
+ attribute contains value of the
+ <emphasis>
+ <property>"id"</property>
+ </emphasis>
+ attribute for the
+ <emphasis role="bold">
+ <property><rich:dataOrderedList></property>
+ </emphasis>
+ component. As a result the component is updated after an
+ Ajax request.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataOrderedList.html">Table of
+ <rich:dataOrderedList>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DataOrderedList</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>
+ org.richfaces.component.html.HtmlDataOrderedList
+ </entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataOrderedList</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataOrderedListRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>
+ org.richfaces.taglib.DataOrderedListTag
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_dOL">
+ <title>Classes names that define a list appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-orderedlist</entry>
+ <entry>
+ Defines styles for an html <ol>
+ element
+ </entry>
+ </row>
+ <row>
+ <entry>rich-list-item</entry>
+ <entry>
+ Defines styles for an html <li>
+ element
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataO...">
+ On the component LiveDemo page
+ </ulink>
+ you can see the example of
+ <emphasis role="bold">
+ <property><rich:dataOrderedList ></property>
+ </emphasis>
+ usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataTable.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,361 @@
+<section role="NotInToc" id="rich_dataTable">
+ <title>
+ <
+ rich:dataTable
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component for tables rendering that allows choosing data from a model and obtains
+ built-in support of Ajax updates.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataTable_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>A completely skinned table and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to insert the complex subcomponents
+ <property>"colGroup"</property> and
+ <property>"subTable"</property>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of strings with Ajax</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to sort and to filter of columns</para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="sort">Sorting column values</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="filter">Filtering column values</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component is similar to the <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis> one, except Ajax support and skinnability. Ajax support is possible, because the
+ component was created basing on the <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute allows to define row keys that is updated after an Ajax request.</para>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="capitals"
+ ajaxKeys="#{bean.ajaxSet}" binding="#{bean.table}" id="table">
+ ...
+</rich:dataTable>
+...
+<a4j:commandButton action="#{tableBean.action}" reRender="table" value="Submit"/>
+...
+</programlisting>
+
+ <para> In the example <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component. As a result the component is updated after an Ajax request.</para>
+
+ <para id="table_ex">The component allows to use <emphasis>
+ <property>"header"</property>
+ </emphasis>, <emphasis>
+ <property>"footer"</property>
+ </emphasis> and <emphasis>
+ <property>"caption"</property>
+ </emphasis> facets for output. See an example below:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">
+ <f:facet name="caption">
+ <h:outputText value="United States Capitals" />
+ </f:facet>
+ <f:facet name="header">
+ <h:outputText value="Capitals and States Table" />
+ </f:facet>
+ <rich:column>
+ <f:facet name="header">State Flag</f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ <f:facet name="footer">State Flag</f:facet>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">State Name</f:facet>
+ <h:outputText value="#{cap.state}"/>
+ <f:facet name="footer">State Name</f:facet>
+ </rich:column>
+ <rich:column >
+ <f:facet name="header">State Capital</f:facet>
+ <h:outputText value="#{cap.name}"/>
+ <f:facet name="footer">State Capital</f:facet>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">Time Zone</f:facet>
+ <h:outputText value="#{cap.timeZone}"/>
+ <f:facet name="footer">Time Zone</f:facet>
+ </rich:column>
+ <f:facet name="footer">
+ <h:outputText value="Capitals and States Table" />
+ </f:facet>
+</rich:dataTable>
+...
+</programlisting>
+
+ <para>This is a result:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> component with facets</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dataTable2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Information about sorting and filtering you can find <link linkend="sortAndFilter">in the corresponding section</link>.</para>
+ <para>
+ You can find information how to remove header's gradient <ulink url="http://wiki.jboss.org/wiki/RichFacesDataTableBackgroundOut"> in the "How to remove rich:dataTable header background " article</ulink>.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dataTable.html">Table of
+ <rich:dataTable>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DataTable</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDataTable</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DataTable</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataTableRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DataTableTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Redefines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Redefines the footer content</entry>
+ </row>
+ <row>
+ <entry>caption</entry>
+ <entry>Defines the caption content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="dTC">
+ <title>Classes names that define a whole component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-table</entry>
+ <entry>Defines styles for all table</entry>
+ </row>
+ <row>
+ <entry>rich-table-caption</entry>
+ <entry>Defines styles for a "caption" facet element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define header and footer elements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-table-header</entry>
+ <entry>Defines styles for a table header row</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-header-continue</entry>
+ <entry>Defines styles for all header lines after the first</entry>
+ </row>
+ <row>
+ <entry>rich-table-subheader</entry>
+ <entry>Defines styles for a column header</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-footer</entry>
+ <entry>Defines styles for a footer row</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-footer-continue</entry>
+ <entry>Defines styles for all footer lines after the first</entry>
+ </row>
+ <row>
+ <entry>rich-table-subfooter</entry>
+ <entry>Defines styles for a column footer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define rows and cells of a table</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-table-headercell</entry>
+ <entry>Defines styles for a header cell</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-subheadercell</entry>
+ <entry>Defines styles for a column header cell</entry>
+ </row>
+ <row>
+ <entry>rich-table-cell</entry>
+ <entry>Defines styles for a table cell</entry>
+ </row>
+ <row>
+ <entry>rich-table-row</entry>
+ <entry>Defines styles for a table row</entry>
+ </row>
+ <row>
+ <entry>rich-table-firstrow</entry>
+ <entry>Defines styles for a table's first row</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-footercell</entry>
+ <entry>Defines styles for a footer cell</entry>
+ </row>
+
+ <row>
+ <entry>rich-table-subfootercell</entry>
+ <entry>Defines styles for a column footer cell</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=dataT...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> usage and sources for the given example. </para>
+ <para>The article about <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> flexibility can be found in the <ulink url="http://www.jboss.org/community/docs/DOC-11847"> "rich:dataTable Flexibility " article </ulink>.</para>
+ <para>
+ <ulink url="http://www.jboss.org/community/docs/DOC-11848">Article on dataTable skinability</ulink> provides you a simple example of skinnability.
+
+ </para>
+ <para>More information about using <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:subTable></property>
+ </emphasis> could be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059044#...">RichFaces Users Forum</ulink>.
+ </para>
+ <para>How to use <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> in a context of Extended Data Model see on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115636">RichFaces Users Forum</ulink>.</para>
+
+ <para>From <ulink url="http://www.jboss.org/community/docs/DOC-11861">"rich:dataTable border to 0px "</ulink> article you'll figure out how to set rich:dataTable border to 0px </para>
+ <para>
+ <ulink url="http://www.jboss.org/community/docs/DOC-11860">dataTable Background Out </ulink> tells you how to remove rich:dataTable header background</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_datascroller.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_datascroller.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_datascroller.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,538 @@
+<section role="NotInToc" id="rich_datascroller">
+ <title>
+ <
+ rich:datascroller
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component designed for providing the functionality of tables scrolling using Ajax
+ requests.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/datascroller_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Provides table scrolling functionality</para>
+ </listitem>
+
+ <listitem>
+ <para>Built-in Ajax processing</para>
+ </listitem>
+
+ <listitem>
+ <para>Provides fast controls</para>
+ </listitem>
+
+ <listitem>
+ <para>Skin support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> component provides table scrolling functionalitity the
+ same as TOMAHAWK scroller but with Ajax requests usage.</para>
+ <para> The
+ <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> component should be reRendered also with <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> when you changing filter in order to be updated according to the <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> current model.
+ </para>
+ <para>The component should be placed into footer of the parent table or be bound
+ to it with the <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute. Note, that <emphasis>
+ <property>"for"</property>
+ </emphasis> is evaluated on view build, not on view render, that is
+ why it will ignore JSTL tags.</para>
+ <para>The table should also have the defined <emphasis>
+ <property>"rows"</property>
+ </emphasis> attribute limiting the quantity of inputted table rows.</para>
+ <para>The scroller could limit the maximum quantity of rendered links on the
+ table pages with the help of the <emphasis>
+ <property>"maxPages"</property>
+ </emphasis> attribute.</para>
+ <para>Component provides two controllers groups for switching:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Page numbers for switching onto a particular
+ page</para>
+ </listitem>
+ <listitem>
+ <para>The controls of fast switching: <emphasis>
+ <property>"first",</property>
+ </emphasis>
+ <emphasis>
+ <property>"last",</property>
+ </emphasis>
+ <emphasis>
+ <property>"next",</property>
+ </emphasis>
+ <emphasis>
+ <property>"previous",</property>
+ </emphasis>
+ <emphasis>
+ <property>"fastforward",</property>
+ </emphasis>
+ <emphasis>
+ <property>"fastrewind"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The controls of fast switching are created adding the facets component
+ with the corresponding name:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"> ...
+<rich:datascroller for="table" maxPages="10">
+ <f:facet name="first">
+ <h:outputText value="First"/>
+ </f:facet>
+ <f:facet name="last">
+ <h:outputText value="Last"/>
+ </f:facet>
+</rich:datascroller>
+...</programlisting>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> controls of fast switching</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/datascroller2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The screenshot shows one controller from each group.</para>
+ <para> There are also facets used to create the disabled states:
+ <code>"first_disabled",</code>
+ <code>"last_disabled",</code>
+ <code>"next_disabled",</code>
+ <code>"previous_disabled",</code>
+ <code>"fastforward_disabled",</code>
+ <code>"fastrewind_disabled"</code>. </para>
+ <para>For the
+ <code>"fastforward"/"fastrewind"</code>
+ controls customization the additional <emphasis>
+ <property>"fastStep"</property>
+ </emphasis> attribute is used. The attribute indicates pages quantity
+ to switch onto when fast scrolling is used. </para>
+
+ <para> The <emphasis>
+ <property>"page"</property>
+ </emphasis> is a value-binding attribute used to define and save
+ current page number. The example is placed below. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form id="myForm">
+ <rich:dataTable id="carList" rows="7" value="#{dataTableScrollerBean.allCars}" var="category">
+ <f:facet name="header">
+ <rich:columnGroup>
+ <h:column>
+ <h:outputText value="Make" />
+ </h:column>
+ <h:column>
+ <h:outputText value="Model" />
+ </h:column>
+ <h:column>
+ <h:outputText value="Price" />
+ </h:column>
+ </rich:columnGroup>
+ </f:facet>
+ <h:column>
+ <h:outputText value="#{category.make}" />
+ </h:column>
+ <h:column>
+ <h:outputText value="#{category.model}" />
+ </h:column>
+ <h:column>
+ <h:outputText value="#{category.price}" />
+ </h:column>
+ </rich:dataTable>
+ <rich:datascroller id="sc2" for="carList" reRender="sc1" maxPages="7" page="#{dataTableScrollerBean.scrollerPage}" />
+ <h:panelGrid>
+ <h:panelGroup>
+ <h:outputText value="Set current page number:" />
+ <h:inputText value="#{dataTableScrollerBean.scrollerPage}" id="sc1" size="1"/>
+ <h:commandButton value="Set" />
+ </h:panelGroup>
+ </h:panelGrid>
+</h:form>
+...</programlisting>
+
+ <para> In the example above you can enter the page number you want and set it by
+ clicking on the <emphasis role="bold">
+ <property><h:commandButton></property>
+ </emphasis>. By the way, if you use <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> page links the input field rerenders and current page
+ number changes. </para>
+ <para>The result should be like below: </para>
+ <figure>
+ <title>The <emphasis>
+ <property>"page"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/datascroller3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!--
+ The <emphasis><property>"pageIndexVar"</property></emphasis> and <emphasis>
+ <property>&;pagesVar"</property>
+ </emphasis> attributes provide an ability to show the current page and the number of pages in
+ the <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis>.
+ -->
+
+
+ <para> The <emphasis>
+ <property>"pageIndexVar"</property>
+ </emphasis> and <emphasis>
+ <property>"pagesVar"</property>
+ </emphasis> attributes define a request scope variables and provide an
+ ability to show the current page and the number of pages in the
+ <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis>. </para>
+ <para> These attributes are used for definition the names of variables, that is
+ used in the facet with name <emphasis>
+ <property>"pages"</property>
+ </emphasis>. An example can be found below: </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form>
+ <rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5">
+ <rich:column>
+ <h:outputText value="#{cap.name}" />
+ </rich:column>
+ <f:facet name="footer">
+ <rich:datascroller pageIndexVar="pageIndex" pagesVar="pages">
+ <f:facet name="pages">
+ <h:outputText value="#{pageIndex} / #{pages}" />
+ </f:facet>
+ </rich:datascroller>
+ </f:facet>
+ </rich:dataTable>
+</h:form>
+...
+</programlisting>
+ <para> It's possible to insert optional separators between controls.
+ For this purpose use a <emphasis>
+ <property>"controlsSeparator"</property>
+ </emphasis> facet. An example is placed below. </para>
+ <programlisting role="XML"> ...
+<f:facet name="controlsSeparator">
+ <h:graphicImage value="/image/sep.png"/>
+</f:facet>
+...</programlisting>
+ <para> Starting from 3.2.1 of RichFaces multiple <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> instances behavior and page bindings are corrected.
+ Incorrect page after model changes handling is added. Phase Listener
+ called before RenderResponce scans the page for the <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> and performs the following operations: </para>
+ <itemizedlist>
+ <listitem>
+ <para> Checks if the <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> is rendered. (If the checking
+ generates an exception, the <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> is considered to be not rendered )
+ </para>
+ </listitem>
+ <listitem>
+ <para> If the <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> is rendered - the table to which the
+ <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> is attached gets the value of the page
+ attribute of <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis>. </para>
+ </listitem>
+ </itemizedlist>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the <link linkend="process">" Decide what to process " </link> guide section. </para>
+ <note>
+ <title>Note:</title>
+ <para>Make sure, that all <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> components, defined for a table, have same
+ values for all<emphasis>
+ <property>"page"</property>
+ </emphasis> attributes. The page, specified in the last <emphasis>
+ <property>"page"</property>
+ </emphasis>, will be rendered in browser. </para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/datascroller.html">Table of
+ <rich:datascroller>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Datascroller</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDatascroller</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Datascroller</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DataScrollerRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DatascrollerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>switchToPage(page)</entry>
+ <entry>Switches to the defined page, "page" is Number or String </entry>
+ </row>
+ <row>
+ <entry>next()</entry>
+ <entry>Navigates to the next page</entry>
+ </row>
+ <row>
+ <entry>previous()</entry>
+ <entry>Navigates to the previous page</entry>
+ </row>
+ <row>
+ <entry>first()</entry>
+ <entry>Navigates to the first page</entry>
+ </row>
+ <row>
+ <entry>last()</entry>
+ <entry>Navigates to the last page</entry>
+ </row>
+ <row>
+ <entry>fastForward()</entry>
+ <entry>Navigates ahead over a certain number of pages. The number of pages to traverse is defined with fastStep attribute</entry>
+ </row>
+ <row>
+ <entry>fastRewind()</entry>
+ <entry>Navigates backwards over a certain number of pages. The number of pages to traverse is defined with fastStep attribute</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>controlsSeparator</entry>
+ <entry>Redefines optional separators between controls</entry>
+ </row>
+ <row>
+ <entry>first</entry>
+ <entry>Redefines the "first" button with the content set</entry>
+ </row>
+ <row>
+ <entry>first_disabled</entry>
+ <entry>Redefines the disabled "first" button with the content set</entry>
+ </row>
+ <row>
+ <entry>last</entry>
+ <entry>Redefines the "last" button with the content set</entry>
+ </row>
+ <row>
+ <entry>last_disabled</entry>
+ <entry>Redefines the disabled "last" button with the content set</entry>
+ </row>
+ <row>
+ <entry>fastrewind</entry>
+ <entry>Redefines the "fastrewind" button with the content set</entry>
+ </row>
+ <row>
+ <entry>fastrewind_disabled</entry>
+ <entry>Redefines the disabled "fastrewind" button with the content set</entry>
+ </row>
+ <row>
+ <entry>fastforward</entry>
+ <entry>Redefines the "fastforward" button with the content set</entry>
+ </row>
+ <row>
+ <entry>fastforward_disabled</entry>
+ <entry>Redefines the disabled "fastforward" button with the content set</entry>
+ </row>
+ <row>
+ <entry>previous</entry>
+ <entry>Redefines the "previous" button with the content set</entry>
+ </row>
+ <row>
+ <entry>previous_disabled</entry>
+ <entry>Redefines the disabled "previous" button with the content set</entry>
+ </row>
+ <row>
+ <entry>next</entry>
+ <entry>Redefines the "next" button with the content set</entry>
+ </row>
+ <row>
+ <entry>next_disabled</entry>
+ <entry>Redefines the disabled "next" button with the content set</entry>
+ </row>
+ <row>
+ <entry>pages</entry>
+ <entry>Redefines the pages buttons with the content set</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn2">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-datascr</entry>
+ <entry>Defines styles for a wrapper
+ <div> element of
+ a datascroller</entry>
+ </row>
+ <row>
+ <entry>rich-dtascroller-table</entry>
+ <entry>Defines styles for a wrapper
+ <table> element of a
+ datascroller</entry>
+ </row>
+ <row>
+ <entry>rich-datascr-button</entry>
+ <entry>Defines styles for a
+ button</entry>
+ </row>
+
+ <row>
+ <entry>rich-datascr-ctrls-separator</entry>
+ <entry>Defines styles for a separator
+ between buttons</entry>
+ </row>
+ </tbody>
+
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a buttons appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-datascr-act</entry>
+ <entry>Defines styles for an active
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-datascr-inact</entry>
+ <entry>Defines styles for an inactive
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-datascr-button-dsbld</entry>
+ <entry>Defines styles for a disabled
+ button</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTableScroller.jsf...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> usage and sources for the given example. </para>
+ <para> The solution about how to do correct pagination using datascroller (load
+ a part of data from database) can be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060199#...">RichFaces Users Forum</ulink>. </para>
+ <para>How to use <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:datascroller></property>
+ </emphasis> in a context of Extended Data Model see on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=115636">RichFaces Users Forum</ulink>.</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dndParam.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dndParam.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dndParam.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,154 @@
+<section role="NotInToc" id="rich_dndParam">
+ <title>
+ <
+ rich:dndParam
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>This component is used for passing parameters during drag-and-drop
+ operations.</para>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ <property>dndParam</property> is used during drag-and-drop
+ operations to pass parameters to an indicator. At first, a parameter type
+ is defined with the type attribute (to specify parameter functionality),
+ then a parameter name could be defined with the name and value attribute.
+ Although, it's possible to use nested content defined inside
+ <property>dndParam</property> for value definition, instead of the
+ attribute.</para>
+
+ <para>Variants of usage:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Parameters passing for a drag icon when an indicator is in
+ drag.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In this case, <property>dndParam</property> is of a drag type
+ and is defined in the following way:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dragSupport ... >
+ <rich:dndParam type="drag" name="dragging">
+ <h:graphicImage value="/img/product1_small.png"/>
+ </rich:dndParam>
+ <h:graphicImage value="product1.png"/>
+</rich:dragSupport>
+...
+</programlisting>
+
+ <para>Here <property>dndParam</property> defines an icon that is used by
+ an indicator when a drag is on the place of a default icon (e.g. a
+ minimized image of a draggable element)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Parameters passing for an indicator informational part during
+ a drag.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In this case <property>dndParam</property> is of a drag type
+ and is defined in the following way:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dragSupport ... >
+ <rich:dndParam type="drag" name="label" value="#{msg.subj}"/>
+ ...
+</rich:dragSupport>
+...
+</programlisting>
+
+ <para>The parameter is transmitted into an indicator for usage in an
+ informational part of the <property>dragIndicator</property> component (inside an indicator a
+ call to {label} happens)</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Parameters passing happens when dragged content is brought
+ onto some zone with <property>dropSupport</property>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In this case <property>dndParam</property> is of a drop type and is
+ defined in the following way:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dropSupport ... >
+ <rich:dndParam type="drop" name="comp" >
+ <h:graphicImage height="16" width="16" value="/images/comp.png"/>
+ </rich:dndParam>
+ ...
+</rich:dropSupport >
+...
+</programlisting>
+
+ <para>Here, <property>dndParam</property> passes icons into an indicator,
+ if dragged content of a comp type is above the given drop zone that
+ processes it on the next drop event.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dndParam.html">Table of
+ <rich:dndParam>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.DndParam</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlDndParam</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.DndParamTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragIndicator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragIndicator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragIndicator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,241 @@
+<section role="NotInToc" id="rich_dragIndicator">
+ <title>
+ <
+ rich:dragIndicator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>This is a component for defining what appears under the mouse cursor during drag-and-drop
+ operations. The displayed drag indicator can show information about the dragged elements.</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis> component</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dragIndicator_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Customizable marker according to the type of dragable elements</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> In the simplest way the component could be defined empty - in that case a default
+ indicator is shown like this: </para>
+ <figure>
+ <title>The simplest <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dragIndicator3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>For indicator customization you need to define one of the following facets:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"single"</property>
+ </emphasis> — indicator shown when dragging a single item;
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"multiple"</property>
+ </emphasis> — indicator shown when dragging several items.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <title>
+ Note:
+ </title>
+ <para>
+ The current implementation of the <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis> component
+ does not support multiple items selection. The feature is described for future releases.
+ </para>
+ </note>
+ <para>Thus for specify a look-and-feel you have to define one of these facets and include into
+ it a content that should be shown in indicator.</para>
+ <section>
+ <title>Macro definitions</title>
+ <para>To place some data from drag or drop zones into component you can use macro definitions.
+ They are being defining in the following way:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ <property><rich:dndParam></property>
+ </emphasis> component with a specific name and value is being included into a drag/drop
+ support component (an image can be defined as placed inside <emphasis role="bold">
+ <property><rich:dndParam></property>
+ </emphasis> without defining a value). </para>
+ </listitem>
+ <listitem>
+ <para> in needed place a parameter value is included into the marking of indicator using
+ syntax (name of parameter)</para>
+ </listitem>
+ </itemizedlist>
+ <para> For instance, this:</para>
+ <programlisting role="XML">...
+<rich:dropSupport...>
+ <rich:dndParam name="testDrop">
+ <h:graphicImage value="/images/file-manager.png" />
+ </rich:dndParam>
+</rich:dropSupport>
+...
+</programlisting>
+ <para>Is placed into indicator as follows:</para>
+ <programlisting role="XML">...
+<f:facet name="single">
+ {testDrop}
+</f:facet>
+...
+</programlisting>
+ </section>
+ <section>
+ <title>Predefined macro definitions</title>
+ <para> Indicator can accept two default macro definitions:</para>
+ <itemizedlist>
+ <listitem>
+ <para>marker</para>
+ </listitem>
+ <listitem>
+ <para>label</para>
+ </listitem>
+ </itemizedlist>
+ <para>Thus including one of these elements in the marking of indicator, in other words after
+ setting up appropriate parameters in DnD components and defining only default indicator -
+ without specifying facets - a developer gets these parameters values displayed in indicator
+ in the order "marker - label".</para>
+ </section>
+
+ <section>
+ <title>Marker customization</title>
+ <para>The macro definition <emphasis>
+ <property>"marker"</property>
+ </emphasis> can be customized depending on what a draggable element is located over. For
+ that you should define one of these three parameters (specify a parameter with one of three
+ names):</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>accept</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Parameter will be set instead of {marker} into indicator when a draggable element is
+ positioned over drop zone that accept this type of elements</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>reject</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Parameter is set instead of {marker} into indicator when a draggable element is
+ positioned over drop zone that doesn't accept this type of elements </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>default</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Parameter is set instead of {marker} into indicator when a draggable element is
+ positioned over all the rest of page elements</para>
+ </section>
+
+ <note>
+ <title>
+ Note:
+ </title>
+ <para>
+ If you use <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis> inside a form
+ do not forget to use id like <code>formId:indicatorID</code>
+ defined in <emphasis role="bold">
+ <property><rich:dragSupport></property>
+ </emphasis> indicator attribute.
+ </para>
+ </note>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dragIndicator.html">Table of
+ <rich:dragIndicator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Draggable</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDragIndicator</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DragIndicator</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DragIndicatorRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DragIndicatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dra...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragListener.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,132 @@
+<section role="NotInToc" id="rich_dragListener">
+ <title>
+ <
+ rich:dragListener
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:dragListener></property>
+ </emphasis>
+ represents an action listener method that is notified after a drag operation.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define some drag listeners for the components with "Drag and Drop" support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:dragListener></property>
+ </emphasis>
+ is used as a nested tag with components like
+ <emphasis role="bold">
+ <property><rich:dragSupport></property>
+ </emphasis>
+ ,
+ <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>
+ and
+ <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis>
+ .
+ </para>
+ <para>
+ Attribute
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ defines the fully qualified Java class name for a listener.
+ This class should implement
+
+ <ulink url="&apidoc_framework;org/richfaces/event/DropListener.html">
+ <code>org.richfaces.event.DropListener</code>
+ </ulink>
+ interface.
+ </para>
+
+ <para>
+ <emphasis role="bold">
+ The typical variant of using:
+ </emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<h:panelGrid id="dragPanel">
+ <rich:dragSupport dragType="item">
+ <rich:dragListener type="demo.ListenerBean"/>
+ </rich:dragSupport>
+ <!--Some content to be dragged-->
+</h:panelGrid>
+...
+</programlisting>
+
+ <para>
+ <emphasis role="bold">Java bean source:</emphasis>
+ </para>
+
+ <programlisting role="JAVA">package demo;
+
+import org.richfaces.event.DragEvent;
+
+public class ListenerBean implements org.richfaces.event.DragListener{
+...
+ public void processDrag(DragEvent arg0){
+ //Custom Developer Code
+ }
+...
+}
+</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dragListener.html">Table of
+ <rich:dragListener>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>listener-class</entry>
+ <entry>org.richfaces.event.DragListener</entry>
+ </row>
+ <row>
+ <entry>event-class</entry>
+ <entry>org.richfaces.event.DragEvent</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DragListenerTag</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragSupport.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragSupport.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dragSupport.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,307 @@
+<section role="NotInToc" id="rich_dragSupport">
+ <title>
+ <
+ rich:dragSupport
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>This component defines a subtree of the component tree as draggable
+ for drag-and-drop operations. Within such a "drag zone," you can click
+ the mouse button on an item and drag it to any component that supports drop
+ operations (a "drop zone"). It encodes all the necessary JavaScript for
+ supporting drag-and-drop operations.</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dragSupport></property>
+ </emphasis> component</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dragSupport_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Encodes all necessary JavaScript to perform drag
+ actions
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Can be used within any component type that provides the
+ required properties for drag operations
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Supports drag-and-drop between different forms
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The
+ <property>dragSupport</property>
+ tag inside a component completely specifies the events and
+ JavaScript required to use the component and it's children
+ for dragging as part of a drag-and-drop operation. In order
+ to work, though,
+ <property>dragSupport</property>
+ must be placed inside a wrapper component that outputs child
+ components and that has the right events defined on it.
+ Thus, this example won't work, because the
+ <emphasis role="bold">
+ <property><h:column></property>
+ </emphasis>
+ tag doesn't provide the necessary properties for redefining
+ events on the client:
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:column>
+ <rich:dragSupport dragIndicator=":form:iii" dragType="text">
+ <a4j:actionparam value="#{caps.name}" name="name"/>
+ </rich:dragSupport>
+ <h:outputText value="#{caps.name}"/>
+</h:column>
+...
+</programlisting>
+
+ <para>
+ However, using
+ <property>a4j:outputPanel</property>
+ as a wrapper inside
+ <emphasis role="bold">
+ <property><h:column></property>
+ </emphasis>
+ , the following code could be used successfully:
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:column>
+ <a4j:outputPanel>
+ <rich:dragSupport dragIndicator=":form:iii" dragType="text">
+ <a4j:actionparam value="#{caps.name}" name="name"/>
+ </rich:dragSupport>
+ <h:outputText value="#{caps.name}"/>
+ </a4j:outputPanel>
+</h:column>
+...
+</programlisting>
+
+ <para>This code makes all rows of this column draggable.</para>
+
+ <para>
+ One of the main attributes for
+ <property>dragSupport</property>
+ is
+ <emphasis>
+ <property>"dragType"</property>
+ ,
+ </emphasis>
+ which associates a name with the drag zone. Only drop zones
+ with this name as an acceptable type can be used in
+ drag-and-drop operations. Here is an example:
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:panelGrid id="drag1">
+ <rich:dragSupport dragType="singleItems" .../>
+ <!--Some content to be dragged-->
+</h:panelGrid>
+...
+<h:panelGrid id="drag2">
+ <rich:dragSupport dragType="groups" .../>
+ <!--Some content to be dragged-->
+</h:panelGrid>
+...
+<h:panelGrid id="drop1">
+ <rich:dropSupport acceptedTypes="singleItems" .../>
+ <!--Drop zone content-->
+</h:panelGrid>
+...
+</programlisting>
+
+ <para>
+ In this example, the
+ <code>drop1</code>
+ panel grid is a drop zone that invokes drag-and-drop for
+ drops of items from the first
+ <code>drag1</code>
+ panel grid, but not the second
+ <code>drag2</code>
+ panel grid. In the section about
+ <property>dropSupport</property>
+ , you will find an example that shows more detailed
+ information about moving data between tables with drag and
+ drop.
+ </para>
+
+ <para>
+ The
+ <property>dragSupport</property>
+ component also has a
+ <emphasis>
+ <property>"value"</property>
+ </emphasis>
+ attribute for passing data into the processing after a drop
+ event.
+ </para>
+
+ <para>
+ One more important attribute for
+ <emphasis role="bold">
+ <property><rich:dragSupport></property>
+ </emphasis>
+ is the
+ <emphasis>
+ <property>"dragIndicator"</property>
+ </emphasis>
+ attribute that point to the component id of the
+ <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis>
+ component to be used for dragged items from this drag zone.
+ If it isn't defined, a default indicator for drag operations
+ is used.
+ </para>
+
+ <para>
+ Finally, the component has the following extra attributes
+ for event processing on the client:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragstart"</property>
+ </emphasis>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragend"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ You can use your own custom JavaScript functions to handle
+ these events.
+ </para>
+
+
+ <note>
+ <title>Note:</title>
+ <para>
+ If you define width for a outputPanel, in Internet
+ Explorer 6 you can perform a drag and drop operation,
+ placing the mouse cursor on the text in the outputPanel
+ only.
+ </para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dragSupport.html">Table of
+ <rich:dragSupport>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.DragSupport</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>
+ org.richfaces.component.html.HtmlDragSupport
+ </entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.DragSupport</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.DragSupportRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.DragSupportTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dra...">
+ On the component Live Demo page
+ </ulink>
+ you can see the example of
+ <emphasis role="bold">
+ <property><rich:dragSupport></property>
+ </emphasis>
+ usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropDownMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropDownMenu.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropDownMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,516 @@
+<section role="NotInToc" id="rich_dropDownMenu">
+ <title>
+ <
+ rich:dropDownMenu
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+
+ <para>The <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> component is used for creating
+ multilevel drop-down menus.</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> component</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropDownMenu_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+
+ <listitem>
+ <para>Pop-up appearance event customization</para>
+ </listitem>
+
+ <listitem>
+ <para>Different submission modes</para>
+ </listitem>
+
+ <listitem>
+ <para>Ability to define a complex representation for elements</para>
+ </listitem>
+
+ <listitem>
+ <para>Support for disabling</para>
+ </listitem>
+
+ <listitem>
+ <para>Smart user-defined positioning</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>All attributes except <emphasis>
+ <property>"value"</property>
+ </emphasis> are optional. The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute defines text to be represented. If you can use the <emphasis>
+ <property>"label"</property>
+ </emphasis> facet, you can even not use the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute.</para>
+
+ <para>Here is an example:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<f:facet name="label">
+ <h:graphicImage value="/images/img1.png"/>
+</f:facet>
+...</programlisting>
+
+ <para>Use the <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute to define an event for the represented element that triggers a menu
+ appearance. An example of a menu appearance on a click can be seen below.</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:dropDownMenu event="onclick" value="Item1">
+ <!--Nested menu components-->
+</rich:dropDownMenu>
+...</programlisting>
+
+ <para>The <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis>
+ <emphasis>
+ <property>"submitMode"</property>
+ </emphasis> attribute can be set to three possible parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Regular form submission request is used.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ajax submission is used for switching.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The <emphasis>
+ <property>"action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> item's attributes are ignored. Menu items don't fire any submits themselves. The
+ behavior is fully defined by the components nested into items.</para>
+
+ <note>
+ <title>Note:</title>
+ <para> As the <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> component doesn't provide its own form, use it between <emphasis role="bold">
+ <property><h:form></property>
+ </emphasis> and
+ <emphasis role="bold">
+ <property></h:form></property>
+ </emphasis> tags.</para>
+ </note>
+
+ <para>The <emphasis>
+ <property>"direction"</property>
+ </emphasis> and <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> attributes are used for defining aspects of menu appearance.</para>
+
+ <para>Possible values for the <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>"top-left" - a menu drops to the top and left</para>
+ </listitem>
+
+ <listitem>
+ <para>"top-right" - a menu drops to the top and right</para>
+ </listitem>
+
+ <listitem>
+ <para>"bottom-left" - a menu drops to the bottom and left</para>
+ </listitem>
+
+ <listitem>
+ <para>"bottom-right" - a menu drops to the bottom and right</para>
+ </listitem>
+
+ <listitem>
+ <para>"auto" - smart positioning activation</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Possible values for the <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> attribute are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>"tr" - a menu is attached to the top-right point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>"tl" - a menu is attached to the top-left point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>"br" - a menu is attached to the bottom-right point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>"bl" - a menu is attached to the bottom-left point of the button element</para>
+ </listitem>
+
+ <listitem>
+ <para>"auto" - smart positioning activation</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>By default, the <emphasis>
+ <property>"direction"</property>
+ </emphasis> and <emphasis>
+ <property>"jointPoint"</property>
+ </emphasis> attributes are set to "auto".</para>
+
+ <para>Here is an example:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dropDownMenu value="File" direction="bottom-right" jointPoint="bl">
+ <rich:menuItem submitMode="ajax" value="New" action="#{ddmenu.doNew}"/>
+ <rich:menuItem submitMode="ajax" value="Open" action="#{ddmenu.doOpen}"/>
+ <rich:menuGroup value="Save As...">
+ <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
+ <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
+ </rich:menuGroup>
+ <rich:menuItem submitMode="ajax" value="Close" action="#{ddmenu.doClose}"/>
+ <rich:menuSeparator id="menuSeparator11"/>
+ <rich:menuItem submitMode="ajax" value="Exit" action="#{ddmenu.doExit}"/>
+</rich:dropDownMenu>
+...</programlisting>
+
+ <para>This is the result:</para>
+
+ <figure>
+ <title>Using the <emphasis role="bold">
+ <property>"direction"</property>
+ </emphasis> and <emphasis>
+ <property>"joinPoint"</property>
+ </emphasis> attributes</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropDownMenu2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can correct an offset of the pop-up list relative to the label using the following
+ attributes: <emphasis>
+ <property>"horizontalOffset"</property>
+ </emphasis> and <emphasis>
+ <property>"verticalOffset"</property>
+ </emphasis>.</para>
+
+ <para>Here is an example:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:dropDownMenu value="File" direction="bottom-right" jointPoint="tr" horizontalOffset="-15" verticalOffset="0">
+ <rich:menuItem submitMode="ajax" value="New" action="#{ddmenu.doNew}"/>
+ <rich:menuItem submitMode="ajax" value="Open" action="#{ddmenu.doOpen}"/>
+ <rich:menuGroup value="Save As...">
+ <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
+ <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
+ </rich:menuGroup>
+ <rich:menuItem submitMode="ajax" value="Close" action="#{ddmenu.doClose}"/>
+ <rich:menuSeparator id="menuSeparator11"/>
+ <rich:menuItem submitMode="ajax" value="Exit" action="#{ddmenu.doExit}"/>
+</rich:dropDownMenu>
+...</programlisting>
+
+ <para>This is the result:</para>
+
+ <figure>
+ <title>Using the <emphasis>
+ <property>"horizontalOffset"</property>
+ </emphasis> and <emphasis>
+ <property>"verticalOffset"</property>
+ </emphasis> attributes</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropDownMenu3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <!--para> The <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute is used for disabling whole <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis>, <emphasis role="bold">
+ <property><rich:menuGroup></property>
+ </emphasis> or <emphasis role="bold">
+ <property><rich:menuItem></property>.
+ </emphasis>
+ </para>
+ <para>An example of a menu appearance with <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute can be seen below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+ <rich:dropDownMenu value="Item1">
+ <rich:menuItem id="menuItem1" value="Active1"/>
+ <rich:menuItem id="menuItem2" value="Disabled1" disabled="true"/>
+ <rich:menuGroup id="menuGroup1" value="Group1">
+ <rich:menuItem id="menuGroup1Item1" value="Active"/>
+ <rich:menuItem id="menuGroup1Item2" value="Active"/>
+ </rich:menuGroup>
+ <rich:menuItem id="menuItem3" value="Active2"/>
+ <rich:menuGroup id="menuGroup1Dsbld" value="Group1 dsbld." disabled="true" />
+ </rich:dropDownMenu>
+...
+]]></programlisting-->
+
+<para>
+ The <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute is used for disabling whole
+ <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> component. In this case it is
+ necessary to define <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute as "true".
+ An example is placed below.
+</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:dropDownMenu value="File" disabled="true">
+ ...
+</rich:dropDownMenu>
+...</programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dropDownMenu.html">Table of
+ <rich:dropDownMenu>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.DropDownMenu</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlDropDownMenu</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.DropDownMenu</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.DropDownMenuRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DropDownMenuTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>label</entry>
+ <entry>Redefines the content set of label</entry>
+ </row>
+ <row>
+ <entry>labelDisabled</entry>
+ <entry>Redefines the content set of disabled label</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn4">
+ <title>Classes names that define a label</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-label-text-decor</entry>
+
+ <entry>Defines text style for a representation element</entry>
+ </row>
+
+ <row>
+ <entry>rich-ddmenu-label</entry>
+
+ <entry>Defines styles for a wrapper <div> element of a representation
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-ddmenu-label-select</entry>
+
+ <entry>Defines styles for a wrapper <div> element of a selected
+ representation element</entry>
+ </row>
+
+ <row>
+ <entry>rich-ddmenu-label-unselect</entry>
+
+ <entry>Defines styles for a wrapper <div> element of an unselected
+ representation element </entry>
+ </row>
+
+ <row>
+ <entry>rich-ddmenu-label-disabled</entry>
+
+ <entry>Defines styles for a wrapper <div> element of a disabled
+ representation element </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a popup element</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-menu-list-border</entry>
+
+ <entry>Defines styles for borders</entry>
+ </row>
+
+ <row>
+ <entry>rich-menu-list-bg</entry>
+
+ <entry>Defines styles for a general background list</entry>
+ </row>
+
+ <row>
+ <entry>rich-menu-list-strut</entry>
+
+ <entry>Defines styles for a wrapper <div> element for a strut of a popup
+ list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dr...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropListener.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,132 @@
+<section role="NotInToc" id="rich_dropListener">
+ <title>
+ <
+ rich:dropListener
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:dropListener></property>
+ </emphasis>
+ represents an action listener method that is notified after a drop operation.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define some drop listeners for the components with "Drag and Drop" support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:dropListener></property>
+ </emphasis>
+ is used as a nested tag with components like
+ <emphasis role="bold">
+ <property><rich:dropSupport></property>
+ </emphasis>
+ ,
+ <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>
+ and
+ <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis>
+ .
+ </para>
+ <para>
+ Attribute
+ <emphasis>
+ <property>"type"</property>
+ </emphasis>
+ defines the fully qualified Java class name for the
+ listener. This class should implement
+ <ulink url="&apidoc_framework;org/richfaces/event/DropListener.html">
+ <code>org.richfaces.event.DropListener</code>
+ </ulink>
+ interface.
+ .
+ </para>
+
+ <para>
+ <emphasis role="bold">
+ The typical variant of using:
+ </emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:panel style="width:100px;height:100px;">
+ <f:facet name="header">Drop Zone</f:facet>
+ <rich:dropSupport acceptedTypes="text">
+ <rich:dropListener type="demo.ListenerBean"/>
+ </rich:dropSupport>
+</rich:panel>
+...
+</programlisting>
+
+ <para>
+ <emphasis role="bold">Java bean source:</emphasis>
+ </para>
+
+ <programlisting role="JAVA">package demo;
+
+import org.richfaces.event.DropEvent;
+
+public class ListenerBean implements org.richfaces.event.DropListener{
+...
+ public void processDrop(DropEvent arg0){
+ //Custom Developer Code
+ }
+...
+}
+</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dropListener.html">Table of
+ <rich:dropListener>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>listener-class</entry>
+ <entry>org.richfaces.event.DropListener</entry>
+ </row>
+ <row>
+ <entry>event-class</entry>
+ <entry>org.richfaces.event.DropEvent</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.DropListenerTag</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropSupport.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropSupport.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_dropSupport.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,402 @@
+<section role="NotInToc" id="rich_dropSupport">
+ <title>
+ <
+ rich:dropSupport
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>This component transforms a parent component into a target zone for
+ drag-and-drop operations. When a draggable element is moved and dropped onto
+ the area of the parent component, Ajax request processing for this event is
+ started.</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:dropSupport></property>
+ </emphasis> component</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropSupport_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Encodes all necessary JavaScript to perform drop actions
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Can be used within any component type that provides the required properties for drop operations
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Built-in Ajax processing
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Supports drag-and-drop between different forms
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>The key attribute for <emphasis role="bold">
+ <property><rich:dropSupport></property>
+ </emphasis> is <emphasis>
+ <property>"acceptedTypes"</property>
+ </emphasis>.
+ It defines, which types of dragable items (zones) could be accepted by the current drop zone. Check the example below:
+ </para>
+ <programlisting role="XML">...
+<rich:panel styleClass="dropTargetPanel">
+ <f:facet name="header">
+ <h:outputText value="PHP Frameworks" />
+ </f:facet>
+
+ <rich:dropSupport id="php" acceptedTypes="PHP" dropValue="PHP" dropListener="#{eventBean.processDrop}" reRender="phptable, src">
+ </rich:dropSupport>
+ ...
+</rich:panel>
+...
+</programlisting>
+ <para>and here is what happens on the page:</para>
+ <figure>
+ <title>Drop zone accepts dragable item with "PHP" type only</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropSupport1.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Using the <emphasis>
+ <property>"typeMapping"</property>
+ </emphasis> attribute. Previous example shows that a drop zone could accept a dragable item or not.
+ Special markers, which are placed at <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis>, inform user about drop zone’s possible behaviors:
+ "checkmark" appears if drop is accepted and "No" symbol if it is not.
+ Moreover, some extra information (e.g. text message) could be put into the Indicator to reinforce the signal about drop zone’s behavior or pass some other additional sense.
+ This reinforcement could be programmed and attributed to drop zone via <emphasis>
+ <property>"typeMapping"</property>
+ </emphasis> attribute using JSON syntax.
+ The type of dragged zone (dragType) should be passed as "key" and name of <emphasis role="bold">
+ <property><rich:dndParam></property>
+ </emphasis>
+ that gives needed message to Indicator as "value":
+ </para>
+ <programlisting role="XML">...
+<rich:panel styleClass="dropTargetPanel">
+ <f:facet name="header">
+ <h:outputText value="PHP Frameworks" />
+ </f:facet>
+
+ <rich:dropSupport id="php" acceptedTypes="PHP" dropValue="PHP" dropListener="#{eventBean.processDrop}" reRender="phptable, src"
+ typeMapping="{PHP: text_for_accepting, DNET: text_for_rejecting}">
+ <rich:dndParam name="text_for_accepting" value="Drop accepted!" />
+ <rich:dndParam name="text_for_rejecting" value="Drop is not accepted!" />
+ </rich:dropSupport>
+ ...
+</rich:panel>
+...
+</programlisting>
+ <para>What happens on the page:</para>
+ <figure>
+ <title>
+ <emphasis>
+ <property>"typeMapping"</property>
+ </emphasis> helps to add some extra information to <emphasis role="bold">
+ <property><rich:dragIndicator></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropSupport1a.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>In examples above dropping a dragable item triggers the use a parameter in the event processing; Ajax request is sent and dropListener defined for the component is called.
+ </para>
+
+ <para>
+ Here is an example of moving records between tables. The
+ example describes all the pieces for drag-and-drop. (To get
+ extra information on these components, read the sections for
+ these components.)
+ </para>
+
+ <para>
+ As draggable items, this table contains a list of such items
+ designated as being of type
+ <code>"text"</code>
+ :
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="caps">
+ <f:facet name="caption">Capitals List</f:facet>
+ <h:column>
+ <a4j:outputPanel>
+ <rich:dragSupport dragIndicator=":form:ind" dragType="text">
+ <a4j:actionparam value="#{caps.name}" name="name"/>
+ </rich:dragSupport>
+ <h:outputText value="#{caps.name}"/>
+ </a4j:outputPanel>
+ </h:column>
+</rich:dataTable>
+...
+</programlisting>
+
+ <para>
+ As a drop zone, this panel will accept draggable items of
+ type
+ <code>text</code>
+ and then rerender an element with the ID of
+ <code>box</code>
+ :
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:panel style="width:100px;height:100px;">
+ <f:facet name="header">Drop Zone</f:facet>
+ <rich:dropSupport acceptedTypes="text" reRender="box"
+ dropListener="#{capitalsBean.addCapital2}"/>
+</rich:panel>
+...
+</programlisting>
+
+ <para>
+ As a part of the page that can be updated in a partial page
+ update, this table has an ID of
+ <code>box</code>
+ :
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals2}" var="cap2" id="box">
+ <f:facet name="caption">Capitals chosen</f:facet>
+ <h:column>
+ <h:outputText value="#{cap2.name}"/>
+ </h:column>
+</rich:dataTable>
+...</programlisting>
+
+ <para>
+ And finally, as a listener, this listener will implement the
+ dropped element:
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">...
+public void addCapital2(DropEvent event) {
+ FacesContext context = FacesContext.getCurrentInstance();
+ Capital cap = new Capital();
+ cap.setName(context.getExternalContext().getRequestParameterMap().get("name").toString());
+ capitals2.add(cap);
+}
+...
+</programlisting>
+
+ <para>
+ Here is the result after a few drops of items from the first
+ table:
+ </para>
+
+ <figure>
+ <title>Results of drop actions</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/dropSupport2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ In this example, items are dragged element-by-element from
+ the rendered list in the first table and dropped on a panel
+ in the middle. After each drop, a drop event is generated
+ and a common Ajax request is performed that renders results
+ in the third table.
+ </para>
+
+ <para>
+ As with every Ajax action component,
+ <emphasis role="bold">
+ <property><rich:dropSupport></property>
+ </emphasis>
+ has all the common attributes (
+ <emphasis>
+ <property>"timeout"</property>
+ ,
+ </emphasis>
+ <emphasis>
+ <property>"limitToList"</property>
+ ,
+ </emphasis>
+ <emphasis>
+ <property>"reRender"</property>
+ ,
+ </emphasis>
+ etc.) for Ajax request customization.
+ </para>
+
+ <para>
+ Finally, the component has the following extra attributes
+ for event processing on the client:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragenter"</property>
+ </emphasis>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragexit"</property>
+ </emphasis>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondrop"</property>
+ </emphasis>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondropend"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ Developers can use their own custom JavaScript functions to
+ handle these events.
+ </para>
+ <para>
+ Information about the
+ <emphasis>
+ <property>"process"</property>
+ </emphasis>
+ attribute usage you can find in the
+ <link linkend="process"> "Decide what to process" </link> guide section
+ .
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/dropSupport.html">Table of
+ <rich:dropSupport>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.DropSupport</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>
+ org.richfaces.component.html.HtmlDropSupport
+ </entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.DropSupport</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.DropSupportRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.DropSupportTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dro...">
+ On the component Live Demo page
+ </ulink>
+ you can see the example of
+ <emphasis role="bold">
+ <property><rich:dropSupport></property>
+ </emphasis>
+ usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_editor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_editor.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_editor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,549 @@
+<section role="NotInToc" id="rich_editor">
+ <title>
+ <
+ rich:editor
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> component is used for creating a WYSIWYG editor on a page.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editor1.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+
+ <listitem>
+ <para>Seam text support</para>
+ </listitem>
+ <listitem>
+ <para>Manageable global configurations</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to use custom plug-ins</para>
+ </listitem>
+ <listitem>
+ <para>Support of all TinyMCE's parameters through <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> is fully based on TinyMCE web based Javascript HTML WYSIWYG editor control and supports all of the features it has.
+ The <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> adapts the TinyMCE editor for JSF environment and adds some functional capabilities.
+ </para>
+ <para>
+ The easiest way to place the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> on a page is as follows:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><rich:editor value="#{bean.editorValue}" /></programlisting>
+ <para>
+ Implementation of <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> provides three ways to define the properties of the component:
+ </para>
+
+ <orderedlist>
+ <listitem>
+ <para>Using attributes</para>
+ </listitem>
+ <listitem>
+ <para>Using using <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> JSF tag</para>
+ </listitem>
+ <listitem>
+ <para>Using configuration files that allow you to set up multiple configurations for all editors in your application and change them in the runtime</para>
+ </listitem>
+ </orderedlist>
+
+ <para>The three methods are described in details in the chapter.</para>
+ <para>
+ The most important properties are implemented as attributes and you can define them as any other attribute.
+ The attributes of the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> component match the corresponding properties of TinyMCE editor.
+ </para>
+ <para>
+ For example, a theme for the editor can be defined using the <emphasis>
+ <property>"theme"</property>
+ </emphasis> attribute like this:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">
+<rich:editor value="#{bean.editorValue}" theme="advanced" />
+</programlisting>
+ <para>Setting a different skin for the editor can be done using the <emphasis>
+ <property>"skin"</property>
+ </emphasis> attribute.</para>
+ <para>
+ Another useful property that is implemented at attribute level is <emphasis>
+ <property>"viewMode"</property>
+ </emphasis>.
+ The attribute switches between "visual" and "source" modes, toggling between modes is performed setting the attribute to "visual" and "source" respectively.
+ Implementation of <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> also implies that you can change the modes dynamically setting the value of the <emphasis>
+ <property>"viewMode"</property>
+ </emphasis> attribute using EL-expression.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{editor.submit}" theme="advanced" viewMode="#{editor.viewMode}" >
+ ...
+ <h:selectOneRadio value="#{editor.viewMode}" onchange="submit();">
+ <f:selectItem itemValue="visual" itemLabel="visual" />
+ <f:selectItem itemValue="source" itemLabel="source" />
+ </h:selectOneRadio>
+ ...
+</rich:editor>
+...</programlisting>
+ <para>
+ Most configuration options that TinyMCE provides can be applied using <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> JSF tag.
+ The syntax is quite simple: the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute should contain the option,
+ the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute assigns some value to the option.
+ </para>
+ <para>
+ For example, this code adds some buttons to the editor and positions the toolbar.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{bean.editorValue}" theme="advanced" plugins="save,paste" >
+ <f:param name="theme_advanced_buttons1" value="bold,italic,underline, cut,copy,paste,pasteword"/>
+ <f:param name="theme_advanced_toolbar_location" value="top"/>
+ <f:param name="theme_advanced_toolbar_align" value="left"/>
+</rich:editor>
+...</programlisting>
+ <para>This is what you get as a result:</para>
+ <figure>
+ <title> Setting configuration options with <f:param>
+
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/editor2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>The third way to configure the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> is
+ to use configuration file (.properties)</para>
+
+ <para>
+ This method eases your life if you need to configure multiple instances
+ of the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis>: you configure the editor once
+ and in one spot and the configuration properties can be applied to any
+ <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> in your application.
+ </para>
+ <para>To implement this type of configuration you need to take a few steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Create a configuration file (.properties) in the classpath folder and add some properties to it.
+ Use standard syntax for the .properties files: <code>parameter=value</code>.
+ Here is an example of configuration file:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">theme="advanced"
+plugins="save,paste"
+theme_advanced_buttons1="bold,italic,underline, cut,copy,paste,pasteword"
+theme_advanced_toolbar_location="top"
+theme_advanced_toolbar_align="left"
+</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ The properties stored in configuration file are passed to the
+ <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> via
+ <emphasis>
+ <property>"configuration"</property>
+ </emphasis> attribute which takes the name of the configuration file
+ as a value (with out .properties extension).
+ </para>
+ <para>
+ For example, if you named the configuration file "editorconfig", you would address it as follows:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{bean.editorValue}" configuration="editorconfig"/>
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ Alternately, you can use a EL-expression to define a configuration file.
+ This way you can dynamically change the sets of configuration properties.
+ </para>
+
+ <para>
+ For example, you have two configuration files "configurationAdvanced" and "configurationSimple" and you want them to be
+ applied under some condition.
+ </para>
+ <para>
+ To do this you need to bind <emphasis>
+ <property>"configuration"</property>
+ </emphasis>
+ attribute to the appropriate bean property like this.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{bean.editorValue}" configuration="#{editor.configuration}" />
+...</programlisting>
+ <para>Your Java file should look like this.</para>
+
+ <programlisting role="JAVA">...
+String configuration;
+
+if(some condition){//defines some condition
+ configuration = "configurationAdvanced"; //the name on the file with advanced properties
+}
+else{
+ configuration= "configurationSimple"; //the name on the file with simplified properties
+}
+...</programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+
+ <para>
+ You also might want to add some custom plug-ins to your editor.
+ You can read about how to create a plugin in <ulink url="http://wiki.moxiecode.com/index.php/TinyMCE:Creating_Plugin">TinyMCE Wiki article</ulink>.
+ </para>
+
+ <para>
+ Adding a custom plugin also requires a few steps to take. Though, the procedure is very similar to adding a configuration file.
+
+ </para>
+
+ <para>This is what you need to add a plugin:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Create a .properties file and put the name of the plug-in and a path to it into the file.
+ The file can contain multiple plug-in declarations. Your .properties file should be like this.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+pluginName=/mytinymceplugins/plugin1Name/editor_plugin.js
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ Use the <emphasis>
+ <property>"customPlugins"</property>
+ </emphasis> attribute to specify the .properties file with a plugin name and a path to it.
+ </para>
+ <para>
+ If your .properties file is named "myPlugins", then your will have this code on the page.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor theme="advanced" customPlugins="myPlugins" plugins="pluginName" />
+...</programlisting>
+ </listitem>
+ </itemizedlist>
+ <note>
+ <title>Note:</title>
+ <para>
+Some plug-ins which available for download might have some dependencies on TinyMCE scripts.
+For example, dialog pop-ups require tiny_mce_popup.js script file.
+Assuming that you will not plug custom plugins to the RF jar with editor component
+(standard TinyMCE plugins creation implies that plugins are put into TinyMCE's corresponding directory)
+ you should manually add required TinyMCE scripts to some project folder and correct the js includes.
+ </para>
+ </note>
+ <para>
+ The implementation of the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> component has two methods for handling
+ events.
+ </para>
+ <para>The attributes take some function name as a value with is triggered on the appropriate event. You need to use standard JavaScript function calling syntax. </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Using attributes (<emphasis>
+ <property>"onchange"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"oninit"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"onsave"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"onsetup"</property>
+ </emphasis>)
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{bean.editorValue}" onchange="myCustomOnChangeHandler()" />
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ Using <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> as a child element defining the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute
+ with one of the TinyMCE's callbacks and the
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute takes the function name you want to be called
+ on the corresponding event as the value. Note, that the syntax in this case is a bit different: parentheses are not required.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:editor value="#{bean.editorValue}">
+ <f:param name="onchange" value="myCustomOnChangeHandler" />
+</rich:editor>
+...</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <para>The <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis>
+ component has a build-in converter that renders HTML code generated by the editor
+ to Seam text (you can read more on Seam in <ulink url="http://docs.jboss.org/seam/1.1.5.GA/reference/en/html/text.html">Seam guide</ulink>.), it also interprets Seam text
+ passed to the <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> and renders it to HTML.
+ The converter can be enable with the <emphasis>
+ <property>"useSeamText"</property>
+ </emphasis> attribute.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <para>This HTML code generated by editor</para>
+ <programlisting role="XML">...
+<p><a href="http://mysite.com">Lorem ipsum</a> <i>dolor sit</i> amet, ea <u>commodo</u> consequat.</p>
+...</programlisting>
+ <para>will be parsed to the following Seam text:</para>
+
+ <programlisting role="XML">...
+[Lorem ipsum=>http://mysite.com] *dolor sit* amet, ea _commodo_ consequat.
+...</programlisting>
+ <para>Accordingly, if the Seam text is passed to the component it will be parsed to HTML code.</para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/editor.html">Table of
+ <rich:editor>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.editor</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.Htmleditor</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.editor</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.editorRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.editorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>CSS selectors for the layout of the editor</title>
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Class name (selector)</entry>
+ <entry>Description</entry>
+ <entry>Skin Parameter</entry>
+ <entry>CSS property</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>.richfacesSkin .mceButton</entry>
+ <entry>Defines styles for the buttons</entry>
+ <entry>n/a</entry>
+ <entry>background-image</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceButtonDisabled .mceIcon </entry>
+ <entry>Defines styles for the icons</entry>
+ <entry>n/a</entry>
+ <entry>opacity</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceIframeContainer</entry>
+ <entry>Defines styles for the container</entry>
+ <entry>panelBorderColor</entry>
+ <entry>border-top-color, border-bottom-color</entry>
+ </row>
+
+ <row>
+ <entry morerows="2">.richfacesSkin .mceListBox .mceText</entry>
+ <entry morerows="2">Defines styles for the list box</entry>
+ <entry>generalFamilyFont</entry>
+ <entry>font-family</entry>
+ </row>
+ <row>
+ <entry>panelBorderColor</entry>
+ <entry>border-color</entry>
+ </row>
+ <row>
+ <entry>tableBackgroundColor</entry>
+ <entry>background</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceExternalToolbar</entry>
+ <entry>Defines styles for the toolbar</entry>
+ <entry>panelBorderColor</entry>
+ <entry>border-color</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceMenu</entry>
+ <entry>Defines styles for the menus</entry>
+ <entry>panelBorderColor</entry>
+ <entry>border-color</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceMenu .mceMenuItemActive</entry>
+ <entry>Defines styles for the active menu items</entry>
+ <entry>additionalBackgroundColor</entry>
+ <entry>background-color</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin .mceSeparator</entry>
+ <entry>Defines styles for the buttons separator</entry>
+ <entry>n/a</entry>
+ <entry>background-image</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin table.mceLayout</entry>
+ <entry>Defines styles for the table layout</entry>
+ <entry>panelBorderColor</entry>
+ <entry>border-left-color, border-right-color</entry>
+ </row>
+
+ <row>
+ <entry>.richfacesSkin table.mceToolbar</entry>
+ <entry>Defines styles for the rows of icons within toolbar</entry>
+ <entry>n/a</entry>
+ <entry>padding</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+
+ <para>The <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> is based on TinyMCE editor and supports almost all its features and properties some of which are not described here since you can find more detailed documentation on them on the official <ulink url="http://wiki.moxiecode.com/index.php/TinyMCE:Index">web site.</ulink>
+ </para>
+
+
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/editor.jsf?c=editor">On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:editor></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_effect.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_effect.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_effect.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,252 @@
+<section role="NotInToc" id="rich_effect">
+ <title>
+ <
+ rich:effect
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> utilizes a set of effects provided by the scriptaculous JavaScript library.
+ It allows to attach effects to JSF components and html tags.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>No developers JavaScript writing needed to use it on pages</para>
+ </listitem>
+ <listitem>
+ <para>Presents scriptaculous JavaScript library functionality</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> It is possible to use <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> in two modes: <itemizedlist>
+ <listitem>
+ <para>attached to the JSF components or html tags and triggered by a particular event.
+ Wiring effect with JSF components might occur on the server or client. Wiring with html
+ tag is possible only on the client side </para>
+ </listitem>
+ <listitem>
+ <para>invoking from the JavaScript code by an effect name. During the rendering,
+ <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> generates the JavaScript function with defined name.
+ When the function is called, the effect is applied </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <emphasis role="bold">Those a the typical variants of using:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<!-- attaching by event -->
+<rich:panel>
+ <rich:effect event="onmouseout" type="Opacity" params="duration:0.8,from:1.0,to:0.3" />
+ <!--panel content-->
+</rich:panel>
+...
+
+<!-- invoking from JavaScript -->
+<div id="contentDiv">
+ <!--div content-->
+</div>
+
+<input type="button" onclick="hideDiv({duration:0.7})" value="Hide" />
+<input type="button" onclick="showDiv()" value="Show" />
+
+<rich:effect name="hideDiv" for="contentDiv" type="Fade" />
+<rich:effect name="showDiv" for="contentDiv" type="Appear" />
+
+<!-- attaching to window on load and applying on particular page element -->
+<rich:effect for="window" event="onload" type="Appear" params="targetId:'contentDiv',duration:0.8,from:0.3,to:1.0" />
+...
+</programlisting>
+
+ <figure>
+ <title>Initial</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/effect_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure>
+ <title>When the mouse cursor is over</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/effect_2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute defines a name of the JavaScript function that is be generated on a page
+ when the component is rendered. You can invoke this function to activate the effect. The
+ function accesses one parameter. It is a set of effect options in JSON format. </para>
+
+ <para>
+ <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute defines the type of an effect. For example, "Fade", "Blind", "Opacity".
+ Have a look at <ulink url="http://script.aculo.us">scriptaculous documentation</ulink> for set
+ of available effect. </para>
+
+ <para>
+ <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute defines the id of the component or html tag, the effect is attached
+ to. RichFaces converts the <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute value to the client id of the component if such component is found. If
+ not, the value is left as is for possible wiring with on the DOM element's id on the client
+ side. By default, the target of the effect is the same element that effect pointed to.
+ However, the target element is might be overridden with <emphasis>
+ <property>"targetId"</property>
+ </emphasis> option passed with <emphasis>
+ <property>"params"</property>
+ </emphasis> attribute of with function paramenter. </para>
+
+ <para>
+ <emphasis>
+ <property>"params"</property>
+ </emphasis> attribute allows to define the set of options possible for particurar effect. For
+ example, 'duration', 'delay', 'from', 'to'. Additionally to the options used by the effect
+ itself, there are two option that might override the <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis>
+ attribute. Those are: <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"targetId"</property>
+ </emphasis> allows to re-define the target of effect. The option is override the value of <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"type"</property>
+ </emphasis> defines the effect type. The option is override the value of <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para> You can use a set of effects directly without defining the <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> component on a page if it's convenient for you. For that, load the
+ scriptaculous library to the page with the following code: </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<a4j:loadScript src="resource://scriptaculous/effect.js" />
+...
+</programlisting>
+ <para> If you do use the <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis>component, there is no need to include this library because it's already here. </para>
+
+ <para>For more information look at <ulink url="http://jboss.com/index.html?module=bb&op=viewtopic&t=119044">RichFaces
+ Users Forum</ulink>.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/effect.html">Table of
+ <rich:effect>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Effect</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlEffect</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Effect</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.EffectRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.EffectTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://wiki.jboss.org/wiki/CreateABannerUsingEffectsAndPoll">
+ Here
+ </ulink>
+ you can get additional information how to create an image banner
+ using
+ <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis>
+ and
+ <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis>
+ components and figure out how to create an HTML banner from
+ <ulink url="http://wiki.jboss.org/auth/wiki/CreateAHTMLBannerUsingEffectsAndPoll">
+ "Creating HTML Banner Using Effects And Poll RichFaces Wiki" article
+ </ulink>
+ .
+ </para>
+ <para>In the
+ <ulink url="http://wiki.jboss.org/auth/wiki/RichFacesCookbook/SlideShow">RichFaces Cookbook article</ulink>
+ you can find information how to make a Slide Show with help of the
+ <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis>
+ and <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> components.
+ </para>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/effect.jsf?c=effect">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis> usage. </para>
+ <para>How to save <emphasis role="bold">
+ <property><rich:effect></property>
+ </emphasis>status see on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=118833">RichFaces Users Forum</ulink>.</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_extendedDataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_extendedDataTable.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_extendedDataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,442 @@
+<section role="NotInToc" id="rich_extendedDataTable">
+ <title>
+ <
+ rich:extendedDataTable
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.2</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component for tables extending standard component <emphasis role="bold">
+ <property moreinfo="none"><rich:dataTable></property>
+ </emphasis>.</para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Possibility to scroll data</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to add an attribute to set the kind of
+ selection (none, single line or multiple
+ lines)</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to change the sequence of the displayed
+ columns by dragging the column-header to another
+ position</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to show or hide columns by selecting or
+ deselecting them in a context menu</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to save the current settings (visible
+ columns, column width, sequence of the columns) to
+ be reused the next time the page will be
+ shown</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine rows to groups</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component is similar to the <emphasis role="bold">
+ <property moreinfo="none"><rich:dataTable></property>
+ </emphasis>. The data in component is scrollable. You can also set the
+ type of selection (<emphasis>
+ <property moreinfo="none">"none",</property>
+ </emphasis>
+ <emphasis>
+ <property moreinfo="none">"single"</property>
+ </emphasis> or <emphasis>
+ <property moreinfo="none">"multi"</property>
+ </emphasis> lines). Selection of multiple lines is possible using
+ Shift and Ctrl keys.</para>
+ <para>Here is an example:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML" format="linespecific">...
+<rich:extendedDataTable id="edt" value="#{extendedDT.dataModel}" var="edt" width="500px" height="500px" selectedClass="dataTableSelectedRow" sortMode="single" selectionMode="multi" selection="#{extendedDT.selection}" rowKeyVar="rkvar" tableState="#{extendedDT.tableState}">
+ <rich:column id="id" headerClass="dataTableHeader" width="50" label="Id" sortable="true" sortBy="#{edt.id}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
+ <f:facet name="header">
+ <h:outputText value="Id" />
+ </f:facet>
+ <h:outputText value="#{edt.id}" />
+ </rich:column>
+ <rich:column id="name" width="300" headerClass="dataTableHeader" label="Name" sortable="true" sortBy="#{edt.name}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon" filterBy="#{edt.name}" filterEvent="onkeyup" visible="false">
+ <f:facet name="header">
+ <h:outputText value="Name" />
+ </f:facet>
+ <h:outputText value="#{edt.name}" />
+ </rich:column>
+ <rich:column id="date" width="100" headerClass="dataTableHeader" label="Date" sortable="true" comparator="#{extendedDT.dateComparator}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
+ <f:facet name="header">
+ <h:outputText value="Date" />
+ </f:facet>
+ <h:outputText value="#{edt.date}"><f:convertDateTime pattern="yyyy-MM-dd HH:mm:ss" />
+ </h:outputText>
+ </rich:column>
+ <rich:column id="group" width="50" headerClass="dataTableHeader" label="Group" sortable="true" sortBy="#{edt.group}" sortIconAscending="dataTableAscIcon" sortIconDescending="dataTableDescIcon">
+ <f:facet name="header">
+ <h:outputText value="Group" />
+ </f:facet>
+ <h:outputText value="#{edt.group}" />
+ </rich:column>
+</rich:extendedDataTable>
+...</programlisting>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component with selected multiple lines</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init2.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Information about sorting and filtering can be found in <link linkend="sort">RichFaces Developer Guide section on sorting</link>.
+ </para>
+ <para>
+ For external filtering
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis>
+ component supports <emphasis>
+ <property moreinfo="none">"filter"</property>
+ </emphasis> facet
+ for <emphasis role="bold">
+ <property moreinfo="none"><rich:column></property>
+ </emphasis> component.
+ In this facet you can define your own controls for filtering which will be positioned like built-in filter controls.
+ Rest of the filter scenario is the same as described <link linkend="filter">RichFaces Developer Guide section on filtering</link>.
+ </para>
+ <para> In the example <emphasis>
+ <property moreinfo="none">"selection"</property>
+ </emphasis> attribute contains object with selected rows. </para>
+ <note>
+ <title>Note:</title>
+ <para> Attribute<emphasis>
+ <property moreinfo="none">"height"</property>
+ </emphasis>is mandatory. The default value is <emphasis>
+ <property moreinfo="none">"500px"</property>
+ </emphasis>. </para>
+ </note>
+ <para> Menu on the right side of the column header is used to perform action:
+ sorting, grouping, hiding columns. </para>
+ <para>This is an example:</para>
+ <figure float="0">
+ <title>Column menu</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init3.png" width="50%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> After selecting a "Group by this column" option, you can see the data
+ grouped. You can collapse and expand groups by clicking on a group
+ header. </para>
+ <para>This is an example:</para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component with grouped data</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init4.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The <emphasis>
+ <property moreinfo="none">"label"</property>
+ </emphasis> attribute in <emphasis role="bold">
+ <property moreinfo="none"><rich:column></property>
+ </emphasis> sets the name of the column, which is used when dragging
+ columns (in drag window) and in context menu, in "Columns" submenu. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML" format="linespecific">...
+<rich:column id="name" label="#{msg['name']}"
+...</programlisting>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component with Drag&Drop column 'Name'</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init5.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> In the component <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> columns can hidden: </para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:extendedDataTable></property>
+ </emphasis> component with hidden column 'Id' and 'Group'</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_init6.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!-- <para>
+ For each column can be set the filter.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+ <rich:column id="name"
+ filterBy="#{entity.name}" filterEvent="onkeyup">
+...
+]]></programlisting>
+
+ <figure>
+ <title><emphasis role="bold">
+ <property><&extDataTable;></property>
+ </emphasis> component with filtered column 'Name'</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/extendedDataTable_filtered.png" width="75%"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ --><para>
+ <emphasis>
+ <property moreinfo="none">"tableState"</property>
+ </emphasis> attribute can be used to bind state of the table (column
+ width, column position, visible, sequence, grouping...) to a
+ backing-bean string property, for a later used. This state can be for
+ example saved to a database, and it is different form standard JSF
+ state saving mechanisms.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML" format="linespecific">...
+<rich:extendedDataTable tableState="#{extendedDT.tableState}">
+...
+</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/extendedDataTable.html">Table of
+ <rich:extendedDataTable>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ExtendedDataTable</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlExtendedDataTable</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ExtendedDataTable</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ExtendedDataTableRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ExtendedDataTableTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Redefines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Redefines the footer content</entry>
+ </row>
+ <row>
+ <entry>caption</entry>
+ <entry>Redefines the caption content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="ExtdTC">
+ <title>Classes names that define a whole component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-extdt</entry>
+ <entry>Defines styles for all
+ table</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-caption</entry>
+ <entry>Defines styles for a
+ "caption"
+ facet element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define header and footer elements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-extdt-header</entry>
+ <entry>Defines styles for a table header
+ row</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-header-continue</entry>
+ <entry>Defines styles for all header
+ lines after the first</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-subheader</entry>
+ <entry>Defines styles for a column
+ header</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-footer</entry>
+ <entry>Defines styles for a footer
+ row</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-footer-continue</entry>
+ <entry>Defines styles for all footer
+ lines after the first</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-subfooter</entry>
+ <entry>Defines styles for a column
+ footer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define rows and cells of a table</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-extdt-headercell</entry>
+ <entry>Defines styles for a header
+ cell</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-subheadercell</entry>
+ <entry>Defines styles for a column
+ header cell</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-cell</entry>
+ <entry>Defines styles for a table
+ cell</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-row</entry>
+ <entry>Defines styles for a table
+ row</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-firstrow</entry>
+ <entry>Defines styles for a table start
+ row</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-footercell</entry>
+ <entry>Defines styles for a footer
+ cell</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-subfootercell</entry>
+ <entry>Defines styles for a column
+ footer cell</entry>
+ </row>
+ <row>
+ <entry>rich-extdt-group-cell</entry>
+ <entry>Defines styles for a grouping row cell</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Some additional information about usage of component can be found
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/extendedDataTable.jsf...">on its LiveDemo page</ulink>.</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_fileUpload.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_fileUpload.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_fileUpload.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,1040 @@
+<section role="NotInToc" id="rich_fileUpload">
+ <title>
+ <
+ rich:fileUpload
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component designed to perform Ajax-ed files upload to server.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/fileUpload_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>ProgressBar shows the status of downloads</para>
+ </listitem>
+ <listitem>
+ <para>Restriction on File type, file size and number of files to be uploaded</para>
+ </listitem>
+ <listitem>
+ <para>Multiple files upload support</para>
+ </listitem>
+ <listitem>
+ <para>Embedded Flash module</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to cancel the request</para>
+ </listitem>
+ <listitem>
+ <para>One request for every upload</para>
+ </listitem>
+ <listitem>
+ <para>Automatic uploads</para>
+ </listitem>
+ <listitem>
+ <para>Supports standard JSF internationalization</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component consists of two parts:<itemizedlist>
+ <listitem>
+ <para>
+ <property>List of files</property> which contains the list of currently
+ chosen files to upload with possibility to manage every file </para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Component controls</property> - the bar with controls for managing
+ the whole component </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+
+ <para> There are two places where the uploaded files are stored: </para>
+ <itemizedlist>
+ <listitem>
+ <para> In the temporary folder (depends on OS) if the value of the
+ <code>createTempFile</code> parameter in <property>Ajax4jsf
+ Filter</property> (in web.xml) section is "true" (by Default) </para>
+ <programlisting role="XML">...
+<init-param>
+ <param-name>createTempFiles</param-name>
+ <param-value>true</param-value>
+</init-param>
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para> In the RAM if the value of the <code>createTempFile</code> parameter in
+ <property>Ajax4jsf Filter</property> section is "false".
+ This is a better way for storing small-sized files. </para>
+ </listitem>
+ </itemizedlist>
+
+ <para> The <emphasis>
+ <property>"uploadData"</property>
+ </emphasis> attribute defines the collection of files uploaded. See the example below. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload uploadData="#{bean.data}"/>
+...</programlisting>
+
+ <para>The <emphasis>
+ <property>"fileUploadedListener"</property>
+ </emphasis> is called at server side after every file uploaded and used for the saving
+ files from temporary folder or RAM. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}"/>
+ ...</programlisting>
+ <para> The following methods for processing the uploaded files are available: </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>isMultiUpload()</code>. It returns "true" if several
+ files have been uploaded </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>getUploadItems()</code>. It returns the list of the uploaded files. If one
+ file was uploaded, the <code>getUploadItems()</code> method will return the list
+ consisting of one file </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>getUploadItem()</code>. It returns the whole list in case of uploading one
+ file only. If several files were uploaded, the <code>getUploadItem()</code>
+ method will return the first element of the uploaded files list. </para>
+ </listitem>
+ </itemizedlist>
+ <para> Automatically files uploading could be performed by means of the <emphasis>
+ <property> "immediateUpload"</property>
+ </emphasis> attribute. If the value of this attribute is "true" files
+ are uploaded automatically once they have been added into the list. All next files in
+ the list are uploaded automatically one by one. If you cancel uploading process next
+ files aren't started to upload till you press the "Upload"
+ button or clear the list. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}" immediateUpload="true"/>
+ ...</programlisting>
+
+ <para> The <emphasis>
+ <property> "autoclear"</property>
+ </emphasis> attribute is used to remove automatically files from the list after upload
+ completed. See the simple example below. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload uploadData="#{bean.data}" autoclear="true"/>
+...</programlisting>
+ <para> Each file in list waiting for upload has link "Cancel" opposite its name.
+ Clicking this link invokes JS API <code>remove()</code> function, which gets <code>$('id').component.entries[i]</code> as a parameter
+ and removes the particular file from list and from the queue for upload.
+ After a file has been uploaded the link "Cancel" changes to "Clear".
+ Clicking "Clear" invokes <code>clear()</code> JS API function, which also gets ID of the particular entry and removes it from the list.
+ Uploaded to server file itself is kept untouched.
+ </para>
+
+ <!--RESTRICTIONS-->
+
+ <para> The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component provides following restrictions: </para>
+ <itemizedlist>
+ <listitem>
+ <para> On <property> file types</property>, use <emphasis>
+ <property> "acceptedTypes"</property>
+ </emphasis> attribute to define file types accepted by component. In the example
+ below only files with "html" and "jpg"
+ extensions are accepted to upload. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload acceptedTypes="html, jpg"/>
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para> On <property> file size</property>, use the <code>maxRequestSize</code>
+ parameter(value in bytes) inside <property>Ajax4jsf Filter</property> section in
+ <property>web.xml</property>: </para>
+ <programlisting role="XML">...
+<init-param>
+ <param-name>maxRequestSize</param-name>
+ <param-value>1000000</param-value>
+</init-param>
+...</programlisting>
+ </listitem>
+ <listitem>
+ <para> On <property>max files quantity</property>, use the <emphasis>
+ <property> "maxFilesQuantity"</property>
+ </emphasis> attribute to define max number of files allowed to be uploaded.
+ After a number of files in the list equals to the value of this attribute
+ "Add" button is disabled and nothing could be uploaded even if
+ you clear the whole list. In order to upload files again you should rerender the
+ component. As it could be seen in the example below, only 2 files are accepted
+ for uploading. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload maxFilesQuantity="2"/>
+...</programlisting>
+ <para> This is the result: </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis>with <emphasis>
+ <property> "maxFilesQuantity"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/fileUpload2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+
+
+
+
+ <para id="fileUploadEventAttributes">The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component provides a number of specific event attributes: </para>
+ <itemizedlist>
+
+ <listitem>
+ <para> The <emphasis>
+ <property> "onadd"</property>
+ </emphasis>a event handler called on an add file operation </para>
+ </listitem>
+
+ <listitem>
+ <para> The <emphasis>
+ <property> "onupload"</property>
+ </emphasis> which gives you a possibility to cancel the upload at client side
+ </para>
+ </listitem>
+ <listitem>
+ <para> The <emphasis>
+ <property> "onuploadcomplete"</property>
+ </emphasis> which is called after all files from the list are uploaded </para>
+ </listitem>
+ <listitem>
+ <para> The <emphasis>
+ <property> "onuploadcanceled"</property>
+ </emphasis> which is called after upload has been canceled via cancel control
+ </para>
+ </listitem>
+ <listitem>
+ <para> The <emphasis>
+ <property> "onerror"</property>
+ </emphasis> which is called if the file upload was interrupted according to any
+ errors </para>
+ </listitem>
+ </itemizedlist>
+
+
+
+
+ <!--Flash Module-->
+ <para> The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component has an embedded Flash module that adds extra functionality to the
+ component. The module is enabled with <emphasis>
+ <property> "allowFlash"</property>
+ </emphasis> attribute set to "true". </para>
+ <para>These are the additional features that the Flash module provides:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Multiple files choosing;</para>
+ </listitem>
+ <listitem>
+ <para>Permitted file types are specified in the "Open File" dialog
+ window;</para>
+ </listitem>
+ <listitem>
+ <para>A number of additional entry object properties are also available, which can
+ be found <link linkend="objectProperties">RichFaces Developer Guide section on object properties</link>. </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Apart from uploading files to the sever without using Ajax, the Flash module provides
+ a number of useful API functions that can be used to obtain information about the
+ uploaded file. </para>
+
+ <para>There are 2 ways to obtain the data stored in the FileUploadEntry object. </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>By means of JavaScript on the client side. Use the following syntax for that
+ <code>entries[i].propertyName</code>. For example
+ <code>entries[0].state</code> will return the state of the file the is being
+ processed or has just been processed.</para>
+ </listitem>
+
+
+ <listitem>
+ <para>The properties of <code>FileUploadEntry</code> object can be retrieved using
+ the <code>entry.propertyName</code> expression in the specific event attributes.
+ For example,
+ <code>onupload="alert(event.memo.entry.fileName);" </code>
+ will display a message with the name of the file at the very moment when upload
+ operation starts. A full list of properties can be found in <link linkend="objectPropertiesWithAttributes">RichFaces Developer Guide section on properties and their attributes</link>.</para>
+ </listitem>
+
+
+ </itemizedlist>
+ <para>The given bellow code sample demonstrates how the properties can be used. Please study
+ it carefully. </para>
+ <programlisting role="XML">...
+<head>
+ <script>
+ function _onaddHandler (e) {
+ var i = 0;
+ for (; i < e.memo.entries.lenght; i++) {
+ alert(e.memo.entries[i].creator); //Shows creators of the added files
+ }
+ }
+
+ function _onerrorhandle(e) {
+ alert(e.memo.entry.fileName + "file was not uploaded due transfer error");
+ }
+ </script>
+</head>
+ ...</programlisting>
+
+
+
+ <para> Moreover, embedded Flash module provides a smoother representation of progress bar
+ during the uploading process: the polling is performed is not by Ajax, but my means of
+ the flash module. </para>
+ <figure>
+ <title> Uploading using Flash module <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/flash_fileUpload.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>However, the Flash module doens't perform any visual representation of the
+ component.</para>
+
+ <!--End of Flash Module-->
+
+
+
+
+
+ <para> In order to customize the information regarding the ongoing process you could use <emphasis>
+ <property>"label"</property>
+ </emphasis> facet with the following macrosubstitution: <itemizedlist>
+ <listitem>
+ <para>
+ <code> {B}</code>, <code>{KB}</code>, <code>{MB}</code> contains the size of
+ file uploaded in bytes, kilobytes, megabytes respectively </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{_B}</code>, <code>{_KB}</code>, <code>{_MB}</code> contains the
+ remain file size to upload in bytes, kilobytes, megabytes respectively
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{ss}</code>, <code>{mm}</code>, <code>{hh}</code> contains elapsed
+ time in seconds, minutes and hours respectively </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <!--
+ There is a number of facets providing for this component:
+ <emphasis>
+ <property> "header"</property></emphasis>
+
+ <emphasis>
+ <property> "footer"</property></emphasis>
+ <emphasis>
+ <property> "label"</property></emphasis>. could be used to provide displaying the progress of uploading.
+ -->
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload uploadData="#{bean.data}" fileUploadListener="#{bean.listener}">
+ <f:facet name="label">
+ <h:outputText value="{_KB}KB from {KB}KB uploaded --- {mm}:{ss}" />
+ </f:facet>
+</rich:fileUpload>
+...</programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> with <emphasis>
+ <property> "label"</property>
+ </emphasis> facet </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/fileUpload3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You could define labels of the <property>component controls</property> with the help
+ of <emphasis>
+ <property> "addControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property> "clearAllControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property> "clearControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property> "stopEntryControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property> "uploadControlLabel"</property>
+ </emphasis> attributes. See the following example. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload addControlLabel="Add file..." clearAllControlLabel="Clear all" clearControlLabel="Clear"
+ stopEntryControlLabel="Stop process" uploadControlLabel="Upload file"/>
+...</programlisting>
+ <para> This is the result: </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> with labels </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/fileUpload4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component allows to use sizes attributes: </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "listHeight"</property>
+ </emphasis> attribute specify height for list of files in pixels </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "listWidth"</property>
+ </emphasis> attribute specify width for list of files in pixels </para>
+ </listitem>
+ </itemizedlist>
+
+ <para> In order to disable the whole component you could use the <emphasis>
+ <property> "disabled"</property>
+ </emphasis> attribute. See the following example. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload disabled="true"/>
+...</programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis>with <emphasis>
+ <property> "disabled"</property>
+ </emphasis> attribute </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/fileUpload5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>It's possible to handle events for fileUpload using JavaScript code. A
+ simplest example of usage JavaScript API is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:fileUpload id="upload" disabled="false"/>
+<h:commandButton onclick="${rich:component('upload')}.disable();" value="Disable" />
+...</programlisting>
+
+ <para>
+ <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component also provides a number of JavaScript property, that can be used to
+ process uploaded files, file states etc. The given below example illustrates how the
+ <code>entries[0].state</code> property can be used to get access to the file state.
+ Full list of JavaScript properties can be found <link linkend="objectProperties">below</link>. </para>
+
+
+ <programlisting role="XML">...
+<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}"
+ maxFilesQuantity="#{fileUploadBean.uploadsAvailable}"
+ id="upload"
+ immediateUpload="#{fileUploadBean.autoUpload}"
+ acceptedTypes="jpg, gif, png, bmp"/>
+ <a4j:support event="onuploadcomplete" reRender="info" />
+</rich:fileUpload>
+<h:commandButton onclick="if($('j_id232:upload').component.entries[0].state == FileUploadEntry.UPLOAD_SUCCESS) alert ('DONE');" value="Check file state"/>
+...</programlisting>
+
+
+ <para>The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component allows to use internationalization method to redefine and localize
+ the labels. You could use application resource bundle and define
+ <code>RICH_FILE_UPLOAD_CANCEL_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_STOP_LABEL</code>, <code>RICH_FILE_UPLOAD_ADD_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_UPLOAD_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_CLEAR_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_CLEAR_ALL_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_PROGRESS_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_SIZE_ERROR_LABLE</code>,
+ <code>RICH_FILE_UPLOAD_TRANSFER_ERROR_LABLE</code>,
+ <code>RICH_FILE_UPLOAD_ENTRY_STOP_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_ENTRY_CLEAR_LABEL</code>,
+ <code>RICH_FILE_UPLOAD_ENTRY_CANCEL_LABEL</code> there. </para>
+
+
+
+ <!--para> The <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> component could work together with Seam framework. <ulink
+ url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/..."
+ >On RichFaces LiveDemo page </ulink> you can see how to configure filter for this framework in web.xml file
+ in order to handle <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> requests. </para-->
+ <para>To make <property><rich:fileUpload></property> component work properly
+ with MyFaces extensions, the order in which filters are defined and mapped in web.xml,
+ is important. See <ulink url="http://www.jboss.org/community/docs/DOC-13537">corresponding FAQ chapter</ulink>. </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/fileUpload.html">Table of
+ <rich:fileUpload>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.FileUpload</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlFileUpload</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.FileUpload</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.FileUploadRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.FileUploadTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>beforeSubmit()</entry>
+ <entry>Sets up necessary request parameters for file uploading and submits
+ form to server by command button. This method should be used together
+ with commands. </entry>
+ </row>
+
+ <row>
+ <entry>clear()</entry>
+ <entry>Removes all files from the list. The function can also get the <code>$('id').component.entries[i]</code> as a parameter to remove a particular file.</entry>
+ </row>
+
+ <row>
+ <entry>disable()</entry>
+ <entry>Disables the component</entry>
+ </row>
+
+ <row>
+ <entry>enable()</entry>
+ <entry>Enables the component</entry>
+ </row>
+
+ <row>
+ <entry>remove()</entry>
+ <entry>Cancels the request for uploading a file by removing this file from
+ upload list and upload queue. Gets <code>$('id').component.entries[i]</code> as a parameter.</entry>
+ </row>
+
+ <row>
+ <entry>stop()</entry>
+ <entry>Stops the uploading process</entry>
+ </row>
+
+ <row>
+ <entry>submitForm()</entry>
+ <entry>Submits form to server. All added files will be put to model and
+ event.</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="objectProperties">
+ <title>Client-side object properties</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>entries</entry>
+ <entry>Returns a array of all files in the list </entry>
+ </row>
+
+
+
+ <row>
+ <entry>entries.length</entry>
+ <entry>Returns the number of files in the list </entry>
+ </row>
+
+
+ <row>
+ <entry>entries[i].fileName</entry>
+ <entry>Returns the file name, that is retrieved by the array index </entry>
+ </row>
+
+
+
+ <row>
+ <entry>entries[i].state </entry>
+ <entry>Returns the file state. Possible states are <itemizedlist>
+
+ <listitem>
+ <para>"initialized" - the file is added,
+ corresponds to FileUploadEntry.INITIALIZED constant </para>
+ </listitem>
+ <listitem>
+ <para>"progress" - the file is being uploaded,
+ corresponds to FileUploadEntry.UPLOAD_IN_PROGRESS
+ constant</para>
+ </listitem>
+ <listitem>
+ <para>"ready" - uploading is in process,
+ corresponds to FileUploadEntry.READY constant The file will
+ be uploaded on queue order.</para>
+ </listitem>
+ <listitem>
+ <para>"canceled" - uploading of the file is
+ canceled, corresponds to FileUploadEntry.UPLOAD_CANCELED
+ constant </para>
+ </listitem>
+ <listitem>
+ <para>"done" - the file is uploaded
+ successfully, corresponds to FileUploadEntry.UPLOAD_SUCCESS
+ constant</para>
+ </listitem>
+ <listitem>
+ <para>"transfer_error" - a file transfer error
+ occurred, corresponds to
+ FileUploadEntry.UPLOAD_TRANSFER_ERROR constant </para>
+ </listitem>
+ <listitem>
+ <para>"size_error" - the file exceeded maximum
+ size, corresponds to FileUploadEntry.UPLOAD_SIZE_ERROR
+ constant</para>
+ </listitem>
+
+
+ </itemizedlist>
+ </entry>
+ </row>
+
+
+
+ <row>
+ <entry>entries[i].size</entry>
+ <entry> Returns the size of the file. Available in flash enabled version
+ only</entry>
+ </row>
+ <row>
+ <entry>entries[i].Type</entry>
+ <entry>Returns the mime type of the file. Available in flash enabled version
+ only</entry>
+ </row>
+ <row>
+ <entry>entries[i].creator </entry>
+ <entry>Returns the name of the author of the file. Available in flash
+ enabled version only</entry>
+ </row>
+ <row>
+ <entry>entries[i].creationDate</entry>
+ <entry>Returns the date when the file was created. Available in flash
+ enabled version only</entry>
+ </row>
+ <row>
+ <entry>entries[i].modificationDate</entry>
+ <entry>Returns the date of the last file modification. Available in flash
+ enabled version only</entry>
+ </row>
+
+
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="objectPropertiesWithAttributes">
+ <title>Client-side object properties available with specific <link linkend="fileUploadEventAttributes"> event attributes</link>
+ </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Property</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+
+
+
+ <row>
+ <entry>entry.state </entry>
+ <entry>Returns the file state. Possible states are <itemizedlist>
+
+ <listitem>
+ <para>"initialized" - the file is added,
+ corresponds to FileUploadEntry.INITIALIZED constant </para>
+ </listitem>
+ <listitem>
+ <para>"progress" - the file is being uploaded,
+ corresponds to FileUploadEntry.UPLOAD_IN_PROGRESS
+ constant</para>
+ </listitem>
+ <listitem>
+ <para>"ready" - uploading is in process,
+ corresponds to FileUploadEntry.READY constant The file will
+ be uploaded on queue order.</para>
+ </listitem>
+ <listitem>
+ <para>"canceled" - uploading of the file is
+ canceled, corresponds to FileUploadEntry.UPLOAD_CANCELED
+ constant </para>
+ </listitem>
+ <listitem>
+ <para>"done" - the file is uploaded
+ successfully, corresponds to FileUploadEntry.UPLOAD_SUCCESS
+ constant</para>
+ </listitem>
+ <listitem>
+ <para>"transfer_error" - a file transfer error
+ occurred, corresponds to
+ FileUploadEntry.UPLOAD_TRANSFER_ERROR constant </para>
+ </listitem>
+ <listitem>
+ <para>"size_error" - the file exceeded maximum
+ size, corresponds to FileUploadEntry.UPLOAD_SIZE_ERROR
+ constant</para>
+ </listitem>
+
+
+ </itemizedlist>
+ </entry>
+ </row>
+
+ <row>
+ <entry>entry.fileName </entry>
+ <entry>Returns the file's name. This property works with all event
+ handlers except for "onadd". </entry>
+ </row>
+
+
+
+ <row>
+ <entry>entry.size</entry>
+ <entry> Returns the size of the file. Available in flash enabled version
+ only</entry>
+ </row>
+ <row>
+ <entry>entry.Type</entry>
+ <entry>Returns the mime type of the file. Available in flash enabled version
+ only</entry>
+ </row>
+ <row>
+ <entry>entry.creator </entry>
+ <entry>Returns the name of the author of the file. Available in flash
+ enabled version only</entry>
+ </row>
+ <row>
+ <entry>entry.creationDate</entry>
+ <entry>Returns the date when the file was created. Available in flash
+ enabled version only</entry>
+ </row>
+ <row>
+ <entry>entry.modificationDate</entry>
+ <entry>Returns the date of the last file modification. Available in flash
+ enabled version only</entry>
+ </row>
+
+
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>label</entry>
+ <entry>Defines the information regarding the ongoing process</entry>
+ </row>
+ <row>
+ <entry>progress</entry>
+ <entry>Defines the information regarding the uploading process</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="fileUploadCN">
+ <title>Classes names that define a component representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-fileupload-list-decor</entry>
+ <entry>Defines styles for a wrapper <div> element of a
+ fileUpload</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-font</entry>
+ <entry>Defines styles for a font of buttons and items</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-toolbar-decor</entry>
+ <entry>Defines styles for a toolbar</entry>
+ </row>
+ <row>
+ <entry> rich-fileupload-list-overflow</entry>
+ <entry>Defines styles for a list of files</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define buttons representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-fileupload-button</entry>
+ <entry>Defines styles for a buttons</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-button-border</entry>
+ <entry>Defines styles for a border of buttons</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-button-light</entry>
+ <entry>Defines styles for a highlight of button</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-button-press</entry>
+ <entry>Defines styles for a pressed button</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-button-dis</entry>
+ <entry>Defines styles for a disabled button</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-button-selection</entry>
+ <entry>Defines styles for "Upload",
+ "Clean" buttons</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define the representation of the buttons' icons</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-fileupload-ico</entry>
+ <entry>Defines styles for an icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-add</entry>
+ <entry>Defines styles for a "Add" button icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-start</entry>
+ <entry>Defines styles for a "Upload" button icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-stop</entry>
+ <entry>Defines styles for a "Stop" button icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-clear</entry>
+ <entry>Defines styles for a "Clear" button icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-add-dis</entry>
+ <entry>Defines styles for a disabled "Add" button
+ icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-start-dis</entry>
+ <entry>Defines styles for a disabled "Upload" button
+ icon</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-ico-clear-dis</entry>
+ <entry>Defines styles for a disabled "Clear" button
+ icon</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define list items representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-fileupload-table-td</entry>
+ <entry>Defines styles for a wrapper <td> element of a list
+ items</entry>
+ </row>
+ <row>
+ <entry>rich-fileupload-anc</entry>
+ <entry>Defines styles for "Cancel",
+ "Stop", "Clear" links</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf?c=file...">On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:fileUpload></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_gmap.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_gmap.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_gmap.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,326 @@
+<section role="NotInToc" id="rich_gmap">
+ <title>
+ <
+ rich:gmap
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>Component that presents the Google <property>map</property> in the JSF applications.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gmap_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Presents all the Google <property>map</property> functionality</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable via attributes</para>
+ </listitem>
+ <listitem>
+ <para>No developers JavaScript writing needed to use on a pages</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ To use
+ <emphasis>
+ <property>Google Map</property>
+ </emphasis>
+ in your application, generate a key on
+ <ulink url="http://google.com/apis/maps">
+ Google Map official resource
+ </ulink>
+ . One key could be used for one directory on the server.
+ </para>
+ <para>
+ Here are the main settings of initial rendering performed
+ with a component
+ <property>map</property>
+ that are accessible with the following attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"zoom"</property>
+ </emphasis>
+ defines an approximation size (boundary values 1-18)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"lat"</property>
+ </emphasis>
+ specifies an initial latitude coordinate in degrees,
+ as a number between -90 and +90
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"lng"</property>
+ </emphasis>
+ specifies an initial longitude coordinate in
+ degrees, as a number between -180 and +180
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"mapType"</property>
+ </emphasis>
+ specifies a type of a rendered map (<code>G_NORMAL_MAP</code>,
+ <code>G_SATELLITE_MAP</code> (DEFAULT), <code>G_HYBRID_MAP</code>)
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ For example, the city of Paris is shown after rendering with
+ the following initial settings:
+ <code>lat = "48.44"</code>
+ ,
+ <code>lng = "2.24"</code>
+ and
+ <code>zoom = "5"</code>
+ .
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis>
+ initial rendering
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gmap2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ It's also possible to set accessible controls on the
+ <property>map</property>
+ with the help of the attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>
+ "showGMapTypeControl"
+ </property>
+ </emphasis>
+ determines whether the controls for a map type
+ definition are switched on
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>
+ "showGScaleControl"
+ </property>
+ </emphasis>
+ determines whether the controls for scaling are
+ switched on
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>
+ "showGLargeMapControl"
+ </property>
+ </emphasis>
+ determines whether the control for
+ <property>map</property>
+ scale rendering is rendered
+ </para>
+ </listitem>
+ </itemizedlist>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis>
+ accessible controls
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/gmap3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ To set the controls as well as to perform other activities (Zoom
+ In/Out etc.) is possible with your JavaScript, i.e. declare
+ a name of a <property>map</property> object in the
+ <emphasis>
+ <property>"gmapVar"</property>
+ </emphasis>
+ attribute and then call the object directly with
+ <emphasis>
+ <property>Google Maps</property>
+ </emphasis> API.
+ </para>
+
+ <para>
+ For instance, if you have <code>gmapVar = "map"</code> declared for your component, to zoom in a map you should call <code>map.zoomIn()</code> on an
+ event. See also an example of <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis> usage on the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/gmap.jsf?c=gmap">RichFaces Live Demo</ulink>.
+ </para>
+
+ <tip>
+ <title>Tip:</title>
+ <para>You do not need to use reRender to perform uptades for the <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis> component. Use the <emphasis>
+ <property>"gmapVar"</property>
+ </emphasis> attribute and
+ <ulink url="http://code.google.com/intl/ru/apis/maps/documentation/reference.html">Google Maps native API</ulink> instead as it's described above.</para>
+ </tip>
+
+ <para>
+ Moreover, to add e.g. some JavaScript effects, events
+ defined on it are used.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>etc.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>
+ Google Map does not support XHTML format of the page.
+ Thus, if you use Facelets and JSF 1.2, do not forget to
+ put the following tags somewhere on the page:
+ </para>
+ <programlisting role="XML">...
+<f:view contentType="text/html">...</f:view>
+...
+</programlisting>
+ </note>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/gmap.html">Table of
+ <rich:gmap>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Gmap</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlGmap</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Gmap</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.GmapRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.GmapTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="gC">
+ <title>
+ Classes names that define a component appearance
+ </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-gmap</entry>
+ <entry>
+ Defines styles for a wrapper <div>
+ element of a component
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/gmap.jsf?c=gmap">
+ On the component Live Demo page
+ </ulink>
+ you can see the example of
+ <emphasis role="bold">
+ <property><rich:gmap></property>
+ </emphasis>
+ usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_graphValidator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_graphValidator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_graphValidator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,171 @@
+<section role="NotInToc" id="rich_graphValidator">
+ <title>
+ <
+ rich:graphValidator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.2</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The<emphasis role="bold">
+ <property><rich:graphValidator></property>
+ </emphasis>component allows to register Hibernate Validators for multiple input components.</para>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Skips all JSF processing except validation</para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The<emphasis role="bold">
+ <property><rich:graphValidator></property>
+ </emphasis>component behaves basically the same way as the <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> The deference between these two components is that in order to
+ validate some input data with a <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis> component, it should be a nested element of an input component,
+ whereas <emphasis role="bold">
+ <property><rich:graphValidator></property>
+ </emphasis> wraps multiple input components and validates the data received from
+ them. </para>
+
+ <para>The following example demonstrates a pattern of how the <emphasis role="bold">
+ <property><rich:graphValidator></property>
+ </emphasis> can be used:</para>
+ <programlisting role="XML">...
+<rich:graphValidator>
+ <h:panelGrid columns="3">
+ <h:outputText value="Name:" />
+ <h:inputText value="#{validationBean.name}" id="name">
+ <f:validateLength minimum="2" />
+ </h:inputText>
+ <rich:message for="name" />
+ <h:outputText value="Email:" />
+ <h:inputText value="#{validationBean.email}" id="email" />
+ <rich:message for="email" />
+ </h:panelGrid>
+</rich:graphValidator>
+...</programlisting>
+
+ <para>The data validation can be also performed using Hibernate Validator, the same way as
+ it is done with <emphasis role="bold">
+ <property><rich:beanValidator></property>
+ </emphasis>. </para>
+
+
+
+ <para>The components's architecture provides an option to bind the component to a
+ managed bean, which is done with the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute. The attribute ensures that the entered data is valid
+ after the model is updated by revalidating the bean properties.</para>
+ <para>Please look at the example below.</para>
+
+
+ <programlisting role="XML">...
+<rich:graphValidator summary="Invalid values: " value="#{dayStatistics}">
+ <a4j:repeat value="#{dayStatistics.dayPasstimes}" var="pt" id="table">
+ <h:outputText value="#{pt.title}" />
+ <rich:inputNumberSpinner minValue="0" maxValue="24" value="#{pt.time}" id="time" />
+ <rich:message for="time" />
+ </a4j:repeat>
+</rich:graphValidator>
+...</programlisting>
+
+
+ <para>Hence, the given above code will provide the functionality that is illustrated on the images below.</para>
+
+ <figure>
+ <title>"Games" field did not pass validation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/graphValidator11.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>As you can see from the picture the "Games" field did not pass validation, as <emphasis role="bold">
+ <property><rich:graphValidator></property>
+ </emphasis> can be used to perform validation of a single input item.
+ </para>
+
+ <figure>
+ <title>Total sum of all input values is incorrect</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/graphValidator12.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The figure above shows that the entered data was revalidated after all fields were completed, and the data did not pass revalidation since the total sum was incorrect. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/graphValidator.html">Table of
+ <rich:graphValidator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.graphValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlgraphValidator</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.graphValidator</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.graphValidatorRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.graphValidatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/graphValidator.jsf?c=...">GraphValidator page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_hotKey.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_hotKey.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_hotKey.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,281 @@
+<section role="NotInToc" id="rich_hotKey">
+ <title>
+ <
+ rich:hotKey
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.2</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> component allows to register hot keys for the page or particular elements and to define client-side processing functions for these keys.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Includes all features of the <ulink url="http://code.google.com/p/js-hotkeys/">Javascript jQuery Hotkeys Plugin</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Hot key registration by request through JavaScript API
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Possibility to attach <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> to a whole page or
+ to a particular element using <emphasis>
+ <property>"selector"</property>
+ </emphasis> attribute
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Hot key registration timing
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Enabling/disabling the <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> using JavaScript API
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ There are two ways to register <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ just place it anywhere on the page. In this case the <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis>
+ component is attached to the whole page (<property>html[0] element</property>). This is default scenario.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ attach it with <emphasis>
+ <property>"selector"</property>
+ </emphasis> attribute to all the elements defined using this selector.
+ This attribute uses defined by <ulink url="http://www.w3.org">w3c consortium</ulink> syntax for CSS rule selector with some jQuery extensions.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <emphasis>
+ <property>"key"</property>
+ </emphasis> attribute defines the hot key itself
+ which is processed by the component.
+ </para>
+ <para>
+ After the hot key has been registered and defined you could set the <emphasis>
+ <property>"handler"</property>
+ </emphasis>
+ attribute which determines a JavaScript function to be called every time when corresponding keys are pressed.
+ </para>
+ <para>
+ <emphasis role="bold">
+ Example:
+ </emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:listShuttle var="cap" sourceValue="#{capitalsBean.capitals}" id="ls">
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="State flag"/>
+ </f:facet>
+ <h:graphicImage value="#{cap.stateFlag}"/>
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="State name"/>
+ </f:facet>
+ <h:outputText value="#{cap.name}"/>
+ </rich:column>
+</rich:listShuttle>
+<rich:hotKey selector="#ls" key="right" handler="#{rich:component('ls')}.copy()"/>
+<rich:hotKey selector="#ls" key="left" handler="#{rich:component('ls')}.remove()"/>
+<rich:hotKey selector="#ls" key="end" handler="#{rich:component('ls')}.copyAll()"/>
+<rich:hotKey selector="#ls" key="home" handler="#{rich:component('ls')}.removeAll()"/>
+...</programlisting>
+ <para>
+ In the example above the <emphasis>
+ <property>"selector"</property>
+ </emphasis> attribute is used.
+ So the keys work only if <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component is focused.
+ </para>
+ <para>
+ You could press <property>Right</property> or <property>Left</property> keys in order to move some selected items between lists.
+ You could press <property>Home</property> or <property>End</property> buttons in order to move all items between lists.
+ </para>
+ <para>
+ With the help of the <emphasis>
+ <property>"timing"</property>
+ </emphasis> attribute
+ you could manage <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> registration timing.
+ There are three possible values of this attribute:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ "immediate" - the component is rendered in browser immediately (by default)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "onload" - the component is rendered after the page is fully loaded
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "onregistercall" - the component is rendered only after JavaScript API for the key registration is used.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute defines the type of keyboard event. Possible values are:
+ "onkeyup", "onkeypress" and "onkeydown".
+ </para>
+ <!--EXAMPLE -->
+ <para>
+ The <emphasis>
+ <property>"disableInInput"</property>
+ </emphasis> attribute disables the <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> if it is activated on input elements and the value of this attribute is "true".
+ </para>
+ <para>
+ The <emphasis>
+ <property>"checkParent"</property>
+ </emphasis> attribute defines the hotkey handling of events generated by child components nested into the parent component to which the <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> is attached.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> component also provides a number of JavaScript API functions. There is an example below.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form id="myForm">
+ <rich:hotKey id="myKey" key="ctrl+g" handler="alert('Ctrl+G is pressed')" />
+ <button onclick="${rich:component('myKey')}.enable(); return false;">Turn Ctrl+G On</button>
+ <button onclick="${rich:component('myKey')}.disable(); return false;">Turn Ctrl+G Off</button>
+</h:form>
+...</programlisting>
+ <para>
+ In the example above the <property>Ctrl+G</property> is registered as a global hotkey,
+ so if you press this key combination the alert window with the <property>"Ctrl+G is pressed"</property> text appears. With the help
+ of <property>enable()</property>, <property>disable()</property> JavaScript API fucntions you could enable or disable registered hotkey.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/hotKey.html">Table of
+ <rich:hotKey>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.HotKey</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlHotKey</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.HotKey</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.HotKeyRenderer</entry>
+ </row>
+ <!--row>
+ <entry>tag-class</entry>
+ <entry></entry>
+ </row-->
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ add(selector, key, handler)
+ </entry>
+ <entry>
+ Adds the hotkey(from key param) for elements targeted by selector. it assigns a handler function to the key
+ </entry>
+ </row>
+ <row>
+ <entry>remove()</entry>
+ <entry>Removes hotkey registration</entry>
+ </row>
+ <row>
+ <entry>enable()</entry>
+ <entry>Enables registered hotkey</entry>
+ </row>
+ <row>
+ <entry>disable()</entry>
+ <entry>Disables registered hotkey</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/hotKey.jsf?c=hotKey">On RichFaces LiveDemo page </ulink> you can see an example of
+ <emphasis role="bold">
+ <property><rich:hotKey></property>
+ </emphasis> usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceInput.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceInput.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceInput.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,695 @@
+<section role="NotInToc" id="rich_inplaceInput">
+ <title>
+ <
+ rich:inplaceInput
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis> is an input component used for displaying and editing data inputted. </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>View/changed/edit states highly customizable representations</para>
+ </listitem>
+ <listitem>
+ <para>Changing state event customization</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to call custom JavaScript function on state changes</para>
+ </listitem>
+ <listitem>
+ <para>Optional "inline" or "block" element rendering on a page</para>
+ </listitem>
+ <listitem>
+ <para>Edit mode activation when the component gets focus with the "Tab"</para>
+ </listitem>
+ <listitem>
+ <para>Sizes synchronizations between modes</para>
+ </listitem>
+ <listitem>
+ <para>Controls customization</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis>
+ component was designed to facilitate displaying and inputting(editing) some data.
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute is a value-binding expression for the current value of the component.
+ </para>
+ <!--para>
+ However, if
+ <emphasis><property>"value"</property></emphasis>
+ attribute is not defined, you can use
+ <emphasis><property>"defaultLabel"</property></emphasis> attribute
+ which displays some default text while
+ <emphasis><property>"value"</property></emphasis>
+ attribute stays undefined.
+ </para--> <para>
+ The component has three functional states:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <property>View</property> state displays default label with the value taken from
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> or <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis> attributes.
+ </para>
+ <para>
+ If the initial value of the <emphasis>
+ <property>"value"</property>
+ </emphasis>
+ attribute is "null" or <property>empty string</property>
+ the <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis> attribute is used to define default label.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" defaultLabel="click to edit"/>
+... </programlisting>
+
+ <!-- <para>
+ The managed bean code:
+ </para>-->
+<!-- <programlisting role="JAVA"><![CDATA[...
+private String value = null;
+...]]> </programlisting>-->
+ <para>
+ In the example above the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute is not initialized
+ therefore "<code>click to edit</code>" text, that
+ <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis>, contains is displayed.
+ </para>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>View state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Edit</property> state - input representation to allow value edit
+ </para>
+ <figure>
+ <title>Edit state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Changed</property> state - value representation after it was changed</para>
+ <figure>
+ <title>Changed state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ The <emphasis>
+ <property>"editEvent"</property>
+ </emphasis> attribute provides an option to assign a JavaScript action
+ to initiate the change of the state from <property>view</property>/<property>changed</property> to <property>edit</property>.
+ The default value is "onclick".
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" editEvent="ondblclick"/>
+... </programlisting>
+
+ <!--note>
+ <title>Note:</title>
+ <para>
+ Do not use "on" prefix applying event action. E.g. use "click" instead of "onClick", use "mouseover" instead of "onMouseOver".
+ </para>
+ </note-->
+
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis>
+ component provides specific event attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oneditactivation"</property>
+ </emphasis> which is fired on <property>edit</property> state activation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oneditactivated"</property>
+ </emphasis> which is fired when <property>edit</property> state is activated
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onviewactivation"</property>
+ </emphasis> which is fired on <property>view</property> state activation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onviewactivated"</property>
+ </emphasis> which is fired after the component is changed to representation state
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" oneditactivation="if (!confirm('Are you sure you want to change the value?')){return false;}" />
+... </programlisting>
+ <para>
+ The given code illustrates how <emphasis>
+ <property>"oneditactivation"</property>
+ </emphasis> attribute works,
+ namely when the state is being changed from <property>view</property> to <property>edit</property>,
+ a confirmation window with a message <code>"Are you sure you want to change value?"</code> comes up.
+ </para>
+
+ <para>
+ Using the boolean <emphasis>
+ <property>"selectOnEdit"</property>
+ </emphasis> attribute set to true,
+ the text in the input field will be selected when
+ the change from <property>view</property>/<property>changed</property> state to <property>edit</property> occurs.
+ </para>
+
+ <para>This is the result:</para>
+
+ <figure>
+ <title>Usage of the <emphasis>
+ <property>"selectOnEdit"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <para>
+ If the <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis> loses focus, input data is saved automatically
+ and the component displays a new value. Additionally, the data is saved when "Enter" is pressed.
+ Nevertheless, you can use the <emphasis>
+ <property>"showControls"</property>
+ </emphasis>
+ attribute, which makes "Save" and "Cancel" buttons appear next to the input field.
+ If the controls are used, data is not saved automatically when the form loses focus: user has to confirm that he/she wants to save/discard the data explicitly.
+ In both cases(with controls or without them) the input data can be discarded by pressing "Esc" key.
+
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" showControls="true"/>
+... </programlisting>
+ <figure>
+ <title>Usage <emphasis>
+ <property>"showControls"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput6.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ You can also position the controls relatively to the input field, by means of
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <emphasis>
+ <property>"controlsHorizontalPosition"</property>
+ </emphasis> attribute
+ with "left", "right" and "center" definitions
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <emphasis>
+ <property>"controlsVerticalPosition "</property>
+ </emphasis> attribute
+ with "bottom", "center" and "top" definitions
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" showControls="true" controlsVerticalPosition="bottom" controlsHorizontalPosition="left"/>
+... </programlisting>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>Positioning of "Save" and "Cancel" buttons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput7.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ It is also possible to use <emphasis>
+ <property>"controls"</property>
+ </emphasis> facet in order to replace the default controls with facets content.
+ See the example below.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput defaultLabel="Click here to edit" showControls="true" controlsHorizontalPosition="left" controlsVerticalPosition="bottom" id="inplaceInput">
+ <f:facet name="controls">
+ <h:commandButton value="Save" onclick="#{rich:component('inplaceInput')}.save();" type="button" />
+ <h:commandButton value="Cancel" onclick="#{rich:component('inplaceInput')}.cancel();" type="button" />
+ </f:facet>
+</rich:inplaceInput>
+... </programlisting>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>
+ <emphasis>
+ <property>"controls"</property>
+ </emphasis> facet usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput8.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <note>
+ <title>Note:</title>
+ <para>
+ The <emphasis>
+ <property>"controls"</property>
+ </emphasis>facet also implies using
+ <emphasis>
+ <property>"showControls"</property>
+ </emphasis>
+ attribute and it has to be defined as "true".
+ </para>
+ </note>
+ <para>
+ Redefinition of the
+ "save" and "cancel" icons can be performed using
+ <emphasis>
+ <property>"saveControlIcon"</property>
+ </emphasis>
+ and
+ <emphasis>
+ <property>"cancelControlIcon"</property>
+ </emphasis>
+ attributes. You need to define the path to where your images are located.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceInput value="#{bean.value}" defaultLabel='click to edit'
+ showControls="true"
+ controlsHorizontalPosition="left"
+ controlsVerticalPosition="top"
+ saveControlIcon="/images/cancel.gif"
+ cancelControlIcon="/images/save.gif"/>
+ ... </programlisting>
+ <figure>
+ <title>Redefining of "save" and "cancel" buttons</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceInput9.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis> component could be rendered with
+ <emphasis role="bold">
+ <property><span></property>
+ </emphasis> or <emphasis role="bold">
+ <property><div></property>
+ </emphasis>
+ elements to display its value.
+ In order to change default <emphasis role="bold">
+ <property><span></property>
+ </emphasis> output,
+ use <emphasis>
+ <property>"layout"</property>
+ </emphasis> attribute with "block" value.
+ </para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceInput></property>
+ </emphasis> component supports standard
+ <emphasis>
+ <property>"tabindex"</property>
+ </emphasis> attribute.
+ When the component gets focus the <property>edit</property> mode is activated.
+ </para>
+ <para>
+ The
+ <emphasis>
+ <property>"inputWidth"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"minInputWidth"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"maxInputWidth"</property>
+ </emphasis>
+ attributes are provided to specify the width, minimal width and maximal width for the input element respectively.
+ </para>
+ <table>
+ <title>Keyboard usage</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>ENTER</entry>
+ <entry>Saves the input data, and changes the state from edit to changed</entry>
+ </row>
+ <row>
+ <entry>ESC</entry>
+ <entry>Changes the state from edit to view or changed, value is not affected</entry>
+ </row>
+ <row>
+ <entry>TAB</entry>
+ <entry>Switches between the components</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/inplaceInput.html">Table of
+ <rich:inplaceInput>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.inplaceInput</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlInplaceInput</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.inplaceInput</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.inplaceInputRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.inplaceInputTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>edit()</entry>
+ <entry>Changes the state to edit </entry>
+ </row>
+ <row>
+ <entry>cancel()</entry>
+ <entry>Changes its state to the previous one before editing (changed or view)</entry>
+ </row>
+ <row>
+ <entry>save()</entry>
+ <entry>Changes its state to changed with a new value</entry>
+ </row>
+ <row>
+ <entry>getValue()</entry>
+ <entry>Gets the current value</entry>
+ </row>
+ <row>
+ <entry>setValue(newValue) </entry>
+ <entry>Sets the current value (to be implemented)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>controls</entry>
+ <entry>Defines the contols contents. Related attributes are "saveControlIcon" and "cancelControlIcon"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace</entry>
+ <entry>Defines styles for a wrapper <span> (or <div>) element of a component</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-input</entry>
+ <entry>Defines styles for the component input field</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn_iI">
+ <title>Class name for the view state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-view</entry>
+ <entry>Defines styles for the view state</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-input-view-hover</entry>
+ <entry>Defines styles for hovered text in the view state </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Class name for the input field in edit state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-field</entry>
+ <entry>Defines styles for the input field look and feel in edit state</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Class name for the "Changed" state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-changed</entry>
+ <entry>Defines styles for the "Changed" state</entry>
+ </row>
+ <row>
+ <entry> rich-inplace-input-changed-hover </entry>
+ <entry>Defines styles for the hovered text in the "Changed" state</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names for "save" and "cancel" controls in Edit state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-inplace-control</entry>
+ <entry>Defines styles for the controls</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-control-press</entry>
+ <entry>Defines styles for the controls when either of the buttons is pressed</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-shadow-size</entry>
+ <entry>Defines size of the shadow</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-shadow-tl</entry>
+ <entry>Defines styles for the shadow in the top left corner </entry>
+ </row>
+ <row>
+ <entry>rich-inplace-shadow-tr</entry>
+ <entry>Defines styles for the shadow in the top right corner</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-shadow-bl</entry>
+ <entry>Defines styles for the shadow in the bottom left corner</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-shadow-br</entry>
+ <entry>Defines styles for the shadow in the bottom right corner</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceInput.jsf?c=in...">On the component Live Demo page</ulink>
+ you can see the example of <emphasis role="bold">
+ <property><rich:inplaceIput></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceSelect.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceSelect.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inplaceSelect.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,726 @@
+<section role="NotInToc" id="rich_inplaceSelect">
+ <title>
+ <
+ rich:inplaceSelect
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> is used for creation select based inputs: it shows the value as text in one state and enables editing the value, providing a list of options in another state</para>
+
+ <figure>
+ <title>Three states of <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>View/changed/edit states highly customizable representations</para>
+ </listitem>
+ <listitem>
+ <para>Optional "inline" or "block" element rendering on a page</para>
+ </listitem>
+ <listitem>
+ <para>Changing state event customization</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to call custom JavaScript function on state changes</para>
+ </listitem>
+ <listitem>
+ <para>Edit mode activation when the component got focus with the "Tab"</para>
+ </listitem>
+ <listitem>
+ <para>Sizes synchronizations between modes</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+
+ <para>
+ The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute is a value-binding expression for the current value of the component.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> component has three functional states:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <property>View</property> state displays default label with the value taken from
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> or <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis> attributes.
+ </para>
+ <para>
+ If the initial value of the <emphasis>
+ <property>"value"</property>
+ </emphasis>
+ attribute is "null" or <property>empty string</property>
+ the <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis> attribute is used to define default label.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.value}" defaultLabel="click to edit">
+ <f:selectItems value="#{bean.selectItems}" />
+</rich:inplaceSelect>
+... </programlisting>
+ <!-- <para>
+ The managed bean code:
+ </para>
+ <programlisting role="JAVA"><![CDATA[...
+private String value = "";
+...]]> </programlisting>-->
+
+
+ <para>
+ In the example above the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute is not initialized
+ therefore "<code>click to edit</code>" text, that
+ <emphasis>
+ <property>"defaultLabel"</property>
+ </emphasis>, contains is displayed.
+ </para>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>View state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Edit </property>state - select representation to allow value edit
+ </para>
+ <figure>
+ <title>Edit state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Changed</property> state - value representation after it was changed
+ </para>
+ <figure>
+ <title>Changed state</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ You can form the list of the options using <emphasis role="bold">
+ <property><f:selectItem/></property>
+ </emphasis> and
+ <emphasis role="bold">
+ <property><f:selectItems/></property>
+ </emphasis> JSF components.
+ </para>
+ <para>
+ Please, see the example below.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="click to edit">
+ <f:selectItems value="#{bean.selectItems}"/>
+ <f:selectItem itemValue="1" itemLabel="factory"/>
+ <f:selectItem itemValue="2" itemLabel="newspaper"/>
+</rich:inplaceSelect>
+...</programlisting>
+
+ <para>
+ In the example above the value of the selected item is available via <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute.
+</para>
+ <para>
+ The <emphasis>
+ <property>"editEvent"</property>
+ </emphasis> attribute provides an option to assign an JavaScript action
+ that initiates the change of the state from <property>view</property> to <property>edit</property>.
+ The default value is "onclick".
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" defaultLabel="Double Click to edit" editEvent="ondblclick">
+ <f:selectItems value="#{demo.selectItems}" />
+</rich:inplaceSelect>
+...</programlisting>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis>
+ component provides specific event attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oneditactivation"</property>
+ </emphasis> fired on <property>edit</property> state activation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oneditactivated"</property>
+ </emphasis> fired when <property>edit</property> state is activated
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onviewactivation"</property>
+ </emphasis> fired on <property>view</property> state activation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onviewactivated"</property>
+ </emphasis> fired after the component is changed to representation state
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" oneditactivation="if (!confirm('Are you sure you want to change the value?')){return false;}">
+ <f:selectItems value="#{demo.selectItems}" />
+</rich:inplaceSelect>
+... </programlisting>
+ <para>
+ The given code illustrates how <emphasis>
+ <property>"oneditactivation"</property>
+ </emphasis> attribute works,
+ namely when the state is being changed from <property>view</property> to <property>edit</property>,
+ a confirmation window with a message <code>"Are you sure you want to change value?"</code> comes up.
+ </para>
+
+ <!-- <para>
+ The <emphasis><property>"selectOnEdit"</property></emphasis> (with possible values "true", "false") gives you an
+ option to make the text in the input field selected right after the change from <property>view</property> state to <property>edit</property> occurs.
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<rich:inplaceSelect value="#{bean.inputValue}" selectOnEdit="true">
+ <f:selectItems value="#{bean.selectItems}"/>
+</rich:inplaceSelect>
+...]]></programlisting> -->
+
+
+
+ <para>
+ To prevent opening the drop-down list by default, once <property>edit</property> state is activated,
+ set the <emphasis>
+ <property>"openOnEdit"</property>
+ </emphasis> attribute to "false".
+ The default value is "true".
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" showControls="true" openOnEdit="false">
+ <f:selectItems value="#{bean.selectItems}"/>
+</rich:inplaceSelect>
+...</programlisting>
+
+
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>The <emphasis>
+ <property>"openOnEdit"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para>
+ Nowever, if you want to confirm the data saving explicitly you can use the <emphasis>
+ <property>"showControls"</property>
+ </emphasis> attribute,
+ which makes "Save" and "Cancel" buttons (displayed as icons) appear next to the input field.
+ <property>Edit</property> state can be deactivated by pressing "Esc" key.
+ An option in the drop-drown list can be also selected by pressing "Enter".
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" showControls="true">
+ <f:selectItems value="#{bean.selectItems}"/>
+</rich:inplaceSelect>
+...</programlisting>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>The <emphasis>
+ <property>"showControls"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect6.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ You can also position the controls relatively to the input field, by means of
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <emphasis>
+ <property>"controlsHorizontalPosition"</property>
+ </emphasis> attribute
+ with "left", "right" and "center" definitions
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <emphasis>
+ <property>"controlsVerticalPosition "</property>
+ </emphasis> attribute
+ with "bottom" and "top" definitions
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" controlsHorizontalPosition="left" controlsVerticalPosition="center" showControls="true">
+ <f:selectItems value="#{bean.selectItems}"/>
+</rich:inplaceSelect>
+... </programlisting>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>Controls positioning</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect7.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>It is also possible to use <emphasis>
+ <property>"controls"</property>
+ </emphasis>
+ facet in order to replace the default controls with facets content. See the example below.
+ </para>
+ <para>Please, see the example.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inplaceSelect value="#{bean.inputValue}" showControls="true">
+ <f:facet name="controls">
+ <button onclick="#{rich:component('inplaceSelect')}.save();" type="button">Save</button>
+ <button onclick="#{rich:component('inplaceSelect')}.cancel();" type="button">Cancel</button>
+ </f:facet>
+ <f:selectItems value="#{bean.selectItems}"/>
+</rich:inplaceSelect>
+... </programlisting>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>
+ <emphasis>
+ <property>"controls"</property>
+ </emphasis> facet usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inplaceSelect8.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <note>
+ <title>Note:</title>
+ <para>
+ The <emphasis>
+ <property>"controls"</property>
+ </emphasis>facet also implies using
+ <emphasis>
+ <property>"showControls"</property>
+ </emphasis>
+ attribute and it has to be defined as "true".
+ </para>
+ </note>
+
+
+ <!--Icons redefinitions-->
+ <!--para>
+ Redefinition of the
+ "save" and "cancel" icons can be performed using
+ <emphasis><property>"saveControlIcon"</property></emphasis>
+ and
+ <emphasis><property>"cancelControlIcon"</property></emphasis>
+ attributes r. You need to define the path to where your images are located.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<rich:inplaceSelect
+ value="#{inplaceComponentsBean.inputValue}" defaultLabel="Click to edit" showControls="true"
+ showControls="true"
+ controlsHorizontalPosition="left"
+ controlsVerticalPosition="top"
+ saveControlIcon="/richfaces-demo/richfaces/cancel.gif"
+ cancelControlIcon="/richfaces-demo/richfaces/save.gif">
+
+<f:selectItem itemValue="0" itemLabel="oil well"/>
+<f:selectItem itemValue="1" itemLabel="factory"/>
+<f:selectItem itemValue="2" itemLabel="newspaper"/>
+</rich:inplaceSelect>
+ ...]]> </programlisting--> <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> component could be rendered with
+ <emphasis role="bold">
+ <property><span></property>
+ </emphasis> or <emphasis role="bold">
+ <property><div></property>
+ </emphasis>
+ elements to display its value.
+ In order to change default <emphasis role="bold">
+ <property><span></property>
+ </emphasis> output,
+ use the <emphasis>
+ <property>"layout"</property>
+ </emphasis> attribute with "block" value.
+ </para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> component supports standard
+ <emphasis>
+ <property>"tabindex"</property>
+ </emphasis> attribute.
+ When the component gets focus the <property>edit</property> mode is activated and drop-down list is opened.
+ </para>
+ <para>
+ The
+ <emphasis>
+ <property>"selectWidth"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"minSelectWidth"</property>
+ </emphasis> and
+ <emphasis>
+ <property>"maxSelectWidth"</property>
+ </emphasis>
+ attributes are provided to specify the width, minimal width and maximal width for the input element respectively.
+ </para>
+ <para>
+ In order to specify the height and width parameters for the list items of the component, you can use
+ <emphasis>
+ <property>"listHeight"</property>
+ </emphasis> and
+ <emphasis>
+ <property>" listWidth"</property>
+ </emphasis> attributes.
+
+
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/inplaceSelect.html">Table of
+ <rich:inplaceSelect>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.InplaceSelect</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlInplaceSelect</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.InplaceSelect</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.InplaceSelectRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.InplaceSelectTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>edit()</entry>
+ <entry>Changes the state to edit </entry>
+
+ </row>
+ <row>
+ <entry>cancel()</entry>
+ <entry>Changes its state to the previous one before editing (changed or view)</entry>
+
+ </row>
+
+
+ <row>
+ <entry>save()</entry>
+ <entry>Changes its state to changed with a new value</entry>
+ </row>
+
+ <row>
+ <entry>getValue()</entry>
+ <entry>Gets the current value</entry>
+ </row>
+
+ <row>
+ <entry>setValue(newValue)</entry>
+ <entry>Sets the current value and name</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>controls</entry>
+ <entry>Defines the contols contents. Related attributes are "saveControlIcon" and "cancelControlIcon"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="cn3">
+ <title>Class name for the view state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-select-view</entry>
+ <entry>Defines styles for the select view</entry>
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Class name for the input field in edit state</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-select-field</entry>
+ <entry>Defines styles for the select field</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Class name for the control</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-select-control</entry>
+ <entry>Defines styles for the select control</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-select-control-press</entry>
+ <entry>Defines styles for the pressed select control</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Class name for the list</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-inplace-select-list-decoration</entry>
+ <entry>Defines styles for a wrapper <table> element of an inplaceSelect</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names for the selected item</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-inplace-select-selected-item</entry>
+ <entry>Defines styles for the selected item</entry>
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names for the shadow</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-inplace-select-shadow-tl</entry>
+ <entry>Defines styles for the top-left shadow</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-select-shadow-tr</entry>
+ <entry>Defines styles for the top-right shadow</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-select-shadow-bl</entry>
+ <entry>Defines styles for the bottom-left shadow</entry>
+ </row>
+ <row>
+ <entry>rich-inplace-select-shadow-br</entry>
+ <entry>Defines styles for the bottom-right shadow</entry>
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceSelect.jsf?c=i...">On the component Live Demo page</ulink>
+ you can see the example of <emphasis role="bold">
+ <property><rich:inplaceSelect></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSlider.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSlider.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSlider.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,413 @@
+<section role="NotInToc" id="rich_inputNumberSlider">
+ <title>
+ <
+ rich:inputNumberSlider
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis> component is a slider component. A handler's position corresponds to a definite value on the slider track. In order to change the value you can slide a handler or set the necessary value into the input field.
+ You can dispose it horizontally or vertically on the page.</para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis> component, horizontal and vertical views</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSlider_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Fully skinnable control and input elements</para>
+ </listitem>
+ <listitem>
+ <para>Optional value text field with an attribute-managed position</para>
+ </listitem>
+ <listitem>
+ <para>Optional disablement of the component on a page</para>
+ </listitem>
+ <listitem>
+ <para>Optional toolTip to display the current value while a handle is dragged</para>
+ </listitem>
+ <listitem>
+ <para>Dragged state is stable after the mouse moves</para>
+ </listitem>
+ <listitem>
+ <para>Optional manual input possible if a text input field is present</para>
+ </listitem>
+ <listitem>
+ <para>Validation of manual input</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to display 2 controls that increase/decrease the value by the defined step width, when they will be clicked.</para>
+ </listitem>
+ <listitem>
+ <para>Attribute "orientation" that can have the values "vertical" and "horizontal" to define in which direction the slider should be movable.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis>
+ is used to facilitate your data input with rich UI Controls.
+ </para>
+ <para>
+ Here is the simplest variant of a slider definition with
+ <emphasis>
+ <property moreinfo="none">"minValue"</property>
+ ,
+ </emphasis>
+ <emphasis>
+ <property moreinfo="none">"maxValue"</property>
+ </emphasis>
+ and
+ <emphasis>
+ <property moreinfo="none">"step"</property>
+ </emphasis>
+ (on default is "1") attributes, which define the
+ beginning and the end of a numerical area and a
+ <property moreinfo="none">slider</property>
+ property step.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML" format="linespecific"><rich:inputNumberSlider></rich:inputNumberSlider></programlisting>
+ <para>It's generated on a page:</para>
+ <figure float="0">
+ <title>
+ Generated
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSlider2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Using
+ <emphasis>
+ <property moreinfo="none">"showInput"</property>
+ </emphasis>
+ (default is "true") and
+ <emphasis>
+ <property moreinfo="none">"enableManualInput"</property>
+ </emphasis>
+ (default value is "true") attributes, it's possible to
+ output the input area near the slider, and make it read-only
+ or editable.
+ </para>
+ <para>
+ To remove input area use
+ <code>showInput = "false"</code>
+ :
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML" format="linespecific"><rich:inputNumberSlider minValue="1" maxValue="100" showInput="false"/></programlisting>
+ <para>It's displayed at a page like:</para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis>
+ without input field
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSlider3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ It's also possible to switch off displaying of
+ "boundary values" and a toolTip showing on a
+ handle drawing. This could be performed with the help of the
+ component defined attributes:
+ <emphasis>
+ <property moreinfo="none">"showBoundaryValues"</property>
+ </emphasis>
+ which is responsible for "boundary values"
+ displaying (default is true) and
+ <emphasis>
+ <property moreinfo="none">"showToolTip"</property>
+ </emphasis>
+ which is responsible for tooltTip displaying (default is
+ "true").
+ </para>
+ <para>
+ Moreover, to add e.g. some JavaScript effects, events
+ defined on it are used.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property moreinfo="none">"onchange"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property moreinfo="none">"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property moreinfo="none">"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property moreinfo="none">"onfocus"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property moreinfo="none">"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>etc.</para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The
+ <emphasis>
+ <property moreinfo="none">"label"</property>
+ </emphasis>
+ attribute is a generic attribute. The
+ <emphasis>
+ <property moreinfo="none">"label"</property>
+ </emphasis>
+ attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This
+ attribute defines the parameters of a localized error and
+ informational messages that occur as a result of conversion,
+ validation, or other application actions during the request
+ processing lifecycle. With the help of this attribute you
+ can replace the last parameter substitution token shown in
+ the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>
+ , {2} for
+ <code>"ShortConverter.SHORT"</code>.
+ </para>
+ <!-- <para>Using the
+ <emphasis>
+ <property>"orientation"</property>
+ </emphasis>
+ attribute (default is "horizontal") is possible to change slider position.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<rich:inputNumberSlider minValue="0" maxValue="100" value="84" orientation="vertical"/>]]></programlisting>
+ <para>It looks at page like:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><&slider;></property>
+ </emphasis>
+ in a vertical orientation.
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSlider_vertical.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>--><para>The <emphasis>
+ <property moreinfo="none">"showArrows"</property>
+ </emphasis> boolean attribute when set to "true" enables additional controls for increasing and decreasing slider value.
+ The controls (arrows by default) are placed in the beginning and in the end of slider track:</para>
+ <figure float="0">
+ <title>
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis> with additional controls</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSlider4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Clicking an arrow changes the driven value on the amount defined with <emphasis>
+ <property moreinfo="none">"step"</property>
+ </emphasis> attribute.
+ Keepeng an arrow control pressed changes the value continuous.
+ Time that value takes to change from one step to another is definded with <emphasis>
+ <property moreinfo="none">"delay"</property>
+ </emphasis> attribute.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/inputNumberSlider.html">Table of
+ <rich:inputNumberSlider>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.inputNumberSlider</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>
+ org.richfaces.component.html.HtmlInputNumberSlider
+ </entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.inputNumberSlider</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>
+ org.richfaces.InputNumberSliderRenderer
+ </entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>
+ org.richfaces.taglib.InputNumberSliderTag
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn">
+ <title>
+ Classes names that define a component appearance
+ </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-slider</entry>
+ <entry>
+ Defines styles for a wrapper table element
+ of a component
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-track</entry>
+ <entry>Defines styles for a bar</entry>
+ </row>
+ <row>
+ <entry>rich-inslider-handler</entry>
+ <entry>
+ Defines styles for a slider handler
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-handler-selected</entry>
+ <entry>
+ Defines styles for a selected handler
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-field</entry>
+ <entry>Defines styles for a text field</entry>
+ </row>
+ <row>
+ <entry>rich-inslider-right-num</entry>
+ <entry>
+ Defines styles for the right number
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-left-num</entry>
+ <entry>
+ Defines styles for the left number
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-track-border</entry>
+ <entry>
+ Defines styles for track border
+ </entry>
+ </row>
+ <row>
+ <entry>rich-inslider-tip</entry>
+ <entry>Defines styles for a hint</entry>
+ </row>
+ <row>
+ <entry>inputNumberSlider-increase-vertical</entry>
+ <entry>Defines styles for the top arrow</entry>
+ </row>
+ <row>
+ <entry>inputNumberSlider-decrease-vertical</entry>
+ <entry>Defines styles for the bottom arrow</entry>
+ </row>
+ <row>
+ <entry>inputNumberSlider-increase-horizontal</entry>
+ <entry>Defines styles for the right arrow</entry>
+ </row>
+ <row>
+ <entry>inputNumberSlider-decrease-horizontal</entry>
+ <entry>Defines styles for the left arrow</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inputNumberSlider.jsf...">
+ On the component Live Demo page
+ </ulink>
+ you can see the example of
+ <emphasis role="bold">
+ <property moreinfo="none"><rich:inputNumberSlider></property>
+ </emphasis>
+ usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSpinner.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSpinner.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_inputNumberSpinner.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,284 @@
+<section role="NotInToc" id="rich_inputNumberSpinner">
+ <title>
+ <
+ rich:inputNumberSpinner
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A single line input field that lets selecting a number using controls near
+ a text field. It's possible to change a value using
+ "Up/Down" keyboard keys. The keyboard input in a
+ field is possible if it isn't locked by the <emphasis>
+ <property>"enableManualInput"</property>
+ </emphasis> attribute. When arrow controls are pressed, the cursor can
+ be moved in any way without losing a dragged state.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:inputNumberSpinner></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSpinner_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Fully skinnable control and input elements</para>
+ </listitem>
+ <listitem>
+ <para>3D look and feel with an easily customizable
+ appearance</para>
+ </listitem>
+ <listitem>
+ <para>Attribute-managed positions of the controls
+ (inside/outside of the input field)</para>
+ </listitem>
+ <listitem>
+ <para>Keyboard controls support</para>
+ </listitem>
+ <listitem>
+ <para>Optional disablement of the component on a page</para>
+ </listitem>
+ <listitem>
+ <para>Optional <emphasis>
+ <property>"cycled"</property>
+ </emphasis> mode of scrolling values</para>
+ </listitem>
+ <listitem>
+ <para>Optional manual/controls-only input into a value text
+ field</para>
+ </listitem>
+ <listitem>
+ <para>Validation of manual input</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:inputNumberSpinner></property>
+ </emphasis> is used to facilitate your data input with rich UI
+ Controls. </para>
+ <para> Here is the simplest variant of <property>spinner</property> definition
+ with <emphasis>
+ <property>"minValue"</property> , </emphasis>
+ <emphasis>
+ <property>"maxValue"</property>
+ </emphasis> and <emphasis>
+ <property>"step"</property>
+ </emphasis> (on default is "1") attributes, which
+ define the beginning and the end of numerical area and a
+ <property>spinner</property> step. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:inputNumberSpinner minValue="1" maxValue="100"/>
+...
+</programlisting>
+ <para>It generates on a page:</para>
+ <figure>
+ <title> Generated <emphasis role="bold">
+ <property><rich:inputNumberSpinner></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/inputNumberSpinner2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> There are also several attributes to define functionality peculiarities: </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"cycled"</property>
+ </emphasis> if the attribute is
+ "true" after the current value
+ reaches the border value it's be reversed
+ to another border value after next
+ increasing/decreasing. In other case possibilities
+ of next increasing/decreasing are locked </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"disabled"</property>
+ </emphasis> is an attribute that defines whether a
+ component is active on a page </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"enableManualInput"</property>
+ </emphasis> is an attribute that defines whether a
+ keyboard input is possible or only UI controls
+ could be used </para>
+ </listitem>
+ </itemizedlist>
+ <para> Moreover, to add e.g. some JavaScript effects, events defined on it are
+ used </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onchange"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onfocus"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>etc.</para>
+ </listitem>
+ </itemizedlist>
+ <para> The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This attribute
+ defines the parameters of localized error and informational messages
+ that occur as a result of conversion, validation, or other application
+ actions during the request processing lifecycle. With the help of this
+ attribute you can replace the last parameter substitution token shown
+ in the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>
+ , {2} for <code>"ShortConverter.SHORT"</code> .
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/inputNumberSpinner.html">Table of
+ <rich:inputNumberSpinner>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.inputNumberSpinner</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>
+ org.richfaces.component.html.HtmlInputNumberSpinner
+ </entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.inputNumberSpinner</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry> org.richfaces.InputNumberSpinnerRenderer
+ </entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry> org.richfaces.taglib.InputNumberSpinnerTag
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn1">
+ <title> Classes names that define a component appearance </title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-spinner-c</entry>
+ <entry> Defines styles for a wrapper
+ table element of a component
+ </entry>
+ </row>
+ <row>
+ <entry>rich-spinner-input-container</entry>
+ <entry>Defines styles for a
+ container</entry>
+ </row>
+ <row>
+ <entry>rich-spinner-input</entry>
+ <entry> Defines styles for a wrapper
+ <td> element for
+ input fields </entry>
+ </row>
+ <row>
+ <entry>rich-spinner-button</entry>
+ <entry>Defines styles for a
+ button</entry>
+ </row>
+ <row>
+ <entry>rich-spinner-buttons</entry>
+ <entry>Defines styles for all
+ buttons</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/inputNumberSpinner.js..."> On the component Live Demo page </ulink> you can see the example of <emphasis role="bold">
+ <property><rich:inputNumberSpinner></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_insert.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_insert.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_insert.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,125 @@
+<section role="NotInToc" id="rich_insert">
+ <title>
+ <
+ rich:insert
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:insert></property>
+ </emphasis> component is used for highlighting, source code inserting and, optionally, format the file from the application context into the page.</para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Source code highlighting</para>
+ </listitem>
+ <listitem>
+ <para>Variety of formats for source code highlighting</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The are two basic attributes. The <emphasis>
+ <property>"src"</property>
+ </emphasis> attribute defines the path to the file with source code. The <emphasis>
+ <property>"highlight"</property>
+ </emphasis> attribute defines the type of a syntax highlighting.</para>
+ <para>If <emphasis>
+ <property>"highlight"</property>
+ </emphasis> attribute is defined and <ulink url="https://jhighlight.dev.java.net/">
+ JHighlight</ulink> open source library is in the classpath, the text from the file is
+ formated and colorized.</para>
+ <para>An example is placed below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:insert src="/pages/sourcePage.xhtml" highlight="xhtml"/>
+...</programlisting>
+
+ <para>The result of using <emphasis role="bold">
+ <property><rich:insert></property>
+ </emphasis> component is shown on the picture:</para>
+ <figure>
+ <title>Source code highlighting</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/insert_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>The <emphasis role="bold">
+ <property><rich:insert></property>
+ </emphasis> component provides the same functionality as <ulink url="https://jhighlight.dev.java.net/">JHighlight</ulink>. Thus, all names of highlight
+ style classes for source code of particular language could be changed to your names, which are
+ used by the <ulink url="https://jhighlight.dev.java.net/">JHighlight</ulink> library.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/insert.html">Table of
+ <rich:insert>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.ui.Insert</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.ui.component.html.HtmlInsert</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.ui.Insert</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.ui.InsertRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.ui.taglib.InsertTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/insert.jsf?c=insert">On RichFaces LiveDemo page </ulink> you can found some additional information for <emphasis role="bold">
+ <property><rich:insert></property>
+ </emphasis> component usage. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_jQuery.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_jQuery.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_jQuery.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,368 @@
+<section role="NotInToc" id="rich_jQuery">
+ <title>
+ <
+ rich:jQuery
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> allows to apply styles and behaviour to DOM objects.</para>
+
+ <!--mediaobject>
+ <imageobject>
+ <imagedata fileref="images/jQuery.png"/>
+ </imageobject>
+ </mediaobject-->
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Presents jQuery JavaScript framework functionality</para>
+ </listitem>
+ <listitem>
+ <para>Able to apply onto JSF components and other DOM objects.</para>
+ </listitem>
+ <listitem>
+ <para>Works without conflicts with prototype.js library</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> can be used in two main modes:</para>
+ <itemizedlist>
+ <listitem>
+ <para>as a one-time query applied immediately or on a document ready event</para>
+ </listitem>
+ <listitem>
+ <para>as a JavaScript function that can be invoked from the JavaScript code</para>
+ </listitem>
+ </itemizedlist>
+ <para>The mode is chosen with <emphasis>
+ <property>"timing"</property>
+ </emphasis> attribute that has the following options:</para>
+ <itemizedlist>
+ <listitem>
+ <para>"immediate" - applying a query immediately</para>
+ </listitem>
+ <listitem>
+ <para>"onload" - applying a query when a document is loaded</para>
+ </listitem>
+ <listitem>
+ <para>onJScall - applying a query by invoked JavaScript function defined with the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute</para>
+ </listitem>
+ </itemizedlist>
+ <para>Definition of the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute is mandatory when the value of <emphasis>
+ <property>"timing"</property>
+ </emphasis> attribute is "onJScall". If the<emphasis>
+ <property>"name"</property>
+ </emphasis> attribute is defined when <emphasis>
+ <property>"timing"</property>
+ </emphasis> value equals to "immediate" or
+ "onload", the query is applied according to this
+ value, but you still have an opportunity to invoke it by a function name.</para>
+ <para>The <emphasis>
+ <property>"selector"</property>
+ </emphasis> attribute defines an object or a list of objects. The query is defined with the <emphasis>
+ <property>"query"</property>
+ </emphasis>attribute.</para>
+ <para>Here is an example of how to highlight odd rows in a table:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="CSS">...
+<style>
+ .odd {
+ background-color: #FFC;
+ }
+</style>
+...</programlisting>
+
+ <programlisting role="XML">...
+<rich:table id="customList" ...>
+ ...
+</rich:table>
+...
+<rich:jQuery selector="#customList tr:odd" timing="onload" query="addClass(odd)" />
+...</programlisting>
+ <para>The <emphasis>
+ <property>"selector"</property>
+ </emphasis> attribute uses defined by w3c consortium syntax for CSS rule <ulink url="http://www.w3.org/TR/REC-CSS2/selector.html">selector</ulink> with some jQuery
+ extensions </para>
+ <para>Those are typical examples of using selector in the <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> component.</para>
+
+ <table>
+ <title>Examples of using selector</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Selector</entry>
+
+ <entry>Comment</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>"p[a]"</entry>
+ <entry>In a document all "p" tags with "a" tag
+ inside are selected</entry>
+ </row>
+
+ <row>
+ <entry>"ul/li"</entry>
+ <entry>All "li" elements of unordered "ul" lists are selected
+ </entry>
+ </row>
+
+ <row>
+ <entry>"p.foo[a]"</entry>
+ <entry>All "p" tags with "foo" class and inserted
+ "a" tag are selected</entry>
+ </row>
+
+ <row>
+ <entry>"input[@name=bar]"</entry>
+ <entry>All "input" tags with "name" attribute which
+ value is "bar" are selected</entry>
+ </row>
+
+ <row>
+ <entry>"input[@type=radio][@checked]"</entry>
+ <entry>All "input" tags with attribute
+ "type"="radio" and attribute value =
+ "chekced" are selected</entry>
+ </row>
+
+ <row>
+ <entry>"p,span,td"</entry>
+ <entry>All tag elements "p" or"span" or
+ "td" are selected</entry>
+ </row>
+
+ <row>
+ <entry>"p#secret"</entry>
+ <entry>"p" paragraph element with "id"
+ identification = "secret" is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p span"</entry>
+ <entry>"span" tag is a (direct or non-direct) child of
+ "p" tag. If it's necessary, use "p >
+ span" or "p/span" is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p[@foo^=bar]"</entry>
+ <entry>"p" tag containing "foo" attribute with
+ textual value beginning with "bar" word is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p[@foo$=bar] "</entry>
+ <entry>"p" tag containing "foo" attribute with
+ textual value ending with "bar" word is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p[@foo*=bar] "</entry>
+ <entry>"p" tag with "foo" attribute containing
+ substring "bar" in any place is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p//span "</entry>
+ <entry>"span" tag that is a (direct or non-direct) child of
+ "p" tag is selected</entry>
+ </row>
+
+ <row>
+ <entry>"p/../span "</entry>
+ <entry>"span" tag that is a grandchild of "p" tag is selected</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>In addition, RichFaces allows using either a component id or client id if you apply the
+ query to a JSF component. When you define a selector, RichFaces examines its content and
+ tries to replace the defined in the selector id with a component id if it's found.</para>
+ <para>For example, you have the following code:</para>
+
+ <programlisting role="XML">...
+<h:form id="form">
+ ...
+ <h:panelGrid id="menu">
+ <h:graphicImage ... />
+ <h:graphicImage ... />
+ ...
+ </h:panelGrid>
+</h:form>
+...</programlisting>
+
+ <para>The actual id of the <emphasis role="bold">
+ <property><h:panelGrid></property>
+ </emphasis> table in the browser DOM is <code>"form:menu"</code>. However, you still can
+ reference to images inside this table using the following selector: </para>
+
+ <programlisting role="XML">...
+<rich:jQuery selector="#menu img" query="..." />
+...</programlisting>
+
+ <para>You can define the exact id in the selector if you want. The following code reference to
+ the same set of a DOM object:</para>
+
+ <programlisting role="XML">...
+<rich:jQuery selector="#form\\:menu img" query="..." />
+...</programlisting>
+
+ <para>Pay attention to double slashes that escape a colon in the id.</para>
+
+ <para>In case when the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute is defined, <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> generates a JavaScript function that might be used from any place of JavaScript
+ code on a page.</para>
+
+ <para>There is an example of how to enlarge the picture smoothly on a mouse over event and return
+ back to the normal size on mouse out:</para>
+
+ <programlisting role="XML">...
+<h:graphicImage width="50" value="/images/price.png"
+ onmouseover="enlargePic(this, {pwidth:'60px'})" onmouseout="releasePic(this)" />
+<h:graphicImage width="50" value="/images/discount.png"
+ onmouseover="enlargePic(this, {pwidth:'100px'})" onmouseout="releasePic(this)" />
+...
+<rich:jQuery name="enlargePic" timing="onJScall" query="animate({width:param.pwidth})" />
+<rich:jQuery name="releasePic" timing="onJScall" query="animate({width:'50px'})"/>
+...</programlisting>
+
+ <para>The JavaScript could use two parameters. The first parameter is a replacement for the
+ selector attribute. Thus, you can share the same query, applying it to the different DOM
+ objects. You can use a literal value or a direct reference for an existing DOM object. The
+ second parameter can be used to path the specific value inside the query. The JSON syntax is
+ used for the second parameter. The "param." namespace is used for
+ referencing data inside the parameter value.</para>
+
+ <para>
+ <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> adds styles and behavior to the DOM object dynamically. This means if you replace
+ something on a page during an Ajax response, the applied artifacts is overwritten. But you
+ are allowed to apply them again after the Ajax response is complete.</para>
+ <para>Usually, it could be done with reRendering the <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> components in the same Ajax interaction with the components these queries are
+ applied to. Note, that queries with <emphasis>
+ <property>"timing"</property>
+ </emphasis> attribute set to "onload" are not
+ invoked even if the query is reRendered, because a DOM document is not fully reloaded during
+ the Ajax interaction. If you need to re-applies query with
+ "onload" value of <emphasis>
+ <property>"timing"</property>
+ </emphasis> attribute, define the <emphasis>
+ <property>"name"</property>
+ </emphasis> attribute and invoke the query by name in the <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute of the Ajax component.</para>
+
+ <para>RichFaces includes jQuery JavaScript framework. You can use the futures of jQuery directly
+ without defining the <emphasis role="bold">
+ <property><rich:jQuery></property>
+ </emphasis> component on a page if it is convenient for you. To start using the jQuery feature
+ on the page, include the library into a page with the following code:</para>
+
+ <programlisting role="XML">...
+<a4j:loadScript src="resource://jquery.js"/>
+...</programlisting>
+
+ <para>Refer to the <ulink url="http://docs.jquery.com/">jQuery documentation</ulink> for the
+ right syntax. Remember to use <code>jQuery()</code> function instead of <code>$()</code>, as soon as jQuery works
+ without conflicts with <code>prototype.js</code>.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/jQuery.html">Table of
+ <rich:jQuery>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.JQuery</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlJQuery</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.JQuery</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.JQueryRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.JQueryTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>More information about jQuery framework and its features you can read in<ulink url="http://jquery.com/">jQuery official documentation</ulink>.</para>
+ <para>How to use jQuery with other libraries see also in<ulink url="http://docs.jquery.com/Using_jQuery_with_Other_Libraries">jQuery official documentation</ulink>.</para>
+
+ <para>
+ Some additional information about usage of component can be found
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/jQuery.jsf?c=jQuery">on its LiveDemo</ulink>.
+ </para>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layout.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layout.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layout.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,123 @@
+<section role="NotInToc" id="rich_layout">
+ <title>
+ <
+ rich:layout
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.1</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> component is designed to build layouts basing on Yahoo UI Grids CSS
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Cross-borwser compatibility</para>
+ </listitem>
+ <listitem>
+ <para>Easy layout creation</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>The <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> allows to build a grid that can be used to make the layout on a page. The <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> is used in conjunction with the <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> that is used as a child element and carries the main burden of building the grid.</para>
+
+ <para>Hence, you need to use the <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> as a container and <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> to create areas inside the container.</para> This is how you can make a layout with 5 areas:
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:layout>
+ <rich:layoutPanel position="top">
+ <!--top-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="left">
+ <!--left-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="center">
+ <!--center-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="right">
+ <!--right-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="bottom">
+ <!--bottom-->
+ </rich:layoutPanel>
+</rich:layout>
+...</programlisting>
+ <para>To get more details about <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> please read the <link linkend="rich_layoutPanel"> chapter about layoutPanel </link> in the guide.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/layout.html">Table of
+ <rich:layout>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.layout</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlLayout</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Layout</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.LayoutRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.layoutTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf">layout</ulink> page at
+ RichFaces Live Demo for examples of component usage and their sources.</para>
+ <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki</para>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layoutPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layoutPanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_layoutPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,134 @@
+<section role="NotInToc" id="rich_layoutPanel">
+ <title>
+ <
+ rich:layoutPanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.1</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:layouPanel></property>
+ </emphasis> is an auxiliary component used to create layout areas within the
+ <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> container.
+ </para>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+
+ <listitem>
+ <para>Cross-browser compatibility</para>
+ </listitem>
+ <listitem>
+ <para>Provides possibility of an easy layout creation</para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> component is used to split the area inside the <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> into up to 5 parts: top, left, center, right, bottom.
+
+ </para>
+ <para>The <emphasis>
+ <property>"position"</property>
+ </emphasis> attribute defines the position of the <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> in the area created with <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> .</para>
+ <programlisting role="XML">...
+<rich:layout>
+ <rich:layoutPanel position="top">
+ <!--top-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="left">
+ <!--left-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="center">
+ <!--center-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="right">
+ <!--right-->
+ </rich:layoutPanel>
+ <rich:layoutPanel position="bottom">
+ <!--bottom-->
+ </rich:layoutPanel>
+</rich:layout>
+...</programlisting>
+ <para>You can specify the width of the layout area with the <emphasis>
+ <property>"width"</property>
+ </emphasis>attribute.</para>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/layoutPanel.html">Table of
+ <rich:layoutPanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.LayoutPanel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlLayoutPanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.LayoutPanel</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.LayoutPanelRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.LayoutPanelTag</entry>
+ </row>
+
+ </tbody>
+
+ </tgroup>
+
+
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf">On RichFaces Live Demo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:layoutPanel></property>
+ </emphasis> usage and sources for the given example. </para>
+ <para>The <link linkend="rich_layout">
+ <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis>
+ </link> chapter of the guide.</para>
+ <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki.</para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_listShuttle.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_listShuttle.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_listShuttle.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,876 @@
+<section role="NotInToc" id="rich_listShuttle">
+ <title>
+ <
+ rich:listShuttle
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.3</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component is used for moving chosen items
+ from one list into another with their optional reordering there.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:ListShuttle></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/listShuttle_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Reordering possibility for lists items</para>
+ </listitem>
+ <listitem>
+ <para>Multiple selection of lists items</para>
+ </listitem>
+ <listitem>
+ <para>Keyboard support</para>
+ </listitem>
+ <!--listitem> Built-In Drag-and-Drop support</listitem-->
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component consists of the following parts: <itemizedlist>
+ <listitem>
+ <para>two <property>item lists</property> (source and target). List consists of
+ items. Each item has three different representations: common, selected, active</para>
+ </listitem>
+ <listitem>
+ <para>optional <property>caption</property> element</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>optional ordering controls set</property> is a set of controls
+ that performs reordering</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>move controls set</property> is a set of controls, which
+ performs moving items between lists</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ <title>Note:</title>
+ <para>Now the listener can not be called from the column facet. This is a temporary limitation. The additional information can be found in <ulink url="http://jira.jboss.org/jira/browse/RF-5327">RichFaces Jira</ulink>.</para>
+ </note>
+ <para> The <emphasis>
+ <property>"sourceValue" </property>
+ </emphasis> attribute defines a List or Array of items to be shown in the source list.</para>
+ <para>The <emphasis>
+ <property>"targetValue" </property>
+ </emphasis> attribute defines a List or Array of items to be shown in the target list.</para>
+ <para> The <emphasis>
+ <property>"var" </property>
+ </emphasis> attribute could be shared between both Lists or Arrays to define lists on the page.</para>
+
+ <para>
+ The <emphasis>
+ <property>"sourceRequired"</property>
+ </emphasis> and
+ <emphasis>
+ <property>"targetRequired"</property>
+ </emphasis> attributes define the case when
+ source and target values are being validated. If the value of both attributes is "true"
+ there should be at least one item in source and target lists. Otherwise validation fails.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form id="myForm">
+ <rich:messages>
+ <f:facet name="errorMarker">
+ <h:graphicImage value="/images/ajax/error.gif" />
+ </f:facet>
+ </rich:messages>
+ <rich:listShuttle id="myListShuttle" sourceValue="#{toolBar.freeItems}" targetValue="#{toolBar.items}"
+ sourceRequired = "true" targetRequired = "true" var="items" converter="listShuttleconverter"
+ sourceCaptionLabel="Source List" targetCaptionLabel="Target List">
+ <rich:column>
+ <h:graphicImage value="#{items.iconURI}" />
+ </rich:column>
+ <rich:column>
+ <h:outputText value="#{items.label}" />
+ </rich:column>
+ </rich:listShuttle>
+ <a4j:commandButton value="Submit" />
+</h:form>
+...</programlisting>
+ <para>
+ In the example above the source list is empty. If you submit the form validation fails and error message appears on a page.
+ </para>
+ <para>
+ This is the result:
+ </para>
+ <figure>
+ <title>Style classes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/listShuttle2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ The <emphasis>
+ <property>"converter" </property>
+ </emphasis> attribute is used to convert component data to a particular component's value.
+ For example, when you select items in a list, a converter is used to format a set of objects to a strings to be displayed.
+ </para>
+ <note id="conv">
+
+ </note>
+ <para>
+ The <emphasis>
+ <property>"sourceSelection" </property>
+ </emphasis> attribute stores the collection of items selected by you in the source list.
+ The <emphasis>
+ <property>"targetSelection" </property>
+ </emphasis> attribute stores the collection of items selected by you in the target list.
+ </para>
+ <para>Captions could be added to a list only after it was defined as a <emphasis>
+ <property>"sourceCaption"</property>
+ </emphasis> and <emphasis>
+ <property>"targetCaption"</property>
+ </emphasis> named facets inside the component or defined with the <emphasis>
+ <property>"sourceCaptionLabel"</property>
+ </emphasis> and <emphasis>
+ <property>"targetCaptionLabel"</property>
+ </emphasis> attribute.
+ </para>
+ <programlisting role="XML">...
+<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" sourceSelection="#{bean.sourceSelection}"
+ targetSelection="#{bean.targetSelection}" converter="listShuttleconverter">
+ <f:facet name="sourceCaption">
+ <h:outputText value="Cars Store #1" />
+ </f:facet>
+ <f:facet name="targetCaption">
+ <h:outputText value="Cars Store #2" />
+ </f:facet>
+ <rich:column>
+ <h:outputText value="#{items.name}" />
+ </rich:column>
+</rich:listShuttle>
+...</programlisting>
+ <!-- ordering control set-->
+ <para>The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component provides the possibility to use <property>ordering controls
+ set</property>, which performs reordering in the target item list. Every control has
+ possibility to be disabled. </para>
+ <para>An <property>ordering controls set</property> could be defined with
+ <emphasis>
+ <property>"topControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"bottomControlLabel"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"upControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"downControlLabel"</property>
+ </emphasis>attributes.
+ </para>
+ <para>It is also possible to use
+ <emphasis>
+ <property> "topControl" </property>
+ </emphasis>, <emphasis>
+ <property>"topControlDisabled"</property>
+ </emphasis>, <emphasis>
+ <property> "bottomControl"</property>
+ </emphasis>, <emphasis>
+ <property> "bottomControlDisabled" </property>
+ </emphasis>, <emphasis>
+ <property> "upControl" </property>
+ </emphasis>, <emphasis>
+ <property> "upControlDisabled" </property>
+ </emphasis>, <emphasis>
+ <property> "downControl"</property>
+ </emphasis>, <emphasis>
+ <property> "downControlDisabled" </property>
+ </emphasis> facets in order to replace the default controls with facets content.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" converter="listShuttleconverter">
+ ...
+ <f:facet name="topControl">
+ <h:outputText value="Move to top" />
+ </f:facet>
+ <f:facet name="upControl">
+ <h:outputText value="Move up" />
+ </f:facet>
+ <f:facet name="downControl">
+ <h:outputText value="Move down" />
+ </f:facet>
+ <f:facet name="bottomControl">
+ <h:outputText value="Move to bottom" />
+ </f:facet>
+</rich:listShuttle>
+...
+</programlisting>
+
+ <!-- copy/move control set -->
+
+ <para>The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis>component also provides 4 predefined controls in <property>move
+ controls set</property> for moving items between source and target lists.
+ Every control has possibility to be disabled. </para>
+ <para>A <property>move controls set</property> could be defined with
+ <emphasis>
+ <property>"copyControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"removeControlLabel"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"copyAllControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"removeAllControlLabel"</property>
+ </emphasis>attributes.
+ </para>
+ <para>It is also possible to use
+ <emphasis>
+ <property>"copyControl" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeControl" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"copyAllControl" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeAllControl" </property>
+ </emphasis>
+ facets in order to replace the default controls with facets content.
+ </para>
+ <programlisting role="XML">...
+<rich:listShuttle var="item" sourceValue="#{bean.source}" targetValue="#{bean.target}" converter="listShuttleconverter"
+ copyControlLabel="Copy" removeControlLabel="Remove"
+ copyAllControlLabel="Copy all" removeAllControlLabel="Remove all">
+ <h:column>
+ <f:facet name="header">
+ <h:outputText value="Cars" />
+ </f:facet>
+ <h:outputText value="#{item.name}" />
+ </h:column>
+</rich:listShuttle>
+...
+</programlisting>
+ <!-- The following facets currently do not work-->
+ <!--<emphasis>
+ <property>"copy_disabled" </property>
+ </emphasis>, -->
+ <!--<emphasis>
+ <property>"remove_disabled" </property>
+ </emphasis>, -->
+ <!--<emphasis>
+ <property>"copyAll_disabled" </property>
+ </emphasis>, -->
+ <!--<emphasis>
+ <property>"removeAll_disabled" </property>
+ </emphasis>-->
+
+ <para>Controls rendering is based on the <emphasis>
+ <property>"controlsType" </property>
+ </emphasis> attribute. Possible types are <property>button</property> and
+ <property>none</property>.</para>
+ <note>
+ <para>
+ Currently the button controls type is based on <emphasis role="bold">
+ <property><div></property>
+ </emphasis> element.
+ </para>
+ </note>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component allows to use internationalization method
+ to redefine and localize the labels. You could use application resource bundle and define
+ <code>RICH_SHUTTLES_TOP_LABEL</code>,
+ <code>RICH_SHUTTLES_BOTTOM_LABEL</code>,
+ <code>RICH_SHUTTLES_UP_LABEL</code>,
+ <code>RICH_SHUTTLES_DOWN_LABEL</code>
+ <code>RICH_LIST_SHUTTLE_COPY_ALL_LABEL</code>,
+ <code>RICH_LIST_SHUTTLE_COPY_LABEL</code>,
+ <code>RICH_LIST_SHUTTLE_REMOVE_ALL_LABEL</code>,
+ <code>RICH_LIST_SHUTTLE_REMOVE_LABEL</code> there.
+ </para>
+ <para>
+ You could also pack <code>org.richfaces.renderkit.listShuttle</code> resource bundle with your JARs defining the same properties.
+ </para>
+ <!-- template wiil be done in 3.2.0 -->
+ <!--para>The <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> component provides the possibility to be customized using templating. The
+ customization could be performed by layout definition nested to component.</para>
+ <para>10 elements could be provided to be defined inside template (all standard controls
+ should also possible to use inside): {sourceList}, {targetList}, {CopyControl},
+ {removeCotrol}, {copyAllControl}, {removeAllControl}, {topcontrol}, {bottomControl},
+ {downCotrol}, {upControl}.</para>
+ <para>The markup defined in the initial picture could be defined as in the following
+ example.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<rich:listShuttle>
+...
+ <h:panelGrid columns="4">
+ <h:outputText value="{sourceList}"/>
+ <h:panelGroup>
+ <h:outputText value="{copyAllControl}"/>
+ <h:outputText value="{copyControl}"/>
+ <h:outputText value="{removeControl}"/>
+ <h:outputText value="{removeAllControl}"/>
+ </h:panelGroup>
+ <h:outputText value="targetList"/>
+ <h:panelGroup>
+ <h:outputText value="{topControl}"/>
+ <h:outputText value="{upControl}"/>
+ <h:outputText value="{downControl}"/>
+ <h:outputText value="{bottomControl}"/>
+ </h:panelGroup>
+ </h:panelGrid>
+ </rich:listShuttle>
+...
+]]></programlisting-->
+ <table>
+ <title>Keyboard usage for elements selection</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>CTRL+click</entry>
+ <entry>Inverts selection for an item</entry>
+ </row>
+ <row>
+ <entry>SHIFT+click</entry>
+ <entry>Selects all rows from active one to a clicked row if they differ,
+ else select the actve row. All other selections are cleared</entry>
+ </row>
+ <row>
+ <entry>CTRL+A</entry>
+ <entry>Selects all elements inside the list if some active element is
+ already present in a list</entry>
+ </row>
+ <row>
+ <entry>Up, Down arrows</entry>
+ <entry>Changes the active element to the next or previous in a list and make
+ it the only selected. Scroll follows the selection to keep it
+ visible</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Keyboard usage for elements reordering</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>Home</entry>
+ <entry>Moves selected set to the top of a list (for target list only)</entry>
+ </row>
+ <row>
+ <entry>End</entry>
+ <entry>Moves selected set to the bottom of a list (for target list only)</entry>
+ </row>
+ <row>
+ <entry>CTRL+Up arrow</entry>
+ <entry>Moves selected item to one position upper</entry>
+ </row>
+ <row>
+ <entry>CTRL+Down arrow</entry>
+ <entry>Moves selected item to one position lower</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/listShuttle.html">Table of
+ <rich:listShuttle>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ListShuttle</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlListShuttle</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ListShuttle</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ListShuttleRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ListShuttleTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <!--
+ <row>
+ <entry>SortAscending()</entry>
+ <entry>Sorts items in the list ascending</entry>
+ </row>
+ <row>
+ <entry>SortDescending()</entry>
+ <entry>Sorts items in the list descending</entry>
+ </row>
+ <row>
+ <entry>Sort()</entry>
+ <entry>Inverts current sorting</entry>
+ </row>
+ -->
+ <!--Controls common API -->
+ <!--row>
+ <entry role="tbi">hide()</entry>
+ <entry role="tbi">Hides ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">show()</entry>
+ <entry role="tbi">Shows ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">isShown()</entry>
+ <entry role="tbi">Checks if current control is shown (to be implemented)</entry>
+ </row-->
+ <row>
+ <entry role="tbi">enable()</entry>
+ <entry role="tbi">Enables ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">disable()</entry>
+ <entry role="tbi">Disables ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">isEnabled()</entry>
+ <entry role="tbi">Checks if current control is enabled (to be implemented)</entry>
+ </row>
+ <!--List managing API -->
+ <row>
+ <entry>up()</entry>
+ <entry>Moves up selected item in the list</entry>
+ </row>
+ <row>
+ <entry>down()</entry>
+ <entry>Moves down selected item in the list</entry>
+ </row>
+ <row>
+ <entry>top()</entry>
+ <entry>Moves top selected item in the list</entry>
+ </row>
+ <row>
+ <entry>bottom()</entry>
+ <entry>Moves bottom selected item in the list</entry>
+ </row>
+ <row>
+ <entry>copy()</entry>
+ <entry>Copies selected item from the source list to the target list</entry>
+ </row>
+ <row>
+ <entry>remove()</entry>
+ <entry>Removes selected item from the target list to the source list</entry>
+ </row>
+ <row>
+ <entry>copyAll()</entry>
+ <entry>Copies all items from the source list to the target list</entry>
+ </row>
+ <row>
+ <entry>removeAll()</entry>
+ <entry>Removes all items from the target list to the source list </entry>
+ </row>
+ <row>
+ <entry role="tbi">getSelection()</entry>
+ <entry role="tbi">Returns currently selected item (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">getItems()</entry>
+ <entry role="tbi">Returns the collection of all items (to be implemented)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>copyAllControl</entry>
+ <entry>Redefines the label content for the "copyAll" control. Related attribute is "copyAllControlLabel"</entry>
+ </row>
+ <row>
+ <entry>removeAllControl</entry>
+ <entry>Redefines the label content for the "removeAll" control. Related attribute is "removeAllControlLabel"</entry>
+ </row>
+ <row>
+ <entry>copyControl</entry>
+ <entry>Redefines the label content for the "copy" control. Related attribute is "copyControlLabel"</entry>
+ </row>
+ <row>
+ <entry>removeControl</entry>
+ <entry>Redefines the label content for the "remove" control. Related attribute is "removeControlLabel"</entry>
+ </row>
+ <row>
+ <entry>copyAllControlDisabled</entry>
+ <entry>Redefines the disabled label content for the "copyAll" control</entry>
+ </row>
+ <row>
+ <entry>removeAllControlDisabled</entry>
+ <entry>Redefines the disabled label content for the "removeAll" control</entry>
+ </row>
+ <row>
+ <entry>caption</entry>
+ <entry>Redefines the caption control</entry>
+ </row>
+ <row>
+ <entry>sourceCaption</entry>
+ <entry>Defines source list caption representation text. Related attribute is "sourceCaptionLabel"</entry>
+ </row>
+ <row>
+ <entry>targetCaption</entry>
+ <entry>Defines source list target representation text. Related attribute is "targetCaptionLabel"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="CN">
+ <title>Classes names that define a list representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-list-shuttle</entry>
+ <entry>Defines styles for a wrapper table element of a listShuttle</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-caption</entry>
+ <entry>Defines styles for a list caption</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-body</entry>
+ <entry>Defines styles for a list body</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-list-content</entry>
+ <entry>Defines styles for a list content</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-source-items</entry>
+ <entry>Defines styles for a wrapper <div> element for source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-items</entry>
+ <entry>Defines styles for a wrapper <div> element for target list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-list-header</entry>
+ <entry>Defines styles for a lists header</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-header-tab-cell</entry>
+ <entry>Defines styles for a header cell</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a caption representations in a source and target lists</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-source-caption</entry>
+ <entry>Defines styles for a caption in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-caption</entry>
+ <entry>Defines styles for a caption in a target list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a rows representations in a source list</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-source-row</entry>
+ <entry>Defines styles for a row in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-source-row-selected</entry>
+ <entry>Defines styles for a selected row in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-source-row-active</entry>
+ <entry>Defines styles for an active row in a source list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a rows representations in a target list</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-target-row</entry>
+ <entry>Defines styles for a row in a target list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-row-selected</entry>
+ <entry>Defines styles for a selected row in a target list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-row-active</entry>
+ <entry>Defines styles for an active row in a target list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a cells representations in a source list</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-source-cell</entry>
+ <entry>Defines styles for a cell in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-source-cell-selected</entry>
+ <entry>Defines styles for a selected cell in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-source-cell-active</entry>
+ <entry>Defines styles for an active cell in a source list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a cells representations in a target list</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-target-cell</entry>
+ <entry>Defines styles for a cell in a target list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-cell-selected</entry>
+ <entry>Defines styles for a selected cell in a target list</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-target-cell-active</entry>
+ <entry>Defines styles for an active cell in a target list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define controls representations</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-shuttle-controls</entry>
+ <entry>Defines styles for a controls group</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-top</entry>
+ <entry>Defines styles for a "Top" control</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-bottom</entry>
+ <entry>Defines styles for a "Bottom" control</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-up</entry>
+ <entry>Defines styles for a "Up" control</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-down</entry>
+ <entry>Defines styles for a "Down" control</entry>
+ </row>
+
+ <row>
+ <entry>rich-shuttle-copy</entry>
+ <entry>Defines styles for a "Copy" control</entry>
+ </row>
+
+ <row>
+ <entry>rich-shuttle-remove</entry>
+ <entry>Defines styles for a "Remove" control</entry>
+ </row>
+
+ <row>
+ <entry>rich-shuttle-copyAll</entry>
+ <entry>Defines styles for a "copyAll" control</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-removeAll</entry>
+ <entry>Defines styles for a "removeAll" control</entry>
+ </row>
+ <row>
+ <entry>rich-shuttle-control-disabled</entry>
+ <entry>Defines styles for a control in a disabled state</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a button representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-list-shuttle-button</entry>
+ <entry>Defines styles for a button</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-button-disabled</entry>
+ <entry>Defines styles for a disabled button</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-button-light</entry>
+ <entry>Defines styles for a button highlight</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-button-press</entry>
+ <entry>Defines styles for a pressed button</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-button-content</entry>
+ <entry>Defines styles for a button content</entry>
+ </row>
+ <row>
+ <entry>rich-list-shuttle-button-selection</entry>
+ <entry>Defines styles for a button selection</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/listShuttle.jsf?c=lis...">On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:listShuttle></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuGroup.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,279 @@
+<section role="NotInToc" id="rich_menuGroup">
+ <title>
+ <
+ rich:menuGroup
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:menuGroup></property>
+ </emphasis> component is used to define an expandable group of items inside a pop-up list or another group.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:menuGroup></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/menuGroup_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Grouping of any menu's items</para>
+ </listitem>
+ <listitem>
+ <para>Pop-up appearance event customization</para>
+ </listitem>
+ <listitem>
+ <para>Support for disabling</para>
+ </listitem>
+ <listitem>
+ <para>Smart user-defined positioning</para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute defines the text representation of a group element in the page. </para>
+ <para> The <emphasis>
+ <property>"icon"</property>
+ </emphasis> attribute defines an icon for the component. The <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attribute defines an icon for when the group is disabled. Also you can use
+ the <emphasis>
+ <property>"icon"</property>
+ </emphasis> and <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> facets. If the facets are defined, the corresponding <emphasis>
+ <property>"icon"</property>
+ </emphasis> and <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attributes are ignored and the facets' contents are used as icons.
+ This could be used for an item check box implementation. </para>
+ <para> Here is an example: </para>
+ <programlisting role="XML">...
+<f:facet name="icon">
+ <h:selectBooleanCheckbox value="#{bean.property}"/>
+</f:facet>
+...
+</programlisting>
+ <para> The <emphasis>
+ <property>"iconFolder"</property>
+ </emphasis> and <emphasis>
+ <property>"iconFolderDisabled"</property>
+ </emphasis> attributes are defined for using icons as folder icons. The <emphasis>
+ <property>"iconFolder"</property>
+ </emphasis> and <emphasis>
+ <property>"iconFolderDisabled"</property>
+ </emphasis> facets use their contents as folder icon representations in place of the
+ attribute values. </para>
+ <para> The <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute is used to define which way to display the menu as shown in the
+ example below: </para>
+ <para>Possible values are:</para>
+ <itemizedlist>
+ <listitem>
+ <para>"left - down" - a submenu is attached to the left side of the menu and is
+ dropping down</para>
+ </listitem>
+ <listitem>
+ <para>"left - up" - a submenu is attached to the left side of the menu and is dropping
+ up</para>
+ </listitem>
+ <listitem>
+ <para>"right - down" - a submenu is attached to the right side of the menu and is
+ dropping down</para>
+ </listitem>
+ <listitem>
+ <para>"right - up" - a submenu is attached to the right side of the menu and is
+ dropping up</para>
+ </listitem>
+ <listitem>
+ <para>"auto - smart" positioning activation</para>
+ </listitem>
+ </itemizedlist>
+ <para> By default, the <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute is set to "auto". </para>
+ <para> Here is an example: </para>
+ <programlisting role="XML">...
+<rich:menuGroup value="Save As..." direction="left-down">
+ <rich:menuItem submitMode="ajax" value="Text File" action="#{ddmenu.doSaveText}"/>
+ <rich:menuItem submitMode="ajax" value="PDF File" action="#{ddmenu.doSavePDF}"/>
+</rich:menuGroup>
+...
+</programlisting>
+ <para> This would be the result: </para>
+ <figure>
+ <title>Using the <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/menuGroup2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <note>
+ <title>Note:</title>
+ <para> The <emphasis role="bold">
+ <property><rich:menuGroup></property>
+ </emphasis> component was designed to be used only for pop-up menu list creation.</para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/menuGroup.html">Table of
+ <rich:menuGroup>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.MenuGroup</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlMenuGroup</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DropDownMenu</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.MenuGroupRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.MenuGroupTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>icon</entry>
+ <entry>Redefines the icon for the enabled item state. Related attribute is "icon"</entry>
+ </row>
+ <row>
+ <entry>iconFolder</entry>
+ <entry>Redefines the folder icon for the enabled item state. Related attribute is "iconFolder"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_mG">
+ <title>Classes names that define an appearance of group elements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-group</entry>
+ <entry>Defines styles for a wrapper <div> element for a group</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-label</entry>
+ <entry>Defines styles for a label of an item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon</entry>
+ <entry>Defines styles for the left icon of an item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-folder</entry>
+ <entry>Defines styles for the right icon of an item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define different states</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-item-label-disabled</entry>
+ <entry>Defines styles for a label of a disabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-disabled</entry>
+ <entry>Defines styles for the left icon of a disabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-folder-disabled</entry>
+ <entry>Defines styles for the right icon of a disabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-group-hover</entry>
+ <entry>Defines styles for a wrapper <div> element of a hover group</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-enabled</entry>
+ <entry>Defines styles for the left icon of an enabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-selected</entry>
+ <entry>Defines styles for the left icon of a selected item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:menuGroup></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuItem.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,325 @@
+<section role="NotInToc" id="rich_menuItem">
+ <title>
+ <
+ rich:menuItem
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:menuItem></property>
+ </emphasis> component is used for the definition of a single item inside a pop-up list.</para>
+ <para>This component can be used not only within <emphasis role="bold">
+ <property><rich:dropDownMenu></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:contextMenu></property>
+ </emphasis>, but also it can used as a standalone component.
+ For example, you can use it as nested component of the <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis>.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:menuItem></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/menuItem_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Different submission modes</para>
+ </listitem>
+ <listitem>
+ <para>Support for disabling</para>
+ </listitem>
+ <listitem>
+ <para>Custom content support</para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute defines the text representation for an item
+ element. </para>
+ <para> There are two icon-related attributes. The <emphasis>
+ <property>"icon"</property>
+ </emphasis> attribute defines an icon. The <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attribute defines an icon for a disabled item. Also you
+ can use the <emphasis>
+ <property>"icon"</property>
+ </emphasis> and <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> facets. If the facets are defined, the corresponding <emphasis>
+ <property>"icon"</property>
+ </emphasis> and <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attributes are ignored and the facets content is shown as
+ an icon. It could be used for an item check box implementation. </para>
+ <para> Here is an example: </para>
+ <programlisting role="XML">...
+<f:facet name="icon">
+ <h:selectBooleanCheckbox value="#{bean.property}"/>
+</f:facet>
+...
+</programlisting>
+
+ <para>The <emphasis role="bold">
+ <property><rich:menuItem></property>
+ </emphasis>
+ <emphasis>
+ <property>"submitMode"</property>
+ </emphasis> attribute can be set to three possible parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Regular form submission request is used.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ajax submission is used for switching.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The <emphasis>
+ <property>"action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> item's attributes are ignored. Menu items
+ don' fire any submits themselves. The behavior is fully
+ defined by the components nested into items.</para>
+ <para> For example, you can put any content into an item, but, in this case, you
+ should set the <emphasis>
+ <property>"submitMode"</property>
+ </emphasis> attribute as <emphasis>
+ <property>"none"</property>
+ </emphasis>.</para>
+ <para> Here is an example: </para>
+ <programlisting role="XML">...
+<rich:dropDownMenu>
+ ...
+ <rich:menuItem submitMode="none">
+ <h:outputLink value="www.jboss.org"/>
+ </rich:menuItem>
+ ...
+<rich:dropDownMenu>
+...
+</programlisting>
+ <para> You can use the <emphasis>
+ <property>"disabled"</property>
+ </emphasis> attribute to set the item state. </para>
+ <para> Here is an example: </para>
+ <programlisting role="XML">...
+<rich:dropDownMenu>
+ <rich:menuItem value="Disable" disabled="true"/>
+<rich:dropDownMenu>
+...
+</programlisting>
+ <note>
+ <title>Note:</title>
+ <para> The <emphasis role="bold">
+ <property><rich:menuItem></property>
+ </emphasis> component was designed to be used only for
+ pop-up menu list creation.</para>
+ </note>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">RichFaces Developer Guide section about "process" attribute </link>. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/menuItem.html">Table of
+ <rich:menuItem>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.MenuItem</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlMenuItem</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DropDownMenu</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.MenuItemRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.MenuItemTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>icon</entry>
+ <entry>Redefines the icon for the enabled item state. Related attribute is "icon"</entry>
+ </row>
+ <row>
+ <entry>iconDisabled</entry>
+ <entry>Redefines the folder icon the disabled item state. Related attribute is "iconDisabled"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_mI">
+ <title>Classes names that define an appearance of item elements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-item</entry>
+ <entry>Defines styles for a wrapper
+ <div> element
+ for an item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-label</entry>
+ <entry>Defines styles for a label of an
+ item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon</entry>
+ <entry>Defines styles for the left icon
+ of an item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define different states</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-item-disabled</entry>
+ <entry>Defines styles for a wrapper
+ <div> element of
+ an item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-enabled</entry>
+ <entry>Defines styles for a wrapper
+ <div> element of
+ an enabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-hover</entry>
+ <entry>Defines styles for a wrapper
+ <div> element of
+ a hover item</entry>
+ </row>
+
+ <row>
+ <entry>rich-menu-item-label-disabled</entry>
+ <entry>Defines styles for a label of a
+ disabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-disabled</entry>
+ <entry>Defines styles for the left icon
+ of a disabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-label-enabled</entry>
+ <entry>Defines styles for a label of an
+ enabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-enabled</entry>
+ <entry>Defines styles for the left icon
+ of an enabled item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-label-selected</entry>
+ <entry>Defines styles for a label of a
+ selected item</entry>
+ </row>
+ <row>
+ <entry>rich-menu-item-icon-selected</entry>
+ <entry>Defines styles for the left icon
+ of a selected item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:menuItem></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuSeparator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuSeparator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_menuSeparator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,96 @@
+<section role="NotInToc" id="rich_menuSeparator">
+ <title>
+ <
+ rich:menuSeparator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:menuSeparator></property>
+ </emphasis> component is used for the definition of a horizontal separator that can be placed between groups or items.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:menuSeparator></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/menuSeparator_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/menuSeparator.html">Table of
+ <rich:menuSeparator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.MenuSeparator</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlMenuSeparator</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.DropDownMenu</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.MenuSeparatorRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.MenuSeparatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_mS">
+ <title>Classes names that define separator element appearance.</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-menu-separator</entry>
+ <entry>Defines styles for a wrapper <div> element for a separator</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=me...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:menuSeparator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_message.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_message.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_message.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,253 @@
+<section role="NotInToc" id="rich_message">
+ <title>
+ <
+ rich:message
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component is used for rendering a single message for a specific component. </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:message></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/message_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Tracking both traditional and Ajax based requests</para>
+ </listitem>
+ <listitem>
+ <para>Optional toolTip to display the detail portion of the message</para>
+ </listitem>
+ <listitem>
+ <para>Additionally customizable with attributes and facets</para>
+ </listitem>
+ <listitem>
+ <para>Additionally provides two parts to be optionally defined: marker and
+ label</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The component has the same behavior as standard <emphasis role="bold">
+ <property><h:message></property>
+ </emphasis>component except next two features: <itemizedlist>
+ <listitem>
+ <para>It's ajaxRendered. It means that the component is reRendered after Ajax request
+ automatically without outputPanel usage</para>
+ </listitem>
+ <listitem>
+ <para>The component optionally provides "passed" state which will be shown if no message is displayed</para>
+ </listitem>
+ <listitem>
+ <para>Provides possibility to add some marker to message. By default a marker element
+ isn't shown</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para> A set of facets which can be used for marker defining: <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"passedMarker"</property>
+ </emphasis>. This facet is provided to allow setting a marker to display if
+ there is no message</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"errorMarker"</property>
+ </emphasis>. This facet is provided to allow setting a marker to display if there
+ is a message with a severity class of "ERROR"</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"fatalMarker"</property>
+ </emphasis>. This facet is provided to allow setting a marker to display if there
+ is a message with a severity class of "FATAL"</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"infoMarker"</property>
+ </emphasis>. This facet is provided to allow setting a marker to display if there
+ is a message with a severity class of "INFO"</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"warnMarker"</property>
+ </emphasis>. This facet is provided to allow setting a marker to display if there
+ is a message with a severity class of "WARN"</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para> The following example shows different variants for component customization. The
+ attribute <emphasis>
+ <property>"passedLabel"</property>
+ </emphasis> is used for definition of the label to display when no message
+ appears. But the message component doesn't appear before the form submission even when
+ state is defined as passed (on initial rendering). Boolean attribute<emphasis>
+ <property> "showSummary" </property>
+ </emphasis>defines possibility to
+ display summary portion of displayed messages. The facets <emphasis>
+ <property>"errorMarker"</property>
+ </emphasis> and <emphasis>
+ <property>"passedMarker"</property>
+ </emphasis> set
+ corresponding images for markers. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:message for="id" passedLabel="No errors" showSummary="true">
+ <f:facet name="errorMarker">
+ <h:graphicImage url="/image/error.png"/>
+ </f:facet>
+ <f:facet name="passedMarker">
+ <h:graphicImage url="/image/passed.png"/>
+ </f:facet>
+</rich:message>
+...
+</programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/message.html">Table of
+ <rich:message>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.RichMessage</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlRichMessage</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.RichMessage</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.RichMessagesHtmlBaseRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.RichMessageTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>errorMarker</entry>
+ <entry>Redefines the content for the marker if there is message with a severity class of "ERROR"</entry>
+ </row>
+ <row>
+ <entry>fatalError</entry>
+ <entry>Redefines the content for the marker if there is message with a severity class of "FATAL"</entry>
+ </row>
+ <row>
+ <entry>infoError</entry>
+ <entry>Redefines the content for the marker if there is message with a severity class of "INFO"</entry>
+ </row>
+ <row>
+ <entry>warnError</entry>
+ <entry>Redefines the content for the marker if there is message with a severity class of "WARN"</entry>
+ </row>
+ <row>
+ <entry>passedError</entry>
+ <entry>Redefines the content for the marker if there is no message</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="mC">
+ <title>Classes names that define a component appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-message</entry>
+
+ <entry>Defines styles for a wrapper element</entry>
+ </row>
+
+ <row>
+ <entry>rich-message-marker</entry>
+
+ <entry>Defines styles for a marker</entry>
+ </row>
+
+ <row>
+ <entry>rich-message-label</entry>
+
+ <entry>Defines styles for a label</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/message.jsf?c=message">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:message></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_messages.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_messages.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_messages.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,248 @@
+<section role="NotInToc" id="rich_messages">
+ <title>
+ <
+ rich:messages
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:messages></property>
+ </emphasis> component is similar to <emphasis role="bold">
+ <property><rich:message></property>
+ </emphasis> component but used for rendering all messages for the components.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:messages></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/messages_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Track both traditional and Ajax based requests</para>
+ </listitem>
+ <listitem>
+ <para>Optional ToolTip to display a detailed part of the messages</para>
+ </listitem>
+ <listitem>
+ <para>Additionally customizable via attributes and facets</para>
+ </listitem>
+ <listitem>
+ <para>Additionally provides of three parts to be optionally defined: marker, label and header</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:messages></property>
+ </emphasis> component is considered as JSF HTML <emphasis role="bold">
+ <property><h:messages></property>
+ </emphasis>,
+ extended with following features:
+ <itemizedlist>
+ <listitem>
+ <para>Ajax support (the component does not require to be wrapped in <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> in order to be rendered during Ajax requests);</para>
+ </listitem>
+ <listitem>
+ <para>possibilty to add graphical markers (pictograms) to reinforce a message for both "passed" or "failed" states;</para>
+ </listitem>
+ <listitem>
+ <para>set of predefined CSS classes for customizing messages appearance.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>There are two optional parts that could be defined for every message: marker and text label. The set of facets, which can be used for a marker definition, is shown below:</para>
+
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>errorMarker</entry>
+ <entry>Defines marker for "Error" message severity class</entry>
+ </row>
+ <row>
+ <entry>fatalMarker</entry>
+ <entry>Defines marker for "Fatal" message severity class</entry>
+ </row>
+ <row>
+ <entry>infoMarker</entry>
+ <entry>Defines marker for "Info" message severity class</entry>
+ </row>
+ <row>
+ <entry>warnMarker</entry>
+ <entry>Defines marker for "Warn" message severity class</entry>
+ </row>
+ <!--row>
+ <entry>passedMarker</entry>
+ <entry>Defines marker if there is no message</entry>
+ </row-->
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>The following example shows different variants of customization of the component.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><rich:messages layout="table" tooltip="true" showDetail="false" showSummary="true">
+ <f:facet name="errorMarker">
+ <h:graphicImage url="/image/error.png"/>
+ </f:facet>
+ <f:facet name="infoMarker">
+ <h:graphicImage url="/image/info.png"/>
+ </f:facet>
+ </rich:messages></programlisting>
+
+ <para>The <emphasis role="bold">
+ <property><rich:messages></property>
+ </emphasis> component keeps all messages for all components even after only one Ajax-validated component was updated.</para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/messages.html">Table of
+ <rich:messages>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.RichMessages</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlRichMessages</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.RichMessages</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.HtmlRichMessagesRendere</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.RichMessagesTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>errorMarker</entry>
+ <entry>Defines marker for "Error" message severity class</entry>
+ </row>
+ <row>
+ <entry>fatalMarker</entry>
+ <entry>Defines marker for "Fatal" message severity class</entry>
+ </row>
+ <row>
+ <entry>infoMarker</entry>
+ <entry>Defines marker for "Info" message severity class</entry>
+ </row>
+ <row>
+ <entry>warnMarker</entry>
+ <entry>Defines marker for "Warn" message severity class</entry>
+ </row>
+ <!--row>
+ <entry>passedMarker</entry>
+ <entry>Defines marker if there is no message</entry>
+ </row-->
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_msC">
+ <title>Classes names that define a component appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-messages</entry>
+
+ <entry>Defines styles for a wrapper
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-messages-marker</entry>
+
+ <entry>Defines styles for a
+ marker</entry>
+ </row>
+
+ <row>
+ <entry>rich-messages-label</entry>
+
+ <entry>Defines styles for a
+ label</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/messages.jsf?c=messag...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:messages></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_modalPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_modalPanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_modalPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,624 @@
+<section role="NotInToc" id="rich_modalPanel">
+ <title>
+ <
+ rich:modalPanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component implements a modal dialog window. All operations in
+ the main application window are locked out while this window is active.
+ Opening and closing the window is done through client JavaScript
+ code.</para>
+
+ <figure>
+ <title>The <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> component opens in closest to observer layer.
+ All other layers are dimmed by blocking <code><div></code> element (gray on the picture).</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/modalPanel_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Support of draggable operations and size changes by you</para>
+ </listitem>
+ <listitem>
+ <para>Easy positioning for the modal dialog window</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to restore of the previous component state on a page (including position on the screen) after submitting and reloading</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>The component is defined as a panel with some content inside that displays
+ its content as a modal dialog. To call it and to close it, the client
+ API for the window is used.</para>
+
+ <table>
+ <title>Functions description</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Richfaces.showModalPanel (client
+ Id)</entry>
+
+ <entry>Opens a window with a specified client
+ Id</entry>
+ </row>
+
+ <row>
+ <entry>Richfaces.hideModalPanel (client
+ Id)</entry>
+
+ <entry>Closes a window with a specified client
+ Id</entry>
+ </row>
+
+ <row>
+ <entry>Richfaces.hideTopModalPanel ()</entry>
+
+ <entry>Closes the current visible window at the top</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <important>
+ <title>Important:</title>
+ <para>To work properly the <rich:modalPanel> should
+ always be placed outside the original <h:form>
+ and must include its own <h:form> for such
+ cases like performing submissions from within the
+ <rich:modalPanel>. </para>
+ </important>
+ <note>
+ <title>Note:</title>
+ <para>In order to avoid a bug in IE, the root node of the dialog is
+ moved on the top of a DOM tree. </para>
+ </note>
+
+
+ <para>It's possible to add a <emphasis>
+ <property>"header"</property>
+ </emphasis> facet to the component to set the content for the
+ header.</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a onclick="Richfaces.showModalPanel('pnl');" href="#">Show ModalPanel</a>
+<a4j:form>
+ <rich:modalPanel id="pnl">
+ <f:facet name="header">
+ <h:outputText value="This is a panel header" />
+ </f:facet>
+ <p>The &lt;rich:modalPanel&gt; accepts different types of information:
+ from simple text to iterative components such as &lt;rich:dataTable&gt;, etc.
+ </p>
+ <a onclick="Richfaces.hideModalPanel('pnl');" href="#">Hide</a>
+ </rich:modalPanel>
+</a4j:form></programlisting>
+
+ <para>Here is what happening on the page:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> with links</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/modalPanel2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>A facet named <emphasis>
+ <property>"controls"</property>
+ </emphasis> can be added to the component to place control elements on
+ a header.</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><a onclick="Richfaces.showModalPanel('pnl');" href="#">Show ModalPanel</a>
+<a4j:form>
+ <rich:modalPanel id="pnl">
+ <f:facet name="header">
+ <h:outputText value="This is a panel header" />
+ </f:facet>
+ <f:facet name="controls">
+ <h:graphicImage value="/pages/close.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('pnl')" />
+ </f:facet>
+ <p>The &lt;rich:modalPanel&gt; accepts different types of information:
+ from simple text to iterative components such as &lt;rich:dataTable&gt;, etc.
+ </p>
+ </rich:modalPanel>
+</a4j:form></programlisting>
+
+ <para>The result:</para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> with 'Close' control</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/modalPanel3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>To understand the sence of "<emphasis>
+ <property>domElementAttachment</property>
+ </emphasis>" attribute you should understand the
+ <emphasis>stacking context</emphasis> in the division
+ element (<code><div></code>) HTML makeup. Since each
+ positioned or z-indexed element (in CSS <code>position:
+ absolute</code> or <code>relative</code> or <code>z-index:
+ [any integer value different from 0]</code>) form their own
+ stacking context the <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> nested into such element may be overlapped with another
+ elements, which appear later in HTML hierarchy and assimilated with
+ basic stacking context (HTML <body>). To make the panel
+ rendered in closest to the observer layer and avoid such overlapping,
+ the component was designed in way when it is always being
+ automatically assimilated with <code><body></code> and
+ with a very high rendering layer (<code>z-index</code>). Due to some
+ side effects the <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> should not always be assimilated with
+ <code><body></code> stacking context. The "<emphasis>
+ <property>domElementAttachment</property>
+ </emphasis>" attribute helps to reassign the panel to it
+ '<emphasis>parent</emphasis>' or
+ '<emphasis>form</emphasis>' element. If
+ '<emphasis>form</emphasis>' is used and no
+ parent form is available the panel is functioning as if it is
+ assimilated with <code><body></code>. </para>
+
+ <note>
+ <title>Note:</title>
+ <para>If "<emphasis>
+ <property>domElementAttachment</property>
+ </emphasis>" value is not
+ '<emphasis>body</emphasis>' then
+ some overlapping may occur. </para>
+ </note>
+
+ <para>To manage window placement relative to the component, there are <emphasis>
+ <property>"left"</property>
+ </emphasis> and <emphasis>
+ <property>"top"</property>
+ </emphasis> attributes defining a window shifting relative to the
+ top-left corner of the window.</para>
+
+ <para>Modal windows can also support resize and move operations on the client
+ side. To allow or disallow these operations, set the <emphasis>
+ <property>"resizeable"</property>
+ </emphasis> and <emphasis>
+ <property>"moveable"</property>
+ </emphasis> attributes to "true" or
+ "false" values. Window resizing is also limited by <emphasis>
+ <property>"minWidth"</property>
+ </emphasis> and <emphasis>
+ <property>"minHeight"</property>
+ </emphasis> attributes specifying the minimal window sizes.</para>
+ <para> Also you can use <emphasis>
+ <property>"minWidth"</property>
+ </emphasis> and <emphasis>
+ <property>"minHeight"</property>
+ </emphasis> attributes used as <code>showModalPanel()</code> arguments
+ in JavaScript options. </para>
+ <para> You can pass your parameters during modalPanel opening or closing. This
+ passing could be performed in the following way: </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">Richfaces.showModalPanel('panelId', {left: auto, param1: value1});</programlisting>
+ <para> Thus, except the standard modalPanel parameters you can pass any of your
+ own parameters. </para>
+ <para> Also modalPanel allows to handle its own opening and closing events on
+ the client side. The <emphasis>
+ <property>"onshow"</property>
+ </emphasis> attribute is used in this case. </para>
+ <para> The following example shows how on the client side to define opening and
+ closing event handling in such a way that your own parameters could
+ also be obtained: </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">onshow="alert(event.parameters.param1)"</programlisting>
+
+ <para> Here, during modalPanel opening the value of a passing parameter is
+ output. </para>
+ <para> More information about this problem could be found on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111804">RichFaces Development Forum</ulink>.</para>
+ <para> There is a possibility to restore of the previous component state on a
+ page (including position on the screen) after submitting and
+ reloading. The modalPanel has some special attributes like <emphasis>
+ <property>"showWhenRendered"</property>
+ </emphasis> and <emphasis>
+ <property>"keepVisualState"</property>
+ </emphasis>. </para>
+ <para>
+ <emphasis>
+ <property>"showWhenRendered"</property>
+ </emphasis> - This boolean attribute is used if modalPanel should be
+ rendered after first page loading. </para>
+ <para>
+ <emphasis>
+ <property> "keepVisualState"</property>
+ </emphasis> - Used if modalPanel should save state after submission.
+ If <code>keepVisualState="true"</code> then
+ parameters which modalPanel has during opening should be submitted and
+ passed to new page. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><a href="javascript:Richfaces.showModalPanel('pnl', {top:'10px', left:'10px', height:'400'});">Show</a></programlisting>
+
+ <para> Here, if you open modal dialog window using current link and after
+ submits data then modalPanel destination and height on new loaded page
+ is restored. </para>
+ <para>if you need the content of the modalPanel to be submitted - you need to
+ remember two important rules: </para>
+ <itemizedlist>
+ <listitem>
+ <para>modalPanel must have its own form if it has form
+ elements (input or/and command components) inside
+ (as it was shown in the example above) </para>
+ </listitem>
+ <listitem>
+ <para>modalPanel must not be included into the form (on any
+ level up) if it has the form inside.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Simple example of using commandButton within modalPanel is placed
+ below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><a4j:form>
+<rich:modalPanel>
+ <f:facet name="header">
+ <h:outputText value="Test" />
+ </f:facet>
+ <f:facet name="controls">
+ <h:commandLink value="Close" style="cursor:pointer" onclick="Richfaces.hideModalPanel('mp')" />
+ </f:facet>
+ <h:form>
+ <h:commandButton value="Test" action="#{TESTCONTROLLER.test}" />
+ </h:form>
+</rich:modalPanel></programlisting>
+
+
+
+ <para>See also discussion about this problem on the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064191">RichFaces Users Forum</ulink>.</para>
+ <para> The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This attribute
+ defines the parameters of localized error and informational messages
+ that occur as a result of conversion, validation, or other application
+ actions during the request processing lifecycle. With the help of this
+ attribute you can replace the last parameter substitution token shown
+ in the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>,
+ {2} for <code>"ShortConverter.SHORT"</code>. </para>
+ <para>In RichFaces Cookbook article about
+ <ulink url="http://wiki.jboss.org/auth/wiki/RichFacesCookbook/DetailModalPanelFromTable"> Modal Panel </ulink> there is information for those of you who
+ would like to click on a details link in table and have it show a
+ modal panel with information loaded from the server. </para>
+
+ <para>
+ To avoid overlapping of the <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> component on the page by any embed objects (inserted with HTML <code><EMBED></code> tag) set the <emphasis>
+ <property>"overlapEmbedObjects"</property>
+ </emphasis> attribute to "true".
+ </para>
+
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/modalPanel.html">Table of
+ <rich:modalPanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.ModalPanel</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlModalPanel</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.ModalPanel</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.ModalPanelRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.ModalPanelTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>show()</entry>
+ <entry>Opens the corresponding modalPanel</entry>
+ </row>
+
+ <row>
+ <entry>hide()</entry>
+ <entry>Closes the corresponding modalPanel</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Define the header content</entry>
+ </row>
+ <row>
+ <entry>controls</entry>
+ <entry>Defines the control elements on the
+ header</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="mPC">
+ <title>Classes names that define a component appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-modalpanel</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of a
+ modalPanel</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-mask-div</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of a mask</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl_panel</entry>
+
+ <entry>Defines styles for a modalPanel</entry>
+ </row>
+
+ <row>
+ <entry>rich-mp-container </entry>
+
+ <entry>Defines styles for a modalPanel
+ container</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-resizer</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of a resizing
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-shadow</entry>
+
+ <entry>Defines styles for a modalPanel
+ shadow</entry>
+ </row>
+
+ <row>
+ <entry>rich-mp-content-table</entry>
+
+ <entry>Defines styles for a <table>
+ element of a modalPanel</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-header</entry>
+
+ <entry>Defines styles for a modalPanel
+ header</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-header-cell</entry>
+
+ <entry>Defines styles for a header cell</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-text</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of a header
+ text</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-body</entry>
+
+ <entry>Defines styles for a content inside a
+ modalPanel</entry>
+ </row>
+
+ <row>
+ <entry>rich-mpnl-controls</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of a modalPanel
+ control</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>Visit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/modalPanel.jsf?c=moda..."> ModalPanel page</ulink> at RichFaces Livedemo for examples
+ of component usage and their sources. </para>
+
+ <para>Read the "<ulink url="http://eclipse.dzone.com/articles/an-introduction-to-jboss-richf?page=0%2C0"> An Introduction To JBoss RichFaces</ulink>"
+ tutorial by Max Katz to find out how the <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> helps to edit and save changes for table entries. </para>
+
+ <para>Some articles at JBoss portal describing different aspects of <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> usage: </para>
+
+ <itemizedlist>
+ <listitem>
+ <para> "<ulink url="http://www.jboss.org/community/docs/DOC-11436">ModalPanelWizards</ulink>" article
+ describes how to create a typical wizard with the
+ help of <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> component (the same could also be
+ found in the "<ulink url="http://www.jboss.org/community/wiki/PanelsandOutput#Organizewizards"> How to organize wizards using the
+ <rich:modalPanel>
+ component?</ulink>" chapter of RichFaces
+ FAQ guide); </para>
+ </listitem>
+ <listitem>
+ <para>Refer to the "<ulink url="http://www.jboss.org/community/docs/DOC-11853">How to do a detail view modalPanel in a
+ table</ulink>" article in the RichFaces cookbook at JBoss Portal to find out how to
+ build a table with details link clicking on which
+ will display a modal panel with information loaded from the server.</para>
+ </listitem>
+ <listitem>
+ <para>"<ulink url="http://www.jboss.org/community/docs/DOC-11435">ModalPanelValidation</ulink>" article
+ gives examples of validation in <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> (the same in the <ulink url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4061517">corresponding topic</ulink> at RichFaces Users
+ Forum);</para>
+ </listitem>
+ <listitem>
+ <para>"<ulink url="http://www.jboss.org/community/docs/DOC-11863">RichFacesPleaseWaitBox</ulink>" article
+ describes how to show a "Please
+ wait" box and block the input while the
+ Ajax request is being processed using combination
+ of <emphasis role="bold">
+ <property><a4j:status></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> components. </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_nodeSelectListener.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_nodeSelectListener.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_nodeSelectListener.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,113 @@
+<section role="NotInToc" id="rich_nodeSelectListener">
+ <title>
+ <
+ rich:nodeSelectListener
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:nodeSelectListener></property>
+ </emphasis>
+ represents an action listener method that is notified after selection of a node.
+ </para>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define some "nodeSelect" listeners for the component</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:nodeSelectListener></property>
+ </emphasis> is used as a nested tag with <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>
+ and <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> components.
+</para>
+ <para>
+Attribute <emphasis>
+ <property>"type"</property>
+ </emphasis> defines the fully qualified Java class name for listener.
+ This class should implement <ulink url="&apidoc_framework;org/richfaces/event/NodeSelectedListener.html">
+ <code>org.richfaces.event.NodeSelectedListener</code>
+ </ulink>.
+ interface</para>
+
+ <para>
+ <emphasis role="bold">The typical variant of using:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:tree switchType="server" value="#{project.data}" var="item" nodeFace="#{item.type}">
+ <rich:nodeSelectListener type="demo.ListenerBean"/>
+ ...
+ <!-- Tree nodes -->
+ ...
+</rich:tree>
+...
+</programlisting>
+
+ <para>
+ <emphasis role="bold">Java bean source:</emphasis>
+ </para>
+
+ <programlisting role="JAVA">package demo;
+import org.richfaces.event.NodeSelectedEvent;
+public class ListenerBean implements org.richfaces.event.NodeSelectedListener{
+ ...
+ public void processSelection(NodeSelectedEvent arg0){
+ //Custom Developer Code
+ }
+ ...
+}
+</programlisting>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/nodeSelectListener.html">Table of
+ <rich:nodeSelectListener>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>listener-class</entry>
+ <entry>org.richfaces.event.NodeSelectedListener</entry>
+ </row>
+ <row>
+ <entry>event-class</entry>
+ <entry>org.richfaces.event.NodeSelectedEvent</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.NodeSelectListenerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_orderingList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_orderingList.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_orderingList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,794 @@
+<section role="NotInToc" id="rich_orderingList">
+ <title>
+ <
+ rich:orderingList
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.3</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> is a component for ordering items in a list. This component provides possibilities to reorder a list and sort it on the client side.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/orderingList_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Reordering possibility for list items</para>
+ </listitem>
+ <!--listitem>Customizable component layout (captions, headers, list items and ordering control set)</listitem-->
+ <!--listitem>Disabled/enabled ordering controls</listitem-->
+ <listitem>
+ <para>Multiple selection of list items</para>
+ </listitem>
+ <listitem>
+ <para>Keyboard support</para>
+ </listitem>
+ <!--listitem>Possibility to manage selection from
+ <itemizedlist>
+ <listitem><para>Keyboard</para></listitem>
+ <listitem><para>Server side</para></listitem>
+ </itemizedlist>
+ </listitem-->
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <!--maintenance of component orderingList-->
+
+ <para>The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component consists of <itemizedlist>
+ <listitem>
+ <para>
+ <property>Item list</property> element that displays a list of items. It
+ has three different representations for a single element: common, selected,
+ active. Combination of these states is possible.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Ordering controls set</property>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <!-- attributes of component orderingList -->
+
+ <para>The <emphasis>
+ <property> "value"</property>
+ </emphasis> and <emphasis>
+ <property>"var" </property>
+ </emphasis> attributes are used to access the values of a list. </para>
+
+ <para>Controls rendering is based on the <emphasis>
+ <property>"controlsType" </property>
+ </emphasis> attribute. Possible types are button or none.
+ </para>
+ <note>
+ <para>
+ Currently the button controls type is based on <emphasis role="bold">
+ <property><div></property>
+ </emphasis> element.
+ </para>
+ </note>
+ <para>The information about the <emphasis>
+ <property>"converter"</property>
+ </emphasis> attribute is <link linkend="conv">here</link>.</para>
+ <para> The <emphasis>
+ <property>"selection" </property>
+ </emphasis> attribute stores the collection of items selected by you. In the example
+ below after submitting the form the current collection is placed in the object's
+ property and then <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis> with selected items is shown. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form>
+ <rich:orderingList value="#{bean.simpleItems}" var="item" selection="#{bean.selection}" controlsType="button">
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Cars" />
+ </f:facet>
+ <h:outputText value="#{item}" />
+ </rich:column>
+ </rich:orderingList>
+ <rich:dataTable id="infoPanelID" value="#{bean.info}" var="info" rendered="true">
+ <rich:column>
+ <h:outputText value="#{info}" />
+ </rich:column>
+ </rich:dataTable>
+ <a4j:commandButton value="reRender" reRender="infoPanelID" />
+</h:form>
+...</programlisting>
+ <para> The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component allows to use <emphasis>
+ <property>"caption"</property>
+ </emphasis>
+ <!--and <emphasis>
+ <property>"footer" </property>
+ </emphasis> -->
+ facet.
+ A caption could be also defined with <emphasis>
+ <property>"captionLabel"</property>
+ </emphasis> attribute.
+ </para>
+
+ <!-- ADD SCREENSHOT-->
+
+ <para>Simple example is placed below.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:orderingList value="#{bean.simpleItems}" var="item" controlsType="button" selection="#{bean.selection}">
+ <f:facet name="caption">
+ <h:outputText value="Caption Facet" />
+ </f:facet>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Cars" />
+ </f:facet>
+ <h:outputText value="#{item.name}" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Price" />
+ </f:facet>
+ <h:outputText value="#{item.price}" />
+ </rich:column>
+</rich:orderingList>
+...</programlisting>
+
+ <!-- ordering control set-->
+ <para>The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component provides the possibility to use <property>ordering controls
+ set</property>, which performs reordering. Every control has possibility to be disabled. </para>
+ <para>An <property>ordering controls set</property> could be defined with <emphasis>
+ <property>"topControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"bottomControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"upControlLabel"</property>
+ </emphasis>, <emphasis>
+ <property>"downControlLabel"</property>
+ </emphasis>attributes. </para>
+ <para>It is also possible to use <emphasis>
+ <property>"topControl" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"topControlDisabled"</property>
+ </emphasis>, <emphasis>
+ <property>"bottomControl"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"bottomControlDisabled" </property>
+ </emphasis>, <emphasis>
+ <property>"upControl" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"upControlDisabled" </property>
+ </emphasis>,
+ <emphasis>
+ <property>"downControl"</property>
+ </emphasis>, <emphasis>
+ <property>"downControlDisabled" </property>
+ </emphasis> facets in order to replace the default controls with facets content. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:orderingList value="#{bean.simpleItems}" var="item" controlsType="button" selection="#{bean.selection}">
+ <f:facet name="topControl">
+ <h:outputText value="Move to top" />
+ </f:facet>
+ <f:facet name="upControl">
+ <h:outputText value="Move up" />
+ </f:facet>
+ <f:facet name="downControl">
+ <h:outputText value="Move down" />
+ </f:facet>
+ <f:facet name="bottomControl">
+ <h:outputText value="Move to bottom" />
+ </f:facet>
+<rich:orderingList>
+...</programlisting>
+
+ <para>The position of the controls relatively to a list could be customized with: <itemizedlist>
+ <!--listitem>
+ <emphasis>
+ <property>"controlsPosition"</property>
+ </emphasis> attribute. Possible values: <itemizedlist>
+ <listitem><para>left - controls could be rendered to the left side of a list</para></listitem>
+ <listitem><para>right(default) - controls could be rendered to the right side of a
+ list </para></listitem>
+ <listitem><para>top - controls could be rendered above the list </para></listitem>
+ <listitem><para>bottom - controls could be rendered below the list </para></listitem>
+ </itemizedlist>
+ </listitem-->
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "controlsHorizontalAlign"</property>
+ </emphasis> attribute. Possible values: <itemizedlist>
+ <listitem>
+ <para>"left" - controls render to the left side of a list</para>
+ </listitem>
+ <listitem>
+ <para>"right" (default) - controls render to the right side of a list</para>
+ </listitem>
+ <listitem>
+ <para>"center" - controls is centered</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "controlsVerticalAlign"</property>
+ </emphasis> attribute. Possible values: <itemizedlist>
+ <listitem>
+ <para>"top" - controls render aligned to the top side of a list </para>
+ </listitem>
+ <listitem>
+ <para>"bottom" - controls render aligned to the bottom side of a list </para>
+ </listitem>
+ <listitem>
+ <para>"center" (default) - controls is centered relatively to a list
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <!--listitem><emphasis>
+ <property>"controlsLayout"</property>
+ </emphasis> attribute. Possible values: <itemizedlist>
+ <listitem><para>inline - controls defined one by one in line </para></listitem>
+ <listitem><para>block - controls defined in column </para></listitem>
+ </itemizedlist>
+ </listitem-->
+ </itemizedlist>
+ </para>
+
+ <para>The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component has a possibility to hide any of the controls by pairs using
+ following attributes: <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"orderControlsVisible"</property>
+ </emphasis> attribute has two values: "true" or "false". If false
+ <property>Up</property> and <property>Down</property> controls are not
+ displayed.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"fastOrderControlsVisible"</property>
+ </emphasis> attribute has two values: "true" or "false". If false
+ <property>Top</property> and <property>Bottom</property> controls are not
+ displayed.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> component allows to use internationalization method
+ to redefine and localize the labels. You could use application resource bundle and define
+ <code>RICH_SHUTTLES_TOP_LABEL</code>,
+ <code>RICH_SHUTTLES_BOTTOM_LABEL</code>,
+ <code>RICH_SHUTTLES_UP_LABEL</code>,
+ <code>RICH_SHUTTLES_DOWN_LABEL</code> there.
+ </para>
+ <para>
+ You could also pack <code>org.richfaces.renderkit.orderingList</code> resource bundle with your JARs defining the same properties.
+ </para>
+ <!-- Wiil be done for 3.2.0 version-->
+ <!--para>The component provides possibility to be customized using templating. The
+ customization could be performed by a layout definition nested into the component. 5
+ elements are provided to be defined inside template: {list}, {topControl},
+ {bottomControl}, {downCotrol}, {upControl}. <para>The example is placed below.</para>
+ </para>
+ <para>Example:</para>
+ <programlisting role="XML"><![CDATA[...
+<rich:orderingList>
+ <h:panelGrid columns="2" columnClasses="class1 class2">
+ <h:outputText value="{list}"/>
+ <h:panelGroup>
+ <h:outputText value="{topControl}"/>
+ <h:outputText value="{upControl}"/>
+ <h:outputText value="{downControl}"/>
+ <h:outputText value="{bottomControl}"/>
+ </h:panelGroup>
+ </h:panelGrid>
+</rich:orderingList>
+...]]>
+ </programlisting-->
+
+ <table>
+ <title>Keyboard usage for elements selection</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>CTRL+click</entry>
+ <entry>Inverts selection for an item</entry>
+ </row>
+ <row>
+ <entry>SHIFT+click</entry>
+ <entry>Selects all rows from active one to a clicked row if they differ,
+ else select the active row. All other selections are cleared</entry>
+ </row>
+ <row>
+ <entry>CTRL+A</entry>
+ <entry>Selects all elements inside the list if some active element is
+ already present in a list</entry>
+ </row>
+ <row>
+ <entry>Up, Down arrows</entry>
+ <entry>Changes the active and selected elements to the next or previous in a list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+
+ <table>
+ <title>Keyboard usage for elements reordering</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>Page Up</entry>
+ <entry>Moves selected set to the top of a list</entry>
+ </row>
+ <row>
+ <entry>Page Down</entry>
+ <entry>Moves selected set to the bottom of a list</entry>
+ </row>
+ <row>
+ <entry>CTRL+Up arrow</entry>
+ <entry>Moves selected item to one position upper</entry>
+ </row>
+ <row>
+ <entry>CTRL+Down arrow</entry>
+ <entry>Moves selected item to one position lower</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/orderingList.html">Table of
+ <rich:orderingList>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.OrderingList</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlOrderingList</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.OrderingList</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.OrderingListRenderer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <!--
+ <row>
+ <entry>SortAscending()</entry>
+ <entry>Sorts items in the list ascending</entry>
+ </row>
+ <row>
+ <entry>SortDescending()</entry>
+ <entry>Sorts items in the list descending</entry>
+ </row>
+ <row>
+ <entry>Sort()</entry>
+ <entry>Inverts current sorting</entry>
+ </row>
+ -->
+
+ <!--Controls common API -->
+ <row>
+ <entry role="tbi">hide()</entry>
+ <entry role="tbi">Hides ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">show()</entry>
+ <entry role="tbi">Shows ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">isShown()</entry>
+ <entry role="tbi">Checks if current control is shown (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">enable()</entry>
+ <entry role="tbi">Enables ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">disable()</entry>
+ <entry role="tbi">Disables ordering control (to be implemented)</entry>
+ </row>
+ <row>
+ <entry role="tbi">isEnabled()</entry>
+ <entry role="tbi">Checks if current control is enabled (to be implemented)</entry>
+ </row>
+ <!--List managing API -->
+ <row>
+ <entry>Up()</entry>
+ <entry>Moves up selected item in the list</entry>
+ </row>
+ <row>
+ <entry>Down()</entry>
+ <entry>Moves down selected item in the list</entry>
+ </row>
+ <row>
+ <entry>Top()</entry>
+ <entry>Moves top selected item in the list</entry>
+ </row>
+ <row>
+ <entry>Bottom()</entry>
+ <entry>Moves bottom selected item in the list</entry>
+ </row>
+ <row>
+ <entry>getSelection()</entry>
+ <entry>Returns currently selected item</entry>
+ </row>
+ <row>
+ <entry>getItems()</entry>
+ <entry>Returns the collection of all items</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>caption</entry>
+ <entry>Redefines the caption content. Related attribute is "captionLabel"</entry>
+ </row>
+ <row>
+ <entry>topControl</entry>
+ <entry>Redefines the label for the "Top" control. Related attribute is "topControlLabel"</entry>
+ </row>
+ <row>
+ <entry>bottomControl</entry>
+ <entry>Redefines the label for the "Bottom" control. Related attribute is "bottomControlLabel"</entry>
+ </row>
+ <row>
+ <entry>upControl</entry>
+ <entry>Redefines the label for the "Up" control. Related attribute is "upControlLabel"</entry>
+ </row>
+ <row>
+ <entry>downControl</entry>
+ <entry>Redefines the label for the "Down" control. Related attribute is "downControlLabel"</entry>
+ </row>
+ <row>
+ <entry>topControlDisabled</entry>
+ <entry>Redefines the disabled label for the "Top" control</entry>
+ </row>
+ <row>
+ <entry>bottomControlDisabled</entry>
+ <entry>Redefines the disabled label for the "Bottom" control</entry>
+ </row>
+ <row>
+ <entry>upControlDisabled</entry>
+ <entry>Redefines the disabled label for the "Up" control</entry>
+ </row>
+ <row>
+ <entry>downControlDisabled</entry>
+ <entry>Redefines the disabled label for the "Down" control</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="OrderLC">
+ <title>Classes names that define a list representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-list-body</entry>
+ <entry>Defines styles for a wrapper table element of an orderingList</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-output</entry>
+ <entry>Defines styles for a wrapper <div> element of a
+ list</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-items</entry>
+ <entry>Defines styles for a wrapper table element of items in the
+ list</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-content</entry>
+ <entry>Defines styles for a list content</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-header</entry>
+ <entry>Defines styles for a wrapper <div> element for a list
+ header</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-table-header</entry>
+ <entry>Defines styles for a wrapper <tr> element for a list
+ header</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-table-header-cell</entry>
+ <entry>Defines styles for a header cell</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a caption representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-list-caption</entry>
+ <entry>Defines styles for a caption</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-caption-disabled</entry>
+ <entry>Defines styles for a caption in disabled state</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-caption-active</entry>
+ <entry>Defines styles for a caption in active state</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define rows representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-list-row</entry>
+ <entry>Defines styles for a row</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-row-selected</entry>
+ <entry>Defines styles for a selected row</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-row-active</entry>
+ <entry>Defines styles for an active row</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-row-disabled</entry>
+ <entry>Defines styles for a disabled row</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define cells representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-list-cell</entry>
+ <entry>Defines styles for a cell</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-cell-selected</entry>
+ <entry>Defines styles for a selected cell</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-cell-active</entry>
+ <entry>Defines styles for an active cell</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-cell-disabled</entry>
+ <entry>Defines styles for a disabled cell</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a button representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-list-button</entry>
+ <entry>Defines styles for a button</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-disabled</entry>
+ <entry>Defines styles for a disabled button</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-light</entry>
+ <entry>Defines styles for a button highlight</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-press</entry>
+ <entry>Defines styles for a pressed button</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-content</entry>
+ <entry>Defines styles for a button content</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-selection</entry>
+ <entry>Defines styles for a button selection</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-valign</entry>
+ <entry>Defines styles for a wrapper <td> element for buttons
+ vertical align</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-list-button-layout</entry>
+ <entry>Defines styles for a wrapper <div> element of buttons
+ layout</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define controls representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-ordering-controls</entry>
+ <entry>Defines styles for a controls group</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-control-top</entry>
+ <entry>Defines styles for a "top" control</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-control-bottom</entry>
+ <entry>Defines styles for a "bottom" control</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-control-up</entry>
+ <entry>Defines styles for a "up" control</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-control-down</entry>
+ <entry>Defines styles for a "down" control</entry>
+ </row>
+ <row>
+ <entry>rich-ordering-control-disabled</entry>
+ <entry>Defines styles for controls in disabled state</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/orderingList.jsf?c=or...">On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:orderingList></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:page</keyword>
- </keywordset>
- <releaseinfo>3.3.1</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The <emphasis role="bold">
- <property><rich:page></property>
- </emphasis> component is used to create basic (X)HTML markup and define document parameters like DOCTYPE, title etc. The component also allows to build top level layout: header, bottom, center and left or right layout areas.</para>
-
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
-
-
- <listitem><para>Option to change the renderer of the component (themes support)</para></listitem>
- <listitem><para>Possibility to define parameters of an HTML page</para></listitem>
- <listitem><para>Possibility to create page layout with facets</para></listitem>
- <listitem><para>Provides styling based on RichFaces skinnability</para></listitem>
- </itemizedlist>
- </section>
-</section>
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_page.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,564 +1,290 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:page</keyword>
- <keyword>page</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.html.HtmlPage</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlPage</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Page</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.PageRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.PageTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:page>
- <!-- page body -->
-</rich:page>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlPage;
-...
-HtmlPage myHtmlPage = new HtmlPage();
-...]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The <emphasis role="bold"><property><rich:page></property></emphasis>
-
- component together with the <emphasis role="bold"><property><rich:layout></property></emphasis> component provides
- a full-fledged mechanism for markup creation. </para>
-
-
- <para>
-
- First of all, to declare the document type of the page you should use the <emphasis><property>"markupType"</property></emphasis> attribute which has the following values:
- </para>
-
- <itemizedlist>
- <listitem><para>"html"</para></listitem>
- <listitem><para>"html-transitional"</para></listitem>
- <listitem><para>"xhtml"</para></listitem>
- <listitem><para>"xhtml-transitional"</para></listitem>
- <listitem><para>"html-frameset"</para></listitem>
- <listitem><para>"html-3.2"</para></listitem>
-
- </itemizedlist>
- <para>The default value is "html".</para>
- <para>
- The <emphasis><property>"contentType"</property></emphasis> allows to specify the type of the content and encoding for the page.
- </para>
-
- <para>
- The title of the page can be set with the <emphasis><property>"pageTile"</property></emphasis> attribute.
- To place some other page parameters (like meta information, links to CSS style sheets etc.) in the <head> element of an HTML page use "pageHeader" facet.
-
- </para>
-<para>
- <emphasis role="bold">Example:</emphasis>
-</para>
-
-<programlisting role="XML"><![CDATA[...
-<rich:page pageTitle="The title of the page" markupType="xhtml">
- <f:facet name="pageHeader">
- <meta content="The rich:page component" name="keywords" />
- <link rel="shortcut icon" href="/images/favicon.ico" />
- <link href="/css/style.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript" src="/js/menu.js"></script>
- </f:facet>
- <!-- page content -->
-</rich:page>
-...]]></programlisting>
-
- <note>
- <title>Note:</title>
- <para>Note, the <emphasis role="bold"><property><rich:page></property></emphasis> component encodes the full page structure. Therefore, be sure you don't
- use the doctype declaration, root html element, head and body elements on the same page where you've put this component.</para>
- </note>
-
- <para>The implementation of the <emphasis role="bold"><property><rich:page></property></emphasis> component provides four facets that you can use to arrange the layout of the page: "header", "subheader", "sidebar" and "footer". Their behavior is quite self-explanatory. </para>
- <para>The position of the panel rendered by the "sidebar" facet can be set with the <emphasis><property>"sidebarPosition"</property></emphasis> attribute that can take either "right" or "left" as values, you can also specify the width for this facet with the <emphasis><property>"sidebarWidth"</property></emphasis> attribute. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
-
-
- <programlisting role="XML"><![CDATA[...
-<rich:page sidebarPosition="left" sidebarWidth="300">
- <f:facet name="header">
- <!-- header content -->
- </f:facet>
- <f:facet name="sidebar">
- <!-- side panel content -->
- </f:facet>
- <!-- body content -->
- <f:facet name="footer">
- <!-- footer content -->
- </f:facet>
-</rich:page>
-...]]></programlisting>
-
-
- <para>The <emphasis role="bold"><property><rich:page></property></emphasis> component also provides attributes to define CSS classes for each nested facet as well as a body part of the page created with the component.</para>
-
-
- <para>Several templates are available for the <emphasis role="bold"><property><rich:page></property></emphasis> component. A template can be activated with the <emphasis><property>"theme"</property></emphasis> attribute.</para>
-
- <para>The theme defines the way the <emphasis role="bold"><property><rich:page></property></emphasis> is rendered. Default renderer(default theme) of the <emphasis role="bold"><property><rich:page></property></emphasis> has no mappings to skin parameters and just provides CSS classes for the page part. However, the <property>simple</property> theme, which is an extension of the default theme, has mappings to skin parameters and adds the RichFaces skinning for the page elements. </para>
-
- <para>As a whole, RichFaces provides 4 themes for the <emphasis role="bold"><property><rich:page></property></emphasis> component out-of-the-box: "simple", "violetRays", "oldschool", "smooth". The <ulink url="http://www.jboss.org/community/docs/DOC-13635">Creating a Theme for <rich:page></ulink> article tells how you can create your custom theme for the <emphasis role="bold"><property><rich:page></property></emphasis> component. </para>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet Name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>pageHeader</entry>
- <entry>Creates the <head/> part of the HTML page</entry>
- </row>
- <row>
- <entry>header</entry>
- <entry>Creates a header</entry>
- </row>
-
- <row>
- <entry>subheader</entry>
- <entry>Creates a horizontal panel under the header</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Creates a footer</entry>
- </row>
-
- <row>
- <entry>sidebar</entry>
- <entry>Creates a left/right panel</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Skin Parameters for the "simple" theme</title>
- <table>
- <title>Skin parameters for the <body/> HTML element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters for the whole page</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters for the header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalSizeFont </entry>
- <entry>border-bottom-color</entry>
- </row>
-
- <row>
- <entry>headerGradientColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>trimColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
-
-
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters for the content area of the page</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
-
- <row>
- <entry>trimColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters for the footer</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>border-top-color</entry>
- </row>
-
- <row>
- <entry>panelBorderColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters for the side panel</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Skin parameters for h1,h2,h3 HTML tags</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>headTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters for p,ul,ol HTML tags</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
-
- <row>
- <entry>controlTextColor</entry>
- <entry>color</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters for the hovered link</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>hoverLinkColor</entry>
- <entry>color</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
-
-
- <table>
- <title>Skin parameters for the visited link</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>visitedLinkColor</entry>
- <entry>color</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
-
- </section>
-
-
- <section>
- <title>Component CSS Selectors</title>
-
- <table id="RichpageSelectors">
- <title>CSS Selectors that define the representation of the component's blocks</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>CSS Selector</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
-
- <row>
- <entry>.rich-page</entry>
- <entry>Defines styles for the whole page</entry>
- </row>
-
-
- <row>
- <entry>.rich-page-header</entry>
- <entry>Defines styles for the header</entry>
- </row>
-
- <row>
- <entry>.rich-page-subheader</entry>
- <entry>Defines styles for the block under the header</entry>
- </row>
-
- <row>
- <entry>.rich-page-sidebar</entry>
- <entry>Defines styles for the sidebar</entry>
- </row>
-
- <row>
- <entry>.rich-page-body</entry>
- <entry>Defines styles for the body part of the page</entry>
- </row>
-
- <row>
- <entry>.rich-page-footer</entry>
- <entry>Defines styles for the footer</entry>
- </row>
-
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf"
- >On the component Live Demo page</ulink> you can see the example of <emphasis role="bold">
- <property><rich:page></property>
- </emphasis> component usage and sources for the given example. </para>
- <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki</para>
- </section>
+<section role="NotInToc" id="rich_page">
+ <title>
+ <
+ rich:page
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.3.1</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component is used to create basic (X)HTML markup and define document parameters like DOCTYPE, title etc. The component also allows to build top level layout: header, bottom, center and left or right layout areas.</para>
+
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+
+
+ <listitem>
+ <para>Option to change the renderer of the component (themes support)</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to define parameters of an HTML page</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to create page layout with facets</para>
+ </listitem>
+ <listitem>
+ <para>Provides styling based on RichFaces skinnability</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis>
+
+ component together with the <emphasis role="bold">
+ <property><rich:layout></property>
+ </emphasis> component provides
+ a full-fledged mechanism for markup creation. </para>
+
+
+ <para>
+
+ First of all, to declare the document type of the page you should use the <emphasis>
+ <property>"markupType"</property>
+ </emphasis> attribute which has the following values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>"html"</para>
+ </listitem>
+ <listitem>
+ <para>"html-transitional"</para>
+ </listitem>
+ <listitem>
+ <para>"xhtml"</para>
+ </listitem>
+ <listitem>
+ <para>"xhtml-transitional"</para>
+ </listitem>
+ <listitem>
+ <para>"html-frameset"</para>
+ </listitem>
+ <listitem>
+ <para>"html-3.2"</para>
+ </listitem>
+
+ </itemizedlist>
+ <para>The default value is "html".</para>
+ <para>
+ The <emphasis>
+ <property>"contentType"</property>
+ </emphasis> allows to specify the type of the content and encoding for the page.
+ </para>
+
+ <para>
+ The title of the page can be set with the <emphasis>
+ <property>"pageTile"</property>
+ </emphasis> attribute.
+ To place some other page parameters (like meta information, links to CSS style sheets etc.) in the <head> element of an HTML page use "pageHeader" facet.
+
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:page pageTitle="The title of the page" markupType="xhtml">
+ <f:facet name="pageHeader">
+ <meta content="The rich:page component" name="keywords" />
+ <link rel="shortcut icon" href="/images/favicon.ico" />
+ <link href="/css/style.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="/js/menu.js"></script>
+ </f:facet>
+ <!-- page content -->
+</rich:page>
+...</programlisting>
+ <note>
+ <title>Note:</title>
+ <para>Note, the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component encodes the full page structure. Therefore, be sure you don't
+ use the doctype declaration, root html element, head and body elements on the same page where you've put this component.</para>
+ </note>
+
+ <para>The implementation of the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component provides four facets that you can use to arrange the layout of the page: "header", "subheader", "sidebar" and "footer". Their behavior is quite self-explanatory. </para>
+ <para>The position of the panel rendered by the "sidebar" facet can be set with the <emphasis>
+ <property>"sidebarPosition"</property>
+ </emphasis> attribute that can take either "right" or "left" as values, you can also specify the width for this facet with the <emphasis>
+ <property>"sidebarWidth"</property>
+ </emphasis> attribute. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+
+
+ <programlisting role="XML">...
+<rich:page sidebarPosition="left" sidebarWidth="300">
+ <f:facet name="header">
+ <!-- header content -->
+ </f:facet>
+ <f:facet name="sidebar">
+ <!-- side panel content -->
+ </f:facet>
+ <!-- body content -->
+ <f:facet name="footer">
+ <!-- footer content -->
+ </f:facet>
+</rich:page>
+...</programlisting>
+ <para>The <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component also provides attributes to define CSS classes for each nested facet as well as a body part of the page created with the component.</para>
+
+
+ <para>Several templates are available for the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component. A template can be activated with the <emphasis>
+ <property>"theme"</property>
+ </emphasis> attribute.</para>
+
+ <para>The theme defines the way the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> is rendered. Default renderer(default theme) of the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> has no mappings to skin parameters and just provides CSS classes for the page part. However, the <property>simple</property> theme, which is an extension of the default theme, has mappings to skin parameters and adds the RichFaces skinning for the page elements. </para>
+
+ <para>As a whole, RichFaces provides 4 themes for the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component out-of-the-box: "simple", "violetRays", "oldschool", "smooth". The <ulink url="http://www.jboss.org/community/docs/DOC-13635">Creating a Theme for <rich:page></ulink> article tells how you can create your custom theme for the <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component. </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/page.html">Table of
+ <rich:page>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.html.HtmlPage</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPage</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Page</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.PageRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.PageTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet Name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>pageHeader</entry>
+ <entry>Creates the <head/> part of the HTML page</entry>
+ </row>
+ <row>
+ <entry>header</entry>
+ <entry>Creates a header</entry>
+ </row>
+
+ <row>
+ <entry>subheader</entry>
+ <entry>Creates a horizontal panel under the header</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Creates a footer</entry>
+ </row>
+ <row>
+ <entry>sidebar</entry>
+ <entry>Creates a left/right panel</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="RichpageSelectors">
+ <title>CSS Selectors that define the representation of the component's blocks</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>CSS Selector</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+
+ <row>
+ <entry>.rich-page</entry>
+ <entry>Defines styles for the whole page</entry>
+ </row>
+ <row>
+ <entry>.rich-page-header</entry>
+ <entry>Defines styles for the header</entry>
+ </row>
+
+ <row>
+ <entry>.rich-page-subheader</entry>
+ <entry>Defines styles for the block under the header</entry>
+ </row>
+
+ <row>
+ <entry>.rich-page-sidebar</entry>
+ <entry>Defines styles for the sidebar</entry>
+ </row>
+ <row>
+ <entry>.rich-page-body</entry>
+ <entry>Defines styles for the body part of the page</entry>
+ </row>
+ <row>
+ <entry>.rich-page-footer</entry>
+ <entry>Defines styles for the footer</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/layouts.jsf">On the component Live Demo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:page></property>
+ </emphasis> component usage and sources for the given example. </para>
+ <para>The <ulink url="http://www.jboss.org/community/docs/DOC-13336">Layout components for RichFaces 3.3.1</ulink> on the JBoss.org Wiki</para>
+ </section>
</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_paint2D.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_paint2D.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_paint2D.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,180 @@
+<section role="NotInToc" id="rich_paint2D">
+ <title>
+ <
+ rich:paint2D
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>Create image by painting from a managed bean method, same as <emphasis>
+ <property>"paint"</property>
+ </emphasis> (Graphics2D)
+ in <emphasis>
+ <property>"SWING"</property>
+ </emphasis> components. </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:paint2D></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/paint2D_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Simple Graphics2D - painting style directly on the Web page</para>
+ </listitem>
+ <listitem>
+ <para>Supports client/server caching for generated images</para>
+ </listitem>
+ <listitem>
+ <para>Fully supports <emphasis>
+ <property>"JPEG"</property>
+ </emphasis> (24-bit, default), <emphasis>
+ <property>"GIF"</property>
+ </emphasis> (8-bit with
+ transparency), and <emphasis>
+ <property>"PNG"</property>
+ </emphasis> (32-bit with transparency)
+ formats for sending generated images</para>
+ </listitem>
+ <listitem>
+ <para>Easily customizable borders and white space to wrap the image</para>
+ </listitem>
+ <listitem>
+ <para>Dynamically settable paint parameters using tag attributes</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The example shows two main attributes of the component:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"paint"</property>
+ </emphasis>
+ </para>
+ <para>Specify a method receiving an object specified in data as a parameter and sending
+ graphical information into the stream</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"data"</property>
+ </emphasis>
+ </para>
+ <para>Specifies a bean class keeping your data for rendering</para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <note>
+ <title>Note:</title>
+ <para>Data object should implement serializable interface </para>
+ </note>
+ </para>
+ <para>The <emphasis>
+ <property>"format"</property>
+ </emphasis> attribute of the component defines a format of visual data passing to the server.</para>
+ <para>Generated data can be used as a cacheable or non-cacheable resource. It's defined
+ with <emphasis>
+ <property>"cacheable"</property>
+ </emphasis> attribute. If cache support is turned on, a key is created in URI with a mix of
+ size (width/height), <code>"paint"</code> method, <emphasis>
+ <property>"format"</property>
+ </emphasis> and <emphasis>
+ <property>"data"</property>
+ </emphasis> attributes.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">paintBean.java:
+
+public void paint(Graphics2D g2, Object obj) {
+ // code that gets data from the data Bean (PaintData)
+ PaintData data = (PaintData) obj;
+ ...
+ // a code drawing a rectangle
+ g2.drawRect(0, 0, data.Width, data.Height);
+ ...
+ // some more code placing graphical data into g2 stream below
+}
+
+dataBean.java:
+
+public class PaintData implements Serializable{
+ private static final long serialVersionUID = 1L;
+ Integer Width=100;
+ Integer Height=50;
+ ...
+}
+
+page.xhtml:
+
+...
+<rich:paint2D paint="#{paint2D.paint}" data="#{paint2DModel.data}"/>
+...
+</programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/paint2D.html">Table of
+ <rich:paint2D>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Paint2D</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPaint2D</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>javax.faces.Output</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.Paint2DRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.Paint2DTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/paint2D.jsf?c=paint2d">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:paint2D></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,270 @@
+<section role="NotInToc" id="rich_panel">
+ <title>
+ <
+ rich:panel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A skinnable <property>panel</property> that is rendered as a bordered rectangle with or
+ without a header.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panel></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panel_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Support for any content inside</para>
+ </listitem>
+ <listitem>
+ <para>Header adding feature</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis>
+ <property>"header"</property>
+ </emphasis> attribute defines text to be represented. If you can use the
+ <emphasis>
+ <property>"header"</property>
+ </emphasis> facet, you can even not use the <emphasis>
+ <property>"header"</property>
+ </emphasis> attribute.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panel>
+ <f:facet name="header">
+ <h:graphicImage value="/images/img1.png"/>
+ </f:facet>
+ ...
+ <!--Any Content inside-->
+ ...
+</rich:panel>
+...
+</programlisting>
+
+ <para>
+ <emphasis role="bold">
+ <property><rich:panel></property>
+ </emphasis> components are used to group page content pieces on similarly formatted
+ rectangular <property>panels</property>. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panel>
+ ...
+</rich:panel>
+...
+</programlisting>
+ <para>It's generating on a page in the following way:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panel></property>
+ </emphasis> without header</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panel2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The example shows that similar rectangular areas are formed with a particular style.</para>
+ <para>When creating a <property>panel</property> with a header element, one more <emphasis role="bold">
+ <property><div></property>
+ </emphasis> element is added with content defined for a header.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panel>
+ <f:facet name="header">
+ <h:outputText value="Olympus EVOLT E-500 "/>
+ </f:facet>
+ ...
+</rich:panel>
+...
+</programlisting>
+ <para>It's displayed on a page in the following way:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panel></property> with header</emphasis>
+ </title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panel3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>As it has been mentioned <link linkend="panel">above</link>, the component is mostly used for a page style definition,
+ hence the main attributes are style ones.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "styleClass" </property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "headerClass" </property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "bodyClass" </property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Moreover, to add e.g. some JavaScript effects, events defined on it are used.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panel.html">Table of
+ <rich:panel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.panel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.panel</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.PanelRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.PanelTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn11">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-panel</entry>
+ <entry>Defines styles for a wrapper <div> element of a component</entry>
+ </row>
+ <row>
+ <entry>rich-panel-header</entry>
+ <entry>Defines styles for a header element</entry>
+ </row>
+ <row>
+ <entry>rich-panel-body</entry>
+ <entry>Defines styles for a body element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panel.jsf?c=panel">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:panel></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBar.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,164 @@
+<section role="NotInToc" id="rich_panelBar">
+ <title>
+ <
+ rich:panelBar
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ <property>panelBar</property> is used for grouping any content which is loaded on the client
+ side and appears as groups divided on child panels after the header is clicked.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panelBar></property>
+ </emphasis> with content inside</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelBar_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Skinnable slide panel and child items</para>
+ </listitem>
+ <listitem>
+ <para>Groups any content inside each panel</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>As it was mentioned <link linkend="panelBar">above</link>,
+ <property>panelBar</property> is used for grouping any content on the client, thus its
+ customization deals only with specification of sizes and styles for rendering.</para>
+ <para>
+ <emphasis>
+ <property>"width"</property>
+ </emphasis> and <emphasis>
+ <property>"height"</property>
+ </emphasis> (both are 100% on default) attributes stand apart.</para>
+ <para>Style attributes are described further.</para>
+ <para>
+ <property>panelBar</property> could contain any number of child
+ <property>panelBarItem</property> components inside, which content is uploaded onto the
+ client and headers are controls to open the corresponding child element.</para>
+ <!--para>
+ The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute.
+ The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and the message that the component (indirectly) produced.
+ This attribute defines the parameters of localized error and informational messages that
+ occur as a result of conversion, validation, or other application actions during the request
+ processing lifecycle. With the help of this attribute you can replace the
+ last parameter substitution token shown in the messages. For example, {1} for <code>"DoubleRangeValidator.MAXIMUM"</code>, {2}
+ for <code>"ShortConverter.SHORT"</code>.
+ </para-->
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panelBar.html">Table of
+ <rich:panelBar>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.PanelBar</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPanelBar</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.PanelBar</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.PanelBarRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.PanelBarTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_pB">
+ <title>Class name that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-panelbar</entry>
+ <entry>Defines styles for a wrapper <div> element of a
+ component</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Style component classes</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>A class attribute</entry>
+ <entry>A component element defined by an attribute</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>styleClass</entry>
+ <entry>Applicable to a whole component (together with headers)</entry>
+ </row>
+ <row>
+ <entry>headerClass</entry>
+ <entry>Applicable to a header element</entry>
+ </row>
+ <row>
+ <entry>contentClass</entry>
+ <entry>Applicable to a content </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelBar.jsf?c=panelBar">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:panelBar></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBarItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBarItem.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelBarItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,183 @@
+<section role="NotInToc" id="rich_panelBarItem">
+ <title>
+ <
+ rich:panelBarItem
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ <property>panelBarItem</property> is used for grouping any content inside within one
+ panelBar which is loaded on client side and appears as groups divided on child panels after
+ header is clicked.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panelBarItem></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelBarItem_init.png" scalefit="1"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Groups any content inside each Panels</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis>
+ <property> "label"</property>
+ </emphasis> attribute defines text to be represented. If you can use the <emphasis>
+ <property>"label"</property>
+ </emphasis> facet, you can even not use the <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelBarItem...>
+ <f:facet name="label">
+ <h:graphicImage value="/images/img1.png"/>
+ </f:facet>
+ ...
+ <!--Any Content inside-->
+ ...
+</rich:panelBarItem>
+...
+</programlisting>
+ <para>As it was mentioned <link linkend="panelBarItem">above</link>,
+ <property>panelBarItem</property> is used for grouping any content inside within one
+ <property>panelBar</property>, thus its customization deals only with specification of sizes
+ and styles for rendering.</para>
+ <para>
+ <property>panelBar</property> could contain any number of child
+ <property>panelBarItem</property> components inside, which content is uploaded onto the client
+ and headers are controls to open the corresponding child element.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panelBarItem.html">Table of
+ <rich:panelBarItem>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.PanelBarItem</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPanelBarItem</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.PanelBarItem</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.PanelBarItemRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.PanelBarItemTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>label</entry>
+ <entry>defines the label text on the panel item header</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_pBI">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-panelbar-header</entry>
+ <entry>Defines styles for a wrapper <div> element of a header
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-panelbar-header-act</entry>
+ <entry>Defines styles for a wrapper <div> element of an active header
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-panelbar-content</entry>
+ <entry>Defines styles for a content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Style component classes</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>A class attribute</entry>
+ <entry>A component element defined by an attribute</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>headerClass</entry>
+ <entry>Applicable to a header element</entry>
+ </row>
+ <row>
+ <entry>contentClass</entry>
+ <entry>Applicable to a content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenu.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenu.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,328 @@
+<section role="NotInToc" id="rich_panelMenu">
+ <title>
+ <
+ rich:panelMenu
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> component is used to define an in line vertical menu on a page.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenu_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Different submission modes</para>
+ </listitem>
+ <listitem>
+ <para>Collapsing/expanding sublevels with optional request sending</para>
+ </listitem>
+ <listitem>
+ <para>Custom and predefined icons support</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>All attributes are not required.</para>
+ <para>Use <emphasis>
+ <property>"event"</property>
+ </emphasis> attribute to define an event for appearance of collapsing/expanding sublevels.
+ Default value is "onclick". An example could be seen below.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu event="onmouseover">
+ <!--Nested panelMenu components-->
+</rich:panelMenu>
+...</programlisting>
+
+ <para>Switching mode could be chosen with the <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute for all panelMenu items except ones where this attribute was redefined.
+ By default all items send traditional request. </para>
+ <para>The <emphasis>
+ <property>"expandMode"</property>
+ </emphasis> attribute defines the submission modes for all collapsing/expanding panelMenu
+ groups except ones where this attribute was redefined. </para>
+ <para>The <emphasis>
+ <property>"mode"</property>
+ </emphasis> and <emphasis>
+ <property>"expandMode"</property>
+ </emphasis> attributes could be used with three possible parameters. The <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute defines parameters for all included <emphasis role="bold">
+ <property><rich:panelMenuItem></property>
+ </emphasis> elements.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The common submission of the form is performed and a page is completely refreshed.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu mode="server">
+ <rich:panelMenuGroup label="test Group" action="#{bean.action}">
+ <rich:panelMenuItem label="test" action="#{capitalsBean.action}">
+ <f:param value="test value" name="test"/>
+ </rich:panelMenuItem>
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+...</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>An Ajax form submission is performed, and additionally specified elements in the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute are reRendered.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu mode="ajax">
+ <rich:panelMenuGroup label="test Group" action="#{bean.action}">
+ <rich:panelMenuItem label="test" reRender="test" action="#{capitalsBean.action}">
+ <f:param value="test value" name="test"/>
+ </rich:panelMenuItem>
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+...</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis>
+ <property>"Action"</property>
+ </emphasis> and <emphasis>
+ <property>"ActionListener"</property>
+ </emphasis> item's attributes are ignored. Items don't fire any submits itself. Behavior is
+ fully defined by the components nested into items.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu event="onclick" submitMode="none">
+ <rich:panelMenuItem label="Link to external page">
+ <h:outputLink ... >
+ <rich:panelMenuItem>
+</rich:panelMenu>
+...</programlisting>
+
+ <note>
+ <title>Note:</title>
+ <para> As the <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> component doesn't provide its own form, use it between
+ <emphasis role="bold">
+ <property><h:form></property>
+ </emphasis> and <emphasis role="bold">
+ <property></h:form></property>
+ </emphasis> tags.</para>
+ </note>
+
+ <para>The <emphasis>
+ <property>"expandSingle"</property>
+ </emphasis> attribute is defined for expanding more than one submenu on the same level. The
+ default value is <emphasis>
+ <property>"false"</property>
+ </emphasis>. If it's true the previously opened group on the top level closes before
+ opening another one. See the picture below.</para>
+
+ <figure>
+ <title>Using the <emphasis>
+ <property>"expandSingle"</property>
+ </emphasis> attribute</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenu2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The <emphasis>
+ <property>"selectedChild"</property>
+ </emphasis> attribute is used for defining the name of the selected group or item. An example
+ for group is placed below:</para>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu selectedChild="thisChild">
+ <rich:panelMenuGroup label="Group1" name="thisChild">
+ <!--Nested panelMenu components-->
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+...</programlisting>
+ <para>
+ The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute.
+ The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and the message that the component (indirectly) produced.
+ This attribute defines the parameters of localized error and informational messages that
+ occur as a result of conversion, validation, or other application actions during the request
+ processing lifecycle. With the help of this attribute you can replace the
+ last parameter substitution token shown in the messages. For example, {1} for <code>"DoubleRangeValidator.MAXIMUM"</code>, {2}
+ for <code>"ShortConverter.SHORT"</code>.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panelMenu.html">Table of
+ <rich:panelMenu>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.PanelMenu</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlPanelMenu</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.PanelMenu</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.PanelMenuRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.PanelMenuTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>expand()</entry>
+
+ <entry>Expands group element</entry>
+ </row>
+
+ <row>
+ <entry>collapse()</entry>
+
+ <entry>Collapses group element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn_pM">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-pmenu</entry>
+ <entry>Defines styles for a wrapper <div> element of a component</entry>
+ </row>
+ <row>
+ <entry>rich-pmenu-top-group</entry>
+ <entry>Defines styles for a top group element of a component</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuGroup.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,349 @@
+<section role="NotInToc" id="rich_panelMenuGroup">
+ <title>
+ <
+ rich:panelMenuGroup
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:panelMenuGroup></property>
+ </emphasis> component is used to define an expandable group of items inside the panel menu or other group.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panelMenuGroup></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuGroup_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Different submission modes inside every group</para>
+ </listitem>
+ <listitem>
+ <para>Optional submissions on expand collapse groups</para>
+ </listitem>
+ <listitem>
+ <para>Custom and predefined icons supported</para>
+ </listitem>
+ <listitem>
+ <para>Support for disabling</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>All attributes except <emphasis>
+ <property>"label"</property>
+ </emphasis> are optional. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute defines text to be represented.</para>
+ <para>Switching mode could be chosen with the<emphasis>
+ <property> "expandMode"</property>
+ </emphasis> attribute for the concrete panelMenu group.</para>
+ <para>The <emphasis>
+ <property>"expandMode"</property>
+ </emphasis> attribute could be used with three possible parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>ServerM</code> (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Regular form submission request is used.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ajax submission is used for switching.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis>
+ <property>"Action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> attributes are ignored. Items don't fire any submits itself. Behavior is
+ fully defined by the components nested into items.</para>
+
+ <para>There are three icon-related attributes. The <emphasis>
+ <property>"iconExpanded"</property>
+ </emphasis> attribute defines an icon for an expanded state. The <emphasis>
+ <property>"iconCollapsed"</property>
+ </emphasis> attribute defines an icon for a collapsed state. The <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attribute defines an icon for a disabled state.</para>
+
+ <para>Default icons are shown on the picture below:</para>
+
+ <figure>
+ <title>Default icons</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuGroup2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu>
+ <rich:panelMenuGroup label="Group1" iconExpanded="disc" iconCollapsed="chevron">
+ <!--Nested panelMenu components-->
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+...</programlisting>
+ <para> As the result the pictures are shown below. The first one represents the collapsed state,
+ the second one - expanded state:</para>
+
+ <figure>
+ <title>Collapsed state</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuGroup3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure>
+ <title>Expanded state</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuGroup4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It's also possible to define a path to the icon. Simple code is placed below.</para>
+
+ <programlisting role="XML">...
+<rich:panelMenu>
+ <rich:panelMenuGroup label="Group1" iconExpanded="\images\img1.png" iconCollapsed="\images\img2.png">
+ <!--Nested menu components-->
+ </rich:panelMenuGroup>
+</rich:panelMenu>
+...</programlisting>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panelMenuGroup.html">Table of
+ <rich:panelMenuGroup>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.PanelMenuGroup</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlPanelMenuGroup</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.PanelMenuGroup</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.PanelMenuGroupRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.PanelMenuGroupTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>expand()</entry>
+
+ <entry>Expand group element</entry>
+ </row>
+
+ <row>
+ <entry>collapse()</entry>
+
+ <entry>Collapse group element</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="panelMenuC">
+ <title>Classes names that define an upper level groups</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>rich-pmenu-top-group-self-icon</entry>
+
+ <entry>Defines styles for a top group icon</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-top-group-self-label</entry>
+
+ <entry>Defines styles for a top group label</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a second and lower level groups</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>rich-pmenu-group</entry>
+
+ <entry>Defines styles for a group</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-group-self-icon</entry>
+
+ <entry>Defines styles for a group icon</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-group-self-label</entry>
+
+ <entry>Defines styles for a group label</entry>
+ </row>
+ </tbody>
+
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a group state</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-pmenu-hovered-element</entry>
+
+ <entry>Defines styles for a hovered group element</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-disabled-element</entry>
+
+ <entry>Defines styles for a disabled group element</entry>
+ </row>
+ </tbody>
+
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Some additional information about usage of component can be found
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel...">on the component Live Demo page</ulink>.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuItem.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuItem.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_panelMenuItem.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,342 @@
+<section role="NotInToc" id="rich_panelMenuItem">
+ <title>
+ <
+ rich:panelMenuItem
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:panelMenuItem></property>
+ </emphasis> component is used to define a single item inside popup list.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:panelMenuItem></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuItem_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Different submission modes</para>
+ </listitem>
+ <listitem>
+ <para>Optionally supports any content inside</para>
+ </listitem>
+ <listitem>
+ <para>Custom and predefined icons supported</para>
+ </listitem>
+ <listitem>
+ <para>Support for disabling</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>All attributes except <emphasis>
+ <property>"label"</property>
+ </emphasis> are optional. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute defines text to be represented.</para>
+ <para>The <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute could be used with three possible parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Regular form submission request is used.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ajax submission is used for switching.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>None</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ <emphasis>
+ <property>"Action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> attributes are ignored. Items don't fire any
+ submits itself. Behavior is fully defined by the components nested
+ into items.</para>
+
+ <para>Here is an example for value "none":</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:panelMenu>
+ ...
+ <rich:panelMenuItem mode="none" onclick="document.location.href='http://labs.jboss.com/jbossrichfaces/">
+ <h:outputLink value="http://labs.jboss.com/jbossrichfaces/">
+ <h:outputText value="RichFaces Home Page"></h:outputText>
+ </h:outputLink>
+ </rich:panelMenuItem>
+ ...
+</rich:panelMenu>
+...</programlisting>
+
+ <para>There are two icon-related attributes. The <emphasis>
+ <property>"icon"</property>
+ </emphasis> attribute defines an icon. The <emphasis>
+ <property>"iconDisabled"</property>
+ </emphasis> attribute defines an icon for a disabled item.</para>
+
+ <para>Default icons are shown on the picture below:</para>
+
+ <figure>
+ <title>Default icons</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuItem2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+ <rich:panelMenu>
+ ...
+ <rich:panelMenuItem value="Item 1.1" icon="chevronUp" />
+ ...
+ </rich:panelMenu>
+...</programlisting>
+ <para> As the result the picture is shown below:</para>
+
+ <figure>
+ <title>Using an <emphasis>
+ <property>"icon"</property>
+ </emphasis> attribute</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenuItem3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It's also possible to define a path to the icon. Simple code is
+ placed below.</para>
+
+ <programlisting role="XML">...
+<rich:panelMenu>
+ ...
+ <rich:panelMenuItem value="Item 1.1" icon="\images\img1.png" />
+ ...
+</rich:panelMenu>
+...</programlisting>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the
+ <link linkend="process"> "Decide what to process" </link> guide section. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/panelMenuItem.html">Table of
+ <rich:panelMenuItem>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+
+ <entry>org.richfaces.PanelMenuItem</entry>
+ </row>
+
+ <row>
+ <entry>component-class</entry>
+
+ <entry>org.richfaces.component.html.HtmlPanelMenuItem</entry>
+ </row>
+
+ <row>
+ <entry>component-family</entry>
+
+ <entry>org.richfaces.PanelMenuItem</entry>
+ </row>
+
+ <row>
+ <entry>renderer-type</entry>
+
+ <entry>org.richfaces.PanelMenuItemRenderer</entry>
+ </row>
+
+ <row>
+ <entry>tag-class</entry>
+
+ <entry>org.richfaces.taglib.PanelMenuItemTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn_pMI">
+ <title>Classes names that define the first level items</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-pmenu-top-item</entry>
+
+ <entry>Defines styles for a top panel
+ menu item</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-top-item-icon</entry>
+
+ <entry>Defines styles for a top panel
+ menu item icon</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-top-item-label</entry>
+
+ <entry>Defines styles for a top panel
+ menu item label</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define the second and lower level items</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-pmenu-item</entry>
+
+ <entry>Defines styles for a panel menu
+ item</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-item-icon</entry>
+
+ <entry>Defines styles for a panel menu
+ item icon</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-item-label</entry>
+
+ <entry>Defines styles for a panel menu
+ item label</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define items state</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-pmenu-item-selected</entry>
+
+ <entry>Defines styles for a panel menu
+ selected item</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-disabled-element</entry>
+
+ <entry>Defines styles for a disabled
+ panel menu item</entry>
+ </row>
+
+ <row>
+ <entry>rich-pmenu-hovered-element</entry>
+
+ <entry>Defines styles for a hovered
+ panel menu item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para> Some additional information about usage of component can be found on this <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/panelMenu.jsf?c=panel...">LiveDemo page</ulink>. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_pickList.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_pickList.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_pickList.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,599 @@
+<section role="NotInToc" id="rich_pickList">
+ <title>
+ <
+ rich:pickList
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis> component is used for moving selected item(s) from one list into another.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/pickList_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Multiple selection of list items</para>
+ </listitem>
+ <listitem>
+ <para>Keyboard support</para>
+ </listitem>
+ <listitem>
+ <para>Supports standard JSF internationalization</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <!--listitem>
+ <para>Disablement support</para>
+ </listitem-->
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis> component consists of <itemizedlist>
+ <listitem>
+ <para>2 <property>item lists</property>. Every item has three different representations: common, selected, active.
+ Combination of these states is possible.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>Move controls set</property> is a set of controls, which performs moving items between lists.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute is the initial value of this component.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><f:selectItem /></property>
+ </emphasis> or <emphasis role="bold">
+ <property><f:selectItems /></property>
+ </emphasis> facets are used to define the values of a source list.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:pickList value="#{pickBean.listValues}">
+ <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
+ <f:selectItem itemValue="Audi" itemLabel="Audi"/>
+ <f:selectItems value="#{pickBean.sourceList}"/>
+</rich:pickList>
+...</programlisting>
+
+ <para>
+ The <emphasis>
+ <property> "switchByClick"</property>
+ </emphasis> attribute provides an option to copy and remove items between lists by one click.
+ Default value of this attribute is "false", so you need a double click to copy, remove items from one list to another.
+ </para>
+ <para>
+ Lables of the <property>move controls</property> can be defined with
+ <emphasis>
+ <property> "copyAllControlLabel"</property>
+ </emphasis>,
+ <emphasis>
+ <property> "copyControlLabel"</property>
+ </emphasis>,
+ <emphasis>
+ <property> "removeControlLabel"</property>
+ </emphasis>,
+ <emphasis>
+ <property> "removeAllControlLabel"</property>
+ </emphasis> attributes.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:pickList copyAllControlLabel = "#{pickBean.copyAllLabel}" copyControlLabel = "#{pickBean.copyLabel}"
+ removeControlLabel = "#{pickBean.removeLabel}" removeAllControlLabel ="#{pickBean.removeAllLabel}" value="#{pickBean.listValues}">
+ <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
+ <f:selectItem itemValue="Audi" itemLabel="Audi"/>
+ <f:selectItems value="#{pickBean.sourceList}"/>
+</rich:pickList>
+...</programlisting>
+ <para>
+ If you don't want to display labels on the buttons you need to set
+ <emphasis>
+ <property> "showButtonsLabel"</property>
+ </emphasis> to "false".
+ </para>
+ <figure>
+ <title>Move control buttons without labels</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/pickList2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Alternative to the given attributes are the following facets: <emphasis>
+ <property>"copyAllControl"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeAllControl"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"copyControl"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeControl"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"copyAllControlDisabled"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeAllControlDisabled"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"copyControlDisabled"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"removeControlDisabled"</property>
+ </emphasis>,
+ <emphasis>
+ <property>"caption"</property>
+ </emphasis>.
+ </para>
+ <para>
+ It is an example of usage of the facets and it is identical to the previous example.
+ </para>
+ <programlisting role="XML">...
+<rich:pickList value="#{pickBean.listValues}">
+ <f:facet name="copyAllControl">
+ <h:commandButton value="#{pickBean.copyAllLabel}" />
+ </f:facet>
+ <f:facet name="copyControl">
+ <h:commandButton value="#{pickBean.copyLabel}" />
+ </f:facet>
+ <f:facet name="removeControl">
+ <h:commandButton value="#{pickBean.removeLabel}" />
+ </f:facet>
+ <f:facet name="removeAllControl">
+ <h:commandButton value="#{pickBean.removeAllLabel}" />
+ </f:facet>
+ <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
+ <f:selectItem itemValue="Audi" itemLabel="Audi"/>
+ <f:selectItems value="#{pickBean.sourceList}"/>
+</rich:pickList>
+...</programlisting>
+ <para>
+ With the help of <emphasis>
+ <property>"moveControlsVerticalAlign"</property>
+ </emphasis> attribute
+ you can align <property>move controls</property> vertically.
+ </para>
+ <para>The possible value for <emphasis>
+ <property>"moveControlsVerticalAlign"</property>
+ </emphasis> are "top", "bottom" and "center" (default value).</para>
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis>
+ component provides resizing of lists by using such attributes as:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "listsHeight"</property>
+ </emphasis> defines height of the lists.
+
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "sourceListWidth"</property>
+ </emphasis> defines width of a source list.
+
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property> "targetListWidth"</property>
+ </emphasis> defines width of a target list.
+
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:pickList listsHeight="#{pickBean.listsHeight}" sourceListWidth="#{pickBean.sourceListWidth}" targetListWidth="#{pickBean.targetListWidth}" value="#{pickBean.listValues}">
+ <f:selectItem itemValue="Bentley" itemLabel="Bentley"/>
+ <f:selectItem itemValue="Audi" itemLabel="Audi"/>
+ <f:selectItems value="#{pickBean.sourceList}"/>
+</rich:pickList>
+...</programlisting>
+
+ <para>The <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis> component allows to use internationalization method
+ to redefine and localize the labels. You could use application resource bundle and define
+ <code>RICH_PICK_LIST_COPY_ALL_LABEL</code>,
+ <code>RICH_PICK_LIST_COPY_LABEL</code>,
+ <code>RICH_PICK_LIST_REMOVE_ALL_LABEL</code>,
+ <code>RICH_PICK_LIST_REMOVE_LABEL</code> there.
+ </para>
+
+ <table>
+ <title>Keyboard usage for elements selection</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Keys and combinations </entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>CTRL+click</entry>
+ <entry>Inverts selection for an item</entry>
+ </row>
+ <row>
+ <entry>SHIFT+click</entry>
+ <entry>Selects all rows from active one to a clicked row if they differ,
+ else select the active row. All other selections are cleared</entry>
+ </row>
+ <row>
+ <entry>CTRL+A</entry>
+ <entry>Selects all elements inside the list if some active element is
+ already present in a list</entry>
+ </row>
+ <row>
+ <entry>Up, Down arrows</entry>
+ <entry>Changes the active and selected elements to the next or previous in a list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/pickList.html">Table of
+ <rich:pickList>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.PickList</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlPickList</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.PickList</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.PickListRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.PickListTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>copyAllControl</entry>
+ <entry>Redefines the "copyAll" label with the control set. Related attribute is "copyAllControlLabel"</entry>
+ </row>
+ <row>
+ <entry>removeAllControl</entry>
+ <entry>Redefines the "removeAll" label with the control set. Related attribute is "removeAllControlLabel"</entry>
+ </row>
+ <row>
+ <entry>copyControl</entry>
+ <entry>Redefines the "copy" label with the control set. Related attribute is "copyControlLabel"</entry>
+ </row>
+ <row>
+ <entry>removeControl</entry>
+ <entry>Redefines the "remove" label with the control set. Related attribute is "removeControlLabel"</entry>
+ </row>
+ <row>
+ <entry>copyAllControlDisabled</entry>
+ <entry>Redefines the disabled "copyAll" label with the control set.</entry>
+ </row>
+ <row>
+ <entry>removeAllControlDisabled</entry>
+ <entry>Redefines the disabled "removeAll" label with the control set.</entry>
+ </row>
+ <row>
+ <entry>copyControlDisabled</entry>
+ <entry>Redefines the disabled "copy" label with the control set.</entry>
+ </row>
+ <row>
+ <entry>removeControlDisabled</entry>
+ <entry>Redefines the disabled "remove" label with the control set.</entry>
+ </row>
+ <row>
+ <entry>caption</entry>
+ <entry>Defines the "caption" label with the control set.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="pickListC">
+ <title>Classes names that define a list representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-list-picklist</entry>
+ <entry>Defines styles for a wrapper <table> element of a pickList</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a source and target items representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-picklist-source-items</entry>
+ <entry>Defines styles for a wrapper <div> element of a source list</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-target-items</entry>
+ <entry>Defines styles for a wrapper <div> element of a target list</entry>
+ </row>
+
+ <row>
+ <entry>rich-picklist-body</entry>
+ <entry>Defines styles for a wrapper <table> element of a list body (source and target)</entry>
+ </row>
+
+ <row>
+ <entry>rich-picklist-list</entry>
+ <entry>Defines styles for a (source and target) list</entry>
+ </row>
+
+ <row>
+ <entry>rich-picklist-list-content</entry>
+ <entry>Defines styles for a (source and target) list content</entry>
+ </row>
+
+ <row>
+ <entry>rich-picklist-internal-tab</entry>
+ <entry>Defines styles for a wrapper <table> element of list items (source and target)</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define rows representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-picklist-source-row</entry>
+ <entry>Defines styles for a source list row</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-source-row-selected</entry>
+ <entry>Defines styles for a selected row in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-target-row-selected</entry>
+ <entry>Defines styles for a selected row in a target list</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a source cell representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-picklist-source-cell</entry>
+ <entry>Defines styles for a cell in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-source-cell-selected</entry>
+ <entry>Defines styles for a selected cell in a source list</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-source-cell-active</entry>
+ <entry>Defines styles for an active cell in a source list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a target cell representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-picklist-target-cell</entry>
+ <entry>Defines styles for a target list cell</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-target-cell-selected</entry>
+ <entry>Defines styles for a selected cell in a target list</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-target-cell-active</entry>
+ <entry>Defines styles for an active cell in a target list</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a control representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-picklist-controls</entry>
+ <entry>Defines styles for wrapper <div> element of a pickList controls</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-disabled</entry>
+ <entry>Defines styles for a control in a disabled state</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-copyall</entry>
+ <entry>Defines styles for a "copyAll" control</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-copy</entry>
+ <entry>Defines styles for a "Copy" control</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-remove</entry>
+ <entry>Defines styles for a "Remove" control</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-removeall</entry>
+ <entry>Defines styles for a "removeAll" control</entry>
+ </row>
+ <row>
+ <entry>rich-picklist-control-img</entry>
+ <entry>Defines styles for a control image</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a button representation</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-list-picklist-button</entry>
+ <entry>Defines styles for a button</entry>
+ </row>
+ <row>
+ <entry>rich-list-picklist-button-disabled</entry>
+ <entry>Defines styles for a disabled button</entry>
+ </row>
+ <row>
+ <entry>rich-list-picklist-button-press</entry>
+ <entry>Defines styles for a pressed button</entry>
+ </row>
+ <row>
+ <entry>rich-list-picklist-button-light</entry>
+ <entry>Defines styles for a button highlight</entry>
+ </row>
+ <row>
+ <entry>rich-list-picklist-button-selection</entry>
+ <entry>Defines styles for a button selection</entry>
+ </row>
+ <row>
+ <entry>rich-list-picklist-button-content</entry>
+ <entry>Defines styles for a button content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf?c=pickList">On RichFaces LiveDemo page </ulink> you can see an example of <emphasis role="bold">
+ <property><rich:pickList></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_progressBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_progressBar.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_progressBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,565 @@
+<section role="NotInToc" id="rich_progressBar">
+ <title>
+ <
+ rich:progressBar
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.2.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis> component is designed for displaying a progress bar which shows the current status of the process. </para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/progressBar_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+
+
+ <listitem>
+ <para>Ajax or Client modes</para>
+ </listitem>
+ <listitem>
+ <para>Option to control rerendering frequency</para>
+ </listitem>
+ <listitem>
+ <para>Customizable status information label </para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ As it was mentioned above, the <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis>
+ component displays the status of the ongoing process.
+ </para>
+
+ <para>The <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis> component can run in two modes: <code>Ajax</code> (default) and <code>Client</code>.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code> - In this mode the component works the same way as <emphasis role="bold">
+ <property><a4j:poll/></property>
+ </emphasis> which gets the current progress value from the sever, repeating after a set time interval. </para>
+
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code> - The current progress value in <property>Client</property> mode is set using JavaScript API </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ In order to define the mode you need to use <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute.
+ </para>
+
+ <para>
+ One of the key attributes of the component is <emphasis>
+ <property>"interval"</property>
+ </emphasis> which defines the frequency of status polling and rerenders the component when the value is updated.
+ </para>
+ <para>
+ Polling is active while the <emphasis>
+ <property>"enabled"</property>
+ </emphasis> attribute is "true".</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue}" id="progrs" interval="900" enabled="true"/>
+... </programlisting>
+ <para>
+ With the help of <emphasis>
+ <property>"timeout"</property>
+ </emphasis> attribute you can define the waiting time on a particular request.
+ If a response is not received during this time the request is aborted.
+ </para>
+
+
+ <para>
+ Status of the process is calculated basing on values of the following attributes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> is a value binding to the current progress value
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"minValue"</property>
+ </emphasis> (default value is "0") sets minimal progress value
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"maxValue"</property>
+ </emphasis> (default value is "100") sets maximum progress value
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue}" minValue="50" maxValue="400"/>
+... </programlisting>
+ <para>This is the result</para>
+ <figure>
+ <title>Progress bar</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/progressBar2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!--para>
+ The <emphasis><property> "label"</property></emphasis> attribute is responsible for displaying informational
+ data, information on the progress bar, if it's not displayed using children components.
+ If this attribute is not set and the children components are not used either, no textual information
+ regarding ongoing process will be indicated.
+ In order to indicate the current status you need to pass the value to this attribute. Please see an example.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[...
+<rich:progressBar value="#{bean.incValue}" id="progrs" label="{value}%"/>
+...]]></programlisting>
+
+ <para>
+ Displaying information on a progress bar can be also performed using
+
+ <emphasis role="bold"><property><h:outputText></property></emphasis> within
+ <emphasis role="bold"><property><rich:progressBar></property> </emphasis> tags passing the progress value to the value of the JSF tag.
+</para>
+<para>
+<emphasis role="bold">Example:</emphasis>
+</para>
+
+<programlisting role="XML"><![CDATA[...
+<rich:progressBar value="#{bean.incValue1}">
+<h:outputText value="#{bean.incValue1}"/>
+</rich:progressBar>
+...]]> </programlisting--> <para>
+ There are two ways to display information on a progress bar:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>Using <emphasis>
+ <property> "label"</property>
+ </emphasis> attribute</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue}" id="progrs" label="#{bean.incValue}"/>
+...</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Using any child(nested) components. One of the components that can be used is <emphasis role="bold">
+ <property><h:outputText /></property>
+ </emphasis>
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue}">
+ <h:outputText value="#{bean.incValue} %"/>
+</rich:progressBar>
+... </programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+ <!--Macrosubs-->
+
+ <para>
+ The <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis>
+ component provides 3 predefined macrosubstitution parameters:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>{value}</code> contains the current value</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{minValue}</code> contains min value</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>{maxValue}</code> contains max value</para>
+ </listitem>
+ </itemizedlist>
+
+ You can use them as follows:
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue1}" minValue="400" maxValue="900">
+ <h:outputText value="Min value is {minValue}, current value is {value}, max value is {maxValue}"/>
+</rich:progressBar>
+... </programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title>Macrosubstitution</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/progressBar3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!--END of Macrosubs-->
+
+ <!-- Parameters-->
+ <!--para>
+ The <emphasis><property>"parameters"</property></emphasis>
+ is also a special attribute that can be used for substitutional purposes.
+ All you need is to define a value of your own parameter
+ (e.g parameters="param:'#{bean.incValue1}'")
+ and you can use it to pass the data.
+ </para--> <para>
+ The <emphasis>
+ <property>"parameters"</property>
+ </emphasis>
+ is also a special attribute which defines parameters that can be to get additional data from server (e.g. additional info about process status).
+ All you need is to define the value of your own parameter
+ (e.g <code>parameters="param:'#{bean.incValue1}'"</code>)
+ and you can use it to pass the data.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue}" parameters="param:'#{bean.dwnlSpeed}'">
+ <h:outputText value="download speed {param} KB/s"/>
+</rich:progressBar>
+... </programlisting>
+ <para>This is the result:</para>
+ <figure>
+ <title>Usage of parameters</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/progressBar4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+
+ <!-- END Parameters-->
+
+ <para>
+ The <emphasis>
+ <property>"progressVar"</property>
+ </emphasis> attribute (deprecated) defines request scoped variable that could be used
+ for substitution purpose. This variable contains the data taken from <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute.
+ Please, study carefully the following example.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue1}" enabled="#{bean.enabled1}" id="progrs1" progressVar="progress">
+ <h:outputText value="{progress}%"/>
+</rich:progressBar>
+... </programlisting>
+ <para>In the shown example <emphasis>
+ <property> "progressVar"</property>
+ </emphasis> attribute
+ defines a variable "progress" with the value taken from <emphasis>
+ <property>"value"</property>
+ </emphasis>
+ attribute of the <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis> component.
+ The "progress" variable performs substitution passing the current progress value to the
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute of the
+ <emphasis role="bold">
+ <property><h:outputText></property>
+ </emphasis>.
+ This is how the current value of a progress appears on
+ the label of <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis>.</para>
+
+ <para>As the
+ <emphasis>
+ <property> "progressVar"</property>
+ </emphasis> attribute is deprecated, it's better to use
+ the predefined macrosubstitution parameter <code>{value}</code> instead. See how you can rewrite the above example with the help of <code>{value}</code>.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue1}" enabled="#{bean.enabled1}" id="progrs1">
+ <h:outputText value="{value}%"/>
+</rich:progressBar>
+... </programlisting>
+
+ <para>
+ The component can also employ <emphasis>
+ <property> "initial"</property>
+ </emphasis> and <emphasis>
+ <property> "complete"</property>
+ </emphasis> facets to display the states of the process:
+ <emphasis>
+ <property>"initial"</property>
+ </emphasis> facet is displayed when the progress value is less or equal to <emphasis>
+ <property> "minValue"</property>
+ </emphasis>, and the <emphasis>
+ <property>"complete"</property>
+ </emphasis> facet is shown when the value is greater or equal to <emphasis>
+ <property> "maxValue"</property>
+ </emphasis>. Please see an example below.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:progressBar value="#{bean.incValue1}">
+ <f:facet name="initial">
+ <h:outputText value="Process not started"/>
+ </f:facet>
+ <f:facet name="complete">
+ <h:outputText value="Process completed"/>
+ </f:facet>
+</rich:progressBar>
+ ... </programlisting>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
+ </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/progressBar.html">Table of
+ <rich:progressBar>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ProgressBar</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlProgressBar</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ProgressBar</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.ProgressBarRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ProgressBarTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Function</entry>
+ <entry>Description</entry>
+
+ </row>
+ </thead>
+ <tbody>
+ <!--Sorting API -->
+ <row>
+ <entry>enable()</entry>
+ <entry>Begins polling for Ajax mode </entry>
+
+ </row>
+ <row>
+ <entry>disable()</entry>
+ <entry>Stops polling for Ajax mode</entry>
+
+ </row>
+
+ <row>
+ <entry>setValue(value)</entry>
+ <entry>Updates the progress of the process</entry>
+
+ </row>
+ <row>
+ <entry>setLabel(label)</entry>
+ <entry>Update the label for the process</entry>
+
+ </row>
+
+
+
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>initial</entry>
+ <entry>Defines the information content about the state of the process if the progress value is less or equal to "minValue"</entry>
+ </row>
+ <row>
+ <entry>complete</entry>
+ <entry>Defines the information content about the state of the process if the value is greater or equal to "maxValue"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="pBclasses">
+ <title>Classes names for the progressBar without a label</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-progress-bar-shell</entry>
+ <entry>Defines styles for a wrapper <div> element of a progressBar</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-uploaded</entry>
+ <entry>Defines styles for the completed progress area</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-height</entry>
+ <entry>Defines height for a progressBar</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-width</entry>
+ <entry>Defines width for a progressBar</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names for the progressBar with a label</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-progress-bar-shell-dig</entry>
+ <entry>Defines styles for a wrapper <div> element of a progressBar</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-uploaded-dig</entry>
+ <entry>Defines styles for the label</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-remained</entry>
+ <entry>Defines styles for the remained progress area</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-completed</entry>
+ <entry>Defines styles for the completed progress area</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-height-dig</entry>
+ <entry>Defines height for a progressBar</entry>
+ </row>
+ <row>
+ <entry>rich-progress-bar-width</entry>
+ <entry>Defines width for a progressBar</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <note>
+ <title>Note:</title>
+ <para>It's necessary to define width of the component in pixels only.</para>
+ </note>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/progressBar.jsf?c=pro...">On the component Live Demo page</ulink>
+ you can see the example of <emphasis role="bold">
+ <property><rich:progressBar></property>
+ </emphasis> usage and sources for the given example. </para>
+
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_recursiveTreeNodesAdaptor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_recursiveTreeNodesAdaptor.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_recursiveTreeNodesAdaptor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,163 @@
+<section role="NotInToc" id="rich_recursiveTreeNodesAdaptor">
+ <title>
+ <
+ rich:recursiveTreeNodesAdaptor
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis> is
+ an extension of a <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis> component
+ that provides the possibility to define data models and process nodes recursively. </para>
+ <figure>
+ <title>Expanded tree with <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/recursiveTreeNodesAdaptor_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define combined data models</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to define nodes for processing via attributes</para>
+ </listitem>
+ <listitem>
+ <para>Allows to process nodes recursively</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis> component has a
+ <emphasis>
+ <property>"roots"</property>
+ </emphasis> attribute that defines collection to use at the top of recursion.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"nodes"</property>
+ </emphasis> attribute defines collection to use on another recursion levels.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute is used to access to the current collection element.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis> component can be nested without any limitations.
+ See the following example.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
+ <rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
+ <rich:treeNode>
+ <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
+ </rich:treeNode>
+ <rich:recursiveTreeNodesAdaptor id="dir" var="dir" root="#{project.dirs}" nodes="#{dir.directories}">
+ <rich:treeNode>
+ <h:commandLink action="#{dir.click}" value="Directory: #{dir.name}" />
+ </rich:treeNode>
+ <rich:treeNodesAdaptor id="file" var="file" nodes="#{dir.files}">
+ <rich:treeNode>
+ <h:commandLink action="#{file.click}" value="File: #{file.name}" />
+ </rich:treeNode>
+ </rich:treeNodesAdaptor>
+ <rich:treeNodesAdaptor id="file1" var="file" nodes="#{dir.files}">
+ <rich:treeNode>
+ <h:commandLink action="#{file.click}" value="File1: #{file.name}" />
+ </rich:treeNode>
+ </rich:treeNodesAdaptor>
+ <rich:recursiveTreeNodesAdaptor id="archiveEntry" var="archiveEntry"
+ roots="#{dir.files}" nodes="#{archiveEntry.archiveEntries}"
+ includedRoot="#{archiveEntry.class.simpleName == 'ArchiveFile'}"
+ includedNode="#{archiveEntry.class.simpleName == 'ArchiveEntry'}">
+ <rich:treeNode id="archiveEntryNode">
+ <h:commandLink action="#{archiveEntry.click}" value="Archive entry: #{archiveEntry.name}" />
+ </rich:treeNode>
+ </rich:recursiveTreeNodesAdaptor>
+ </rich:recursiveTreeNodesAdaptor>
+ </rich:treeNodesAdaptor>
+</rich:tree>
+...
+</programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/recursiveTreeNodesAdaptor.html">Table of
+ <rich:recursiveTreeNodesAdaptor>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.RecursiveTreeNodesAdaptor</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlRecursiveTreeNodesAdaptor</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.RecursiveTreeNodesAdaptor</entry>
+ </row>
+ <!--
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.EffectRenderer</entry>
+ </row>
+ -->
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.RecursiveTreeNodesAdaptorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?...">On the component Live Demo page</ulink>
+ you can see the example of <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis> usage. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_scrollableDataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_scrollableDataTable.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_scrollableDataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,496 @@
+<section role="NotInToc" id="rich_scrollableDataTable">
+ <title>
+ <
+ rich:scrollableDataTable
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component is used for the table-like component creation.
+ The component just adds the set of additional features described below in comparison with the standard table.
+ </para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/scrollableDataTable_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Variable content of the table cells</para>
+ </listitem>
+ <listitem>
+ <para>Dynamically fetching the rows from the server when the table is scrolled up and down</para>
+ </listitem>
+ <listitem>
+ <para>Resizing columns by mouse dragging the column bar</para>
+ </listitem>
+ <listitem>
+ <para>Sorting column by clicking the header</para>
+ </listitem>
+ <listitem>
+ <para>Fixed one or more left columns when table is scrolled horizontally</para>
+ </listitem>
+ <listitem>
+ <para>One and multi-selection rows mode</para>
+ </listitem>
+ <listitem>
+ <para>Built-it drag-n-drop support</para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="sort">Sorting column values</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The component represents on a page as a scrollable table with some fixed
+ (non-scrollable) rows ( with header and footer) and columns. Like
+ other tables <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> also has optional footer and header that could be
+ implemented using the corresponding facets. Columns of the table are
+ optionally resizable. Resizing is available using "drag and drop" of
+ the column vertical borders. <!--There is possibility to expand or
+ collapse the columns through JS API on the client side. -->You can define
+ the number of the fixed columns from the left side using attribute <emphasis>
+ <property>"frozenColCount"</property>
+ </emphasis> that is not scrolled via horizontal scroll. </para>
+ <para> There is possibility to increase component performance using attribute <emphasis>
+ <property>"hideWhenScrolling"</property>
+ </emphasis>. If attribute value is "true" data is
+ hidden during scrolling. </para>
+
+ <para> It's possible to select the whole row with onclick on the row or
+ some set of rows. Selection is optional and availability of such
+ feature is defined on the component. There are two ways to select a
+ few rows: </para>
+ <itemizedlist>
+ <listitem>
+ <para>Just clicking the columns one by one.</para>
+ </listitem>
+ <listitem>
+ <para>Clicking some row with the SHIFT button
+ hold. In this case all the rows starting
+ from last selected up to clicked should
+ be selected.</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <!--para> The columns provides the possibility of expanding/collapsing on the
+ client side through the next JS API:</para> <itemizedlist>
+ <listitem>
+ <para><code>collapse(columnId)</code> - Performs
+ the collapse action for the column with
+ the corresponding id</para>
+ </listitem>
+ </itemizedlist-->
+ <para> It's possible to sort the table content after
+ clicks on the header. The feature is optional (to disable it, use attribute sortable on rich:column ). Every column should be
+ pointed to the comparator method that is used for sorting the table.
+ In case the <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> is already sorted by some column and the header of this
+ column has been clicked again - the sorting is reversed. </para>
+ <para>After sorting selection that was made before is reset</para>
+
+ <para>
+ <emphasis role="bold">The typical variant of using:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:scrollableDataTable value="#{modelBuilder.model}" var="issues"
+ frozenColCount="1"
+ first="0"
+ rows="40"
+ width="300px"
+ height="396px">
+ <rich:column width="100px">
+ <f:facet name="header" >
+ <h:outputText value="State"/>
+ </f:facet>
+ <h:outputText value="#{issues.cell1}"/>
+ <f:facet name="footer">
+ <h:outputText value="State"/>
+ </f:facet>
+ </rich:column>
+ <!--Set of columns and header/footer facets-->
+</rich:scrollableDataTable>
+...
+</programlisting>
+
+ <para>The <emphasis>
+ <property>"selection"</property>
+ </emphasis> attribute allows to get the row data when using
+ <property>one and multi-selection rows mode</property>.</para>
+ <para>This attribute is a reference to object to the instance of
+
+ <ulink url="&apidoc_framework;org/richfaces/model/selection/Selection.html">
+ <code>org.richfaces.model.selection.Selection</code>
+ </ulink>.
+ interface
+
+
+ interface, containing current collection of objects selected by you.</para>
+ <para>In the following example when you submit the form, current collection of
+ the selected objects is placed in the object's property. Then
+ on complete action the <emphasis role="bold">
+ <property><rich:modalPanel></property>
+ </emphasis> with selected data is shown.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:form>
+ <rich:spacer height="30" />
+ <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="200px"
+ width="300px" id="carList" rows="40" columnClasses="col"
+ value="#{dataTableScrollerBean.allCars}" var="category" sortMode="single"
+ selection="#{dataTableScrollerBean.selection}">
+ <rich:column id="make">
+ <f:facet name="header"><h:outputText styleClass="headerText" value="Make" /></f:facet>
+ <h:outputText value="#{category.make}" />
+ </rich:column>
+ <rich:column id="model">
+ <f:facet name="header"><h:outputText styleClass="headerText" value="Model" /></f:facet>
+ <h:outputText value="#{category.model}" />
+ </rich:column>
+ <rich:column id="price">
+ <f:facet name="header"><h:outputText styleClass="headerText" value="Price" /></f:facet>
+ <h:outputText value="#{category.price}" />
+ </rich:column>
+ </rich:scrollableDataTable>
+ <rich:spacer height="20px"/>
+ <a4j:commandButton value="Show Current Selection" reRender="table"
+ action="#{dataTableScrollerBean.takeSelection}"
+ oncomplete="javascript:Richfaces.showModalPanel('panel');"/>
+</h:form>
+<rich:modalPanel id="panel" autosized="true">
+ <f:facet name="header">
+ <h:outputText value="Selected Rows"/>
+ </f:facet>
+ <f:facet name="controls">
+ <span style="cursor:pointer" onclick="javascript:Richfaces.hideModalPanel('panel')">X</span>
+ </f:facet>
+ <rich:dataTable value="#{dataTableScrollerBean.selectedCars}" var="sel" id="table">
+ <rich:column>
+ <f:facet name="header"><h:outputText value="Make" /></f:facet>
+ <h:outputText value="#{sel.make}" />
+ </rich:column>
+ <rich:column id="model">
+ <f:facet name="header"><h:outputText value="Model" /></f:facet>
+ <h:outputText value="#{sel.model}" />
+ </rich:column>
+ <rich:column id="price">
+ <f:facet name="header"><h:outputText value="Price" /></f:facet>
+ <h:outputText value="#{sel.price}" />
+ </rich:column>
+ </rich:dataTable>
+</rich:modalPanel>
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>The <emphasis>
+ <property>"selection"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/scrollableDataTable2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ <ulink url="http://wiki.jboss.org/wiki/RichFacesCookbook/ScrollableDataTableSelection...">On RichFaces LiveDemo page </ulink> you can find fuller example of use of this
+ attribute with example bean.</para>
+ <para> The <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component has the following extra attributes for event
+ processing on the client:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onselectionchange"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <!-- <listitem>
+ <para>
+ <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis>
+ </para>
+ </listitem> -->
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onRowClick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onRowDblClick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onRowMouseUp"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onRowMouseDown"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>From version 3.3.1 it becomes possible to switch selection mode with selectionMode attribute</para>
+
+ <para>Information about sorting and filtering you can find in RichFaces Developer guide section about<link linkend="sort">sorting</link>.</para>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the
+ <link linkend="process"> "Decide what to process" </link> guide section. </para>
+ <note>
+ <title>Note:</title>
+ <para>
+ If you want to use specific features such as pagination on database level you should pass to the
+ <emphasis>
+ <property>"value"</property>
+ </emphasis> of the
+ <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> component
+ an object which class extends <code>org.richfaces.model.ScrollableTableDataModel</code>.
+ </para>
+ </note>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/scrollableDataTable.html">Table of
+ <rich:scrollableDataTable>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.ScrollableDataTable</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlScrollableDataTable</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.ScrollableDataTable</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.ScrollableDataTableRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ScrollableDataTableTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="scrdattableC">
+ <title>Classes names that define a component appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-sdt</entry>
+
+ <entry>Defines styles for a component
+ appearance</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define footer and header elements</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>rich-sdt-header-cell</entry>
+
+ <entry>Defines styles for header
+ cells</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-header-row</entry>
+
+ <entry>Defines styles for a header
+ raw</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-column-cell</entry>
+
+ <entry>Defines styles for column
+ cells</entry>
+ </row>
+ <row>
+ <entry>rich-sdt-footer-cell</entry>
+
+ <entry>Defines styles for footer
+ cells</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-footer-row</entry>
+
+ <entry>Defines styles for a footer
+ raw</entry>
+ </row>
+ <row>
+ <entry>rich-sdt-hsep</entry>
+
+ <entry>Defines styles for header
+ separators</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define different states</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>rich-sdt-row-active</entry>
+
+ <entry>Defines styles for an active
+ row</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-row-selected</entry>
+
+ <entry>Defines styles for a selected
+ row</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-column-sort-up</entry>
+
+ <entry>Defines styles for ascending
+ sorted column</entry>
+ </row>
+
+ <row>
+ <entry>rich-sdt-column-sort-down</entry>
+
+ <entry>Defines styles for descending
+ sorted column</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/scrollableDataTable.j...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:scrollableDataTable></property>
+ </emphasis> usage. </para>
+ <para>Cookbook article <ulink url="http://www.jboss.org/community/docs/DOC-11857">
+ Scrollable dataTable Selection Usage
+ </ulink> provides a simple example of how you can use the "selection" attribute in order to get row selection in rich:scrollableDataTable. </para>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_separator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_separator.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_separator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,175 @@
+<section role="NotInToc" id="rich_separator">
+ <title>
+ <
+ rich:separator
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A horizontal line to use as a <property>separator</property> in a layout. The line type
+ can be customized with the <code>"lineType"</code> parameter.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:separator></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/separator_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Leveraging layout elements creation</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:separator></property>
+ </emphasis> is a simple layout component,
+ which represents a <property>separator</property> stylized as a skin.
+ Thus, the main attributes that define its style are <emphasis>
+ <property>"style"</property>
+ </emphasis> and <emphasis>
+ <property>"styleClass".</property>
+ </emphasis> In addition there are <emphasis>
+ <property>"width"</property>
+ </emphasis> and <emphasis>
+ <property>"height"</property>
+ </emphasis> attributes that should be specified in pixels.
+ On the HTML page the component is transposed into HTML <emphasis role="bold">
+ <property><div></property>
+ </emphasis> tag.</para>
+
+ <para>The line type can be customized with the <code>"lineType"</code> parameter. For example, different line types are shown after rendering with the
+ following initial settings <code>lineType="double"</code>and <code>lineType="solid"</code>.
+ </para>
+ <figure>
+ <title>Different line types of <emphasis role="bold">
+ <property><rich:separator></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/separator2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Except style attributes, there are also event definition attributes:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/separator.html">Table of
+ <rich:separator>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.separator</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlSeparator</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.separator</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.SeparatorRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.SeparatorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="sepC">
+ <title>Classes names that define a component appearance</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-separator</entry>
+
+ <entry>Defines styles for a component appearance</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/separator.jsf?c=separ...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:separator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_simpleTogglePanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_simpleTogglePanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_simpleTogglePanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,299 @@
+<section role="NotInToc" id="rich_simpleTogglePanel">
+ <title>
+ <
+ rich:simpleTogglePanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A collapsible panel, which content shows/hides after activating a header control.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:simpleTogglePanel></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/simpleTogglePanel_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Support for any content inside</para>
+ </listitem>
+ <listitem>
+ <para>Collapsing expanding content</para>
+ </listitem>
+ <listitem>
+ <para>Three modes of collapsing/expanding</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The component is a simplified version of <property>toggle panel</property> that initially
+ has a defined layout as a panel with a header playing a role of a mode switching control. On a
+ component header element, it's possible to define a label using an attribute with the
+ same name.</para>
+
+ <para>Switching mode could be defined with the <emphasis>
+ <property>"switchType"</property>
+ </emphasis> attribute with three possible parameters.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (DEFAULT)</para>
+ <para>The common submission is performed around
+ <property>simpleTogglePanel</property> and a page is completely rendered on a called
+ panel. Only one at a time panel is uploaded onto the client side.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code> Ajax</code>
+ </para>
+ <para>AJAX form submission is performed around the panel, content of the called
+ panel is uploaded on Ajax request and additionally specified elements in the <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute are rendered. Only one at a time panel is uploaded on the client
+ side.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ <para> All panels are uploaded on the client side. Switching from the active
+ to the hidden panel is performed with client JavaScript.</para>
+ </listitem>
+ </itemizedlist>
+ <para>The <emphasis role="bold">
+ <property><rich:simpleTogglePanel></property>
+ </emphasis>component also has an <emphasis>
+ <property>"opened"</property>
+ </emphasis> attribute responsible for keeping a panel state. It gives an
+ opportunity to manage state of the component from a model.
+ If the value of this attribute is"true" the component is expanded.
+ </para>
+
+ <!--SIMPLE EXAMPLE NEEDED -->
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:simpleTogglePanel></property>
+ </emphasis> states</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/simpleTogglePanel2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ <para>
+ With help of
+ <emphasis>
+ <property>
+ "openMarker"
+ </property>
+ </emphasis>
+ and
+ <emphasis>
+ <property>
+ "closeMarker"
+ </property>
+ </emphasis> facets you can set toggle icon for
+ <property>
+ simpleTogglePanel
+ </property>.
+ </para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
+ </para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/simpleTogglePanel.html">Table of
+ <rich:simpleTogglePanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.SimpleTogglePanel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlSimpleTogglePanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.SimpleTogglePanel</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.SimpleTogglePanelRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.SimpleTogglePanelTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>openMarker</entry>
+ <entry>Redefines the icon for expanding the panel</entry>
+ </row>
+ <row>
+ <entry>closeMarker</entry>
+ <entry>Redefines the icon for collapsing the panel</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="simpTogPanC">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-stglpanel</entry>
+ <entry>Defines styles for a wrapper <div> element of a component</entry>
+ </row>
+ <row>
+ <entry>rich-stglpanel-header</entry>
+ <entry>Defines styles for header element of a component</entry>
+ </row>
+ <row>
+ <entry>rich-stglpnl-marker</entry>
+ <entry>Defines styles for a wrapper <div> element of a marker</entry>
+ </row>
+
+ <row>
+ <entry>rich-stglpanel-body</entry>
+ <entry>Defines styles for a component content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Style component classes</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Class description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>styleClass</entry>
+ <entry>The class defines panel common style. It's used in the outside <emphasis role="bold">
+ <property><div></property>
+ </emphasis>element</entry>
+ </row>
+ <row>
+ <entry>bodyClass</entry>
+ <entry>applicable to panels body elements</entry>
+ </row>
+ <row>
+ <entry>headerClass</entry>
+ <entry>applicable to header elements</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/simpleTogglePanel.jsf...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:simpleTogglePanel></property>
+ </emphasis> usage and sources for the given example.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_spacer.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_spacer.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_spacer.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,134 @@
+<section role="NotInToc" id="rich_spacer">
+ <title>
+ <
+ rich:spacer
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para> A <property>spacer</property> that is used in layout and rendered as a transparent image.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:spacer></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/spacer_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Easily used as a transparent layout <property>spacer</property>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Horizontal or vertical spacing is managed by an attribute</para>
+ </listitem>
+ <listitem>
+ <para>Easily customizable sizes parameters</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ <emphasis role="bold">
+ <property><rich:spacer></property>
+ </emphasis> is a simple layout component which represents a transparent
+ <property>spacer</property>. Thus, the main attributes that define its style are <emphasis>
+ <property>"style"</property>
+ </emphasis> and <emphasis>
+ <property>"styleClass"</property>.</emphasis>
+ </para>
+ <para>In addition, the attributes are responsible for the component size: <emphasis>
+ <property>"width"</property>
+ </emphasis> and <emphasis>
+ <property>"height"</property>.</emphasis>
+ </para>
+ <para>Moreover, to add e.g. some JavaScript effects, events defined on it are used.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout "</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/spacer.html">Table of
+ <rich:spacer>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.spacer</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlSpacer</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.spacer</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.SpacerRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.SpacerTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/spacer.jsf?c=spacer">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:spacer></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_subTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_subTable.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_subTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,276 @@
+<section role="NotInToc" id="rich_subTable">
+ <title>
+ <
+ rich:subTable
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component is used for inserting <property>subtables</property> into tables with opportunity to choose data from a model
+ and built-in Ajax updates support.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:subTable></property>
+ </emphasis> element</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/subTable_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Completely skinned table rows and child elements</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to insert complex columnGroup subcomponents</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to combine rows and columns inside</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to update a limited set of rows with Ajax</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>The <emphasis role="bold">
+ <property><rich:subTable></property>
+ </emphasis> component is similar to the <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis> one, except Ajax support and skinnability. One more difference is that the
+ component doesn't add the wrapping <emphasis role="bold">
+ <property><table></property>
+ </emphasis> and <emphasis role="bold">
+ <property><tbody></property>
+ </emphasis> tags. Ajax support is possible, because the component was created basing on the
+ <emphasis role="bold">
+ <property><a4j:repeat></property>
+ </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
+ <property>"ajaxKeys"</property>
+ </emphasis> attribute allows to define row keys that is updated after an Ajax request.</para>
+
+ <para>Here is an example:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
+ <rich:column>
+ ...
+ </rich:column>
+ <rich:subTable value="#{capitals.details}" var="detail" ajaxKeys="#{bean.ajaxSet}" binding="#{bean.subtable}" id="subtable">
+ <rich:column>
+ ...
+ </rich:column>
+ </rich:subTable>
+</rich:dataTable>
+...
+<a4j:commandButton action="#{tableBean.action}" reRender="subtable"/>
+...
+</programlisting>
+ <para> In the example <emphasis>
+ <property>"reRender"</property>
+ </emphasis> attribute contains value of <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute for <emphasis role="bold">
+ <property><rich:subTable></property>
+ </emphasis> component. As a result the component is updated after an Ajax request.</para>
+
+ <para>The component allows to use <emphasis>
+ <property>"header"</property>
+ </emphasis> and <emphasis>
+ <property>"footer"</property>
+ </emphasis> facets for output. See an example for <emphasis role="bold">
+ <property><rich:dataTable></property>
+ </emphasis>
+ <link linkend="table_ex">component</link>.</para>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/subTable.html">Table of
+ <rich:subTable>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.SubTable</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlSubTable</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.SubTable</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.SubTableRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.SubTableTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_sT">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-subtable</entry>
+ <entry>Defines styles for all subtable</entry>
+ </row>
+ <row>
+ <entry>rich-subtable-caption</entry>
+ <entry>Defines styles for a "caption" facet element</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define header and footer elements</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-subtable-header</entry>
+ <entry>Defines styles for a subtable header row</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-header-continue</entry>
+ <entry>Defines styles for all subtable header lines after the first</entry>
+ </row>
+ <row>
+ <entry>rich-subtable-subheader</entry>
+ <entry>Defines styles for a column header of subtable</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-subfooter</entry>
+ <entry>Defines styles for a column footer of subtable</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-footer</entry>
+ <entry>Defines styles for a subtable footer row</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-footer-continue</entry>
+ <entry>Defines styles for all subtable footer lines after the first</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define rows and cells</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-subtable-headercell</entry>
+ <entry>Defines styles for a subtable header cell</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-subheadercell</entry>
+ <entry>Defines styles for a column header cell of subtable</entry>
+ </row>
+ <row>
+ <entry>rich-subtable-cell</entry>
+ <entry>Defines styles for a subtable cell</entry>
+ </row>
+ <row>
+ <entry>rich-subtable-row</entry>
+ <entry>Defines styles for a subtable row</entry>
+ </row>
+ <row>
+ <entry>rich-subtable-firstrow</entry>
+ <entry>Defines styles for a subtable start row</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-subfootercell</entry>
+ <entry>Defines styles for a column footer cell of subtable</entry>
+ </row>
+
+ <row>
+ <entry>rich-subtable-footercell</entry>
+ <entry>Defines styles for a subtable footer cell</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_suggestionbox.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_suggestionbox.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_suggestionbox.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,724 @@
+<section role="NotInToc" id="rich_suggestionbox">
+ <title>
+ <
+ rich:suggestionbox
+ >
+ <emphasis role="since">
+ <superscript>
+ available since
+ <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The component adds on-keypress suggestions capabilities to any input
+ text component
+ like
+ <emphasis role="bold">
+ <property><h:inputText></property>
+ </emphasis>
+ .
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ component
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox_init.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Adds
+ <emphasis>
+ <property>"onkeypress"</property>
+ </emphasis>
+ suggestions capabilities to any input text component
+ </para>
+ </listitem>
+ <listitem>
+ <para>Possible to render table as a popup suggestion</para>
+ </listitem>
+ <listitem>
+ <para>Can be pointed to any Ajax request status indicator of the
+ page</para>
+ </listitem>
+ <listitem>
+ <para>Easily customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Fully skinnable component</para>
+ </listitem>
+ <listitem>
+ <para>Managing area of components submitted on Ajax request</para>
+ </listitem>
+ <listitem>
+ <para>Flexible list of components to update after Ajax request
+ managed by attributes</para>
+ </listitem>
+ <listitem>
+ <para>Setting restriction to Ajax request generation</para>
+ </listitem>
+ <listitem>
+ <para>Keyboard navigation support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <section>
+ <title>Main attributes</title>
+ <para>There are 3 main component attributes:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"for"</property>
+ </emphasis>
+ contains an ID of an input component
+ for which the suggestion
+ support is provided
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"suggestionAction"</property>
+ </emphasis>
+ defines the method to get a collection of suggestion data on
+ request
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"var"</property>
+ </emphasis>
+ defines a collection name that provides an access for the current
+ row while iterating through
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>To create the simplest variant on a page use the following
+ syntax:</para>
+ <programlisting role="XML">...
+ <h:inputText id="city" value="#{capitalsBean.capital}" />
+ <rich:suggestionbox for="city" var="result"
+ suggestionAction="#{capitalsBean.autocomplete}">
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ </rich:suggestionbox>
+ ...
+</programlisting>
+ <para>
+ There is a managed bean:
+ </para>
+ <programlisting role="JAVA">...
+ public class SBbean {
+
+ private ArrayList<Capital> capitals = new ArrayList<Capital>();
+ private ArrayList<String> capitalsNames = new
+ ArrayList<String>();
+ private List<SelectItem> capitalsOptions = new
+ ArrayList<SelectItem>();
+ private String capital = "";
+
+ public List<Capital> autocomplete(Object suggest) {
+ String pref = (String) suggest;
+ ArrayList<Capital> result = new ArrayList<Capital>();
+
+ Iterator<Capital> iterator = getCapitals().iterator();
+ while (iterator.hasNext()) {
+ Capital elem = ((Capital) iterator.next());
+ if ((elem.getName() != null && elem.getName().toLowerCase()
+ .indexOf(pref.toLowerCase()) == 0)
+ || "".equals(pref)) {
+ result.add(elem);
+ }
+ }
+ return result;
+ }
+
+ public SBbean() {
+ URL rulesUrl = getClass().getResource("capitals-rules.xml");
+ Digester digester = DigesterLoader.createDigester(rulesUrl);
+ digester.push(this);
+ try {
+ digester.parse(getClass().getResourceAsStream("capitals.xml"));
+ } catch (IOException e) {
+ throw new FacesException(e);
+ } catch (SAXException e) {
+ throw new FacesException(e);
+ }
+ capitalsNames.clear();
+ for (Capital cap : capitals) {
+ capitalsNames.add(cap.getName());
+ }
+ capitalsOptions.clear();
+ for (Capital cap : capitals) {
+ capitalsOptions.add(new SelectItem(cap.getName(), cap.getState()));
+ }
+ }
+
+ public String addCapital(Capital capital) {
+ capitals.add(capital);
+ return null;
+ }
+ }
+</programlisting>
+ <para>
+ In the example above when suggestion item (city) is selected it is
+ set as a value of
+ <code><h:inputText id="city"/></code>
+ .
+ </para>
+ <para>
+ Here is a result:
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ Simple
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox_simple.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ The
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ component could get any collection
+ and outputs it in a
+ popup in
+ several columns. The
+ <emphasis>
+ <property>"fetchValue"</property>
+ </emphasis>
+ attribute points to the data that is inserted into the input field
+ if a particular row is selected
+ or clicked from the suggested list.
+ Therefore when some string is chosen input
+ receives the proper value.
+ </para>
+ <programlisting role="XML">...
+ <h:inputText id="city" value="#{capitalsBean.capital}" />
+ <rich:suggestionbox for="city" var="result"
+ fetchValue="#{result.state}"
+ suggestionAction="#{capitalsBean.autocomplete}">
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ <h:column>
+ <h:outputText value="#{result.state}" />
+ </h:column>
+ </rich:suggestionbox>
+ ...
+</programlisting>
+ <para>
+ In the example above if you choose any string input will receive the
+ corresponding value
+ from the second column containing
+ <code>#{result.state}</code>
+ .
+ </para>
+ <para>Here is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ with output in several columns
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox2.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ There is also one more important attribute named
+ <emphasis>
+ <property>"tokens"</property>
+ </emphasis>
+ that specifies separators after which a set of some
+ characters
+ sequence is defined as a new prefix beginning from this
+ separator and
+ not from the string beginning.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+ <h:inputText id="city" value="#{capitalsBean.capital}" />
+ <rich:suggestionbox for="city" var="result"
+ suggestionAction="#{capitalsBean.autocomplete}"
+ tokens=",">
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ </rich:suggestionbox>
+ ...
+</programlisting>
+ <para>This example shows that when a city is chosen and a comma and
+ first letter
+ character are input, Ajax request is called again, but
+ it
+ submits a
+ value starting from the last token:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ with chosen word
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox3.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ For
+ a multiple definition use either "
+ <code>,.;[]</code>
+ "
+ syntax as a value for
+ <emphasis>
+ <property>"tokens"</property>
+ </emphasis>
+ attribute or link a parameter to some bean
+ property that transmits
+ separators collection.
+ </para>
+ </section>
+ <section>
+ <title>JavaScript API</title>
+ <para>
+ There is such feature of the
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ component as
+ <property>object selection</property>
+ .
+ If you want to get the selected item as object on the client side
+ you should set the value of the
+ <emphasis>
+ <property> "usingSuggestObjects" </property>
+ </emphasis>
+ attribute
+ to "true".
+ After that you should specify
+ JavaScript method in
+ the
+ <emphasis>
+ <property> "onobjectchange"</property>
+ </emphasis>
+ attribute and pass the
+ <code>suggestion</code>
+ object as a parameter:
+ </para>
+ <programlisting role="XML">...
+ <h:inputText id="city" value="#{capitalsBean.capital}" />
+ <rich:suggestionbox for="city" var="result"
+ suggestionAction="#{capitalsBean.autocomplete}"
+ onobjectchange="processObjects(suggestion)"
+ usingSuggestObjects="true">
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ </rich:suggestionbox>
+ <h:panelGroup>
+ <div id="state"></div>
+ </h:panelGroup>
+ ...
+</programlisting>
+ <para>
+ When the item is selected you can get it as an object on the client
+ side and use
+ <code>getSelectedItems()</code>
+ method to access any object properties:
+ </para>
+ <programlisting role="XML"><script
+ type="text/javascript">
+ function processObjects(suggestionBox) {
+ var items = suggestionBox.getSelectedItems();
+ var state;
+ if (items && items.length > 0) {
+ for ( var i = 0; i < items.length; i++) {
+ state = items[i].state;
+ }
+ document.getElementById('state').innerHTML = "State: "+state;
+ }else{
+ document.getElementById('state').innerHTML = '';
+ }
+ }
+ </script> </programlisting>
+ <para>
+ Here is a result:
+ </para>
+ <figure>
+ <title>
+ Usage of
+ <code>getSelectedItems()</code>
+ method
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionboxAPI.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Other attributes and facets</title>
+ <para>
+ In addition to attributes common for Ajax action components
+ and
+ limiting requests quantity and frequency,
+ the
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ has one more its own attribute
+ limiting requests: the
+ <emphasis>
+ <property>"minChars"</property>
+ </emphasis>
+ attribute. This attribute defines characters quantity
+ inputted into a
+ field after which Ajax requests are called to perform
+ suggestion.
+ </para>
+
+
+ <para>
+ There is possibility to define what is shown if the autocomplete
+ returns empty list. Attribute
+ <emphasis>
+ <property> "nothingLabel" </property>
+ </emphasis>
+ or facet with the same name could be used for this purpose.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+ <rich:suggestionbox for="city" var="result"
+ suggestionAction="#{capitalsBean.autocomplete}"
+ nothingLabel="No cities found">
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ </rich:suggestionbox>
+ ...
+</programlisting>
+ <para>Here is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ with empty list
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox4.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ You can also use facets for the further
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ customization:
+ </para>
+ <programlisting role="XML">...
+ <h:inputText id="city" value="#{capitalsBean.capital}" />
+ <rich:suggestionbox for="city" var="result"
+ suggestionAction="#{capitalsBean.autocomplete}">
+ <f:facet name="nothingLabel">
+ <h:outputText value="No cities found" />
+ </f:facet>
+ <f:facet name="header">
+ <h:outputText value="Select your city" />
+ </f:facet>
+ <h:column>
+ <h:outputText value="#{result.name}" />
+ </h:column>
+ </rich:suggestionbox>
+ ...
+</programlisting>
+ <para>
+ Here is a result:
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ facets
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/suggestionbox5.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ Information about the
+ <emphasis>
+ <property>"process"</property>
+ </emphasis>
+ attribute usage you can findin the
+ <link linkend="process"> "Decide what to process" </link>
+ guide section.
+ </para>
+ <para>
+ In RichFaces Wiki article about
+ <ulink
+ url="http://wiki.jboss.org/wiki/RichFacesSuggestionGettingAdditionalProperties">
+ Additional Properties </ulink>
+ you can find example of getting additional
+ properties.
+ </para>
+ </section>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/suggestionbox.html">Table of
+ <rich:suggestionbox>
+ attributes</ulink>
+ .
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.SuggestionBox</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlSuggestionBox</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.SuggestionBox</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.SuggestionBoxRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.SuggestionBoxTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>nothingLabel</entry>
+ <entry>Redefines the content item if the autocomplete returns
+ empty
+ list. Related attribute is "nothingLabel"</entry>
+ </row>
+ <row>
+ <entry>popup</entry>
+ <entry>Redefines the content for the popup list of the suggestion
+ </entry>
+ </row>
+ <row>
+ <entry>header</entry>
+ <entry>Defines the header content</entry>
+ </row>
+ <row>
+ <entry>footer</entry>
+ <entry>Defines the footer content</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="suggBoxC">
+ <title>Classes names that define a suggestionbox</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>rich-sb-common-container</entry>
+
+ <entry>Defines styles for a wrapper
+ <div> element of
+ a suggestion container</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-ext-decor-1</entry>
+
+ <entry>Defines styles for the first
+ wrapper <div>
+ element of a suggestion box
+ exterior</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-ext-decor-2</entry>
+
+ <entry>Defines styles for the second
+ wrapper <div>
+ element of a suggestion box
+ exterior</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-ext-decor-3</entry>
+
+ <entry>Defines styles for the third
+ wrapper <div>
+ element of a suggestion box
+ exterior</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-overflow</entry>
+
+ <entry>Defines styles for a wrapper
+ <div>
+ element</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-int-decor-table</entry>
+
+ <entry>Defines styles for a suggestion
+ box table</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-int</entry>
+
+ <entry>Defines the styles for a
+ suggestion box table rows
+ (tr)</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-cell-padding</entry>
+
+ <entry>Defines the styles for suggestion
+ box table cells (td)</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-int-sel</entry>
+
+ <entry>Defines styles for a selected
+ row</entry>
+ </row>
+
+ <row>
+ <entry>rich-sb-shadow</entry>
+
+ <entry>Defines styles for a suggestion
+ boxshadow</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ You can find all necessary information about style classes
+ redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </para>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Visit
+ <ulink
+ url="http://livedemo.exadel.com/richfaces-demo/richfaces/suggestionBox.jsf?c=s...">
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ </ulink>
+ page at RichFaces Livedemo for examples of component usage and
+ sources.
+ </para>
+ <para>
+ RichFaces cookbook at JBoss Portal includes some articles that cover
+ different aspects of working with
+ <emphasis role="bold">
+ <property><rich:suggestionbox></property>
+ </emphasis>
+ :
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ "
+ <ulink url="http://www.jboss.org/community/docs/DOC-11851">Creating suggestion box dynamically</ulink>
+ ";
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "
+ <ulink url="http://www.jboss.org/community/docs/DOC-11865">Getting additional properties from
+ <rich:suggectionbox></ulink>
+ ".
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tab.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tab.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tab.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,314 @@
+<section role="NotInToc" id="rich_tab">
+ <title>
+ <
+ rich:tab
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A <property>tab</property> section within a tab panel.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:tab></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tab_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Fully skinnable <property>tabs</property> content</para>
+ </listitem>
+ <listitem>
+ <para>Disabled/enabled <property>tab</property> options</para>
+ </listitem>
+ <listitem>
+ <para>Groups any content inside a <property>tab</property>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Each <property>tab</property> has a unique name for a direct access (e.g. for
+ switching between tabs)</para>
+ </listitem>
+ <listitem>
+ <para>Switch methods can be easily customized for every <property>tab</property>
+ separately with attribute to:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>AJAX</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>The main component function is to define a content group that is rendered
+ and processed when the <property>tab</property> is active, i.e. click
+ on a <property>tab</property> causes switching onto a
+ <property>tab</property> containing content corresponded to this
+ <property>tab</property>.</para>
+ <para>The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute defines text to be represented. If you can use
+ the <emphasis>
+ <property>"label"</property>
+ </emphasis> facet, you can even not use the <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tab>
+ <f:facet name="label">
+ <h:graphicImage value="/images/img1.png"/>
+ </f:facet>
+ ...
+ <!--Any Content inside-->
+ ...
+</rich:tab>
+...
+</programlisting>
+
+ <para>A marker on a <property>tab</property> header defined with the <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute. Moreover, each <property>tab</property> could
+ be disabled (switching on this <property>tab</property> is impossible)
+ with the <emphasis>
+ <property>"disable"</property>
+ </emphasis> attribute.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tabPanel width="20%">
+ <tabs:tab label="Canon">
+ <h:outputText value="Canon EOS Digital Rebel XT" />
+ ...
+ </tabs:tab>
+ <tabs:tab label="Nikon">
+ <h:outputText value="Nikon D70s" />
+ ...
+ </tabs:tab>
+ <tabs:tab label="Olympus">
+ <h:outputText value="Olympus EVOLT E-500" />
+ ...
+ </tabs:tab>
+ <tabs:tab disabled="true" name="disabled" label="Disabled"/>
+</rich:tabPanel>
+...</programlisting>
+ <para>With this example it's possible to generate the <property>tab
+ panel</property> with the last disabled and three active
+ <property>tabs</property> (see the picture).</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:tabPanel></property>
+ </emphasis> with disabled <emphasis role="bold">
+ <property><rich:tab></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tab2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Switching mode could be defined not only for the whole panel
+ <property>tab</property>, but also for each particular
+ <property>tab</property>, i.e. switching onto one
+ <property>tab</property> could be performed right on the client with
+ the corresponding JavaScript and onto another <property>tab</property>
+ with an Ajax request on the server. <property>Tab</property> switching
+ modes are the same as <property>tabPanel</property> ones.</para>
+ <para>Each <property>tab</property> also has an attribute name (alias for <emphasis>
+ <property>"id"</property>
+ </emphasis> attribute). Using this attribute value it's
+ possible e.g. to set an active <property>tab</property> on a model
+ level specifying this name in the corresponding attribute of the whole
+ <property>tab</property>.</para>
+ <para>Except the specific component attributes it has all necessary attributes
+ for JavaScript event definition.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+ <para> Some event could be performed on the tab which has been entered/left
+ using <emphasis>
+ <property>"ontabenter"</property>
+ </emphasis>/<emphasis>
+ <property>"ontableave"</property>
+ </emphasis> attributes. See the example below.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tabPanel>
+ <rich:tab label="Tab1" ontabenter="alert()">
+ ...
+ </rich:tab>
+ ...
+</rich:tabPanel>
+...</programlisting>
+ <para> The following example shows how on the client side to get the names of
+ <code>entered</code>/<code>left</code> tabs. </para>
+ <programlisting role="JAVA">ontabenter="alert(leftTabName)"</programlisting>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the
+ <link linkend="process"> "Decide what to process" </link> guide section. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/tab.html">Table of
+ <rich:tab>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Tab</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlTab</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Tab</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.TabRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.TabTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>label</entry>
+ <entry>Defines the text for the actual "tab" in a tab section</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_tab">
+ <title>Classes names that define a tab</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tab-header</entry>
+ <entry>Defines styles for a tab
+ header</entry>
+ </row>
+
+ <row>
+ <entry>rich-tab-label</entry>
+ <entry>Defines styles for a tab
+ label</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a tab states</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tab-active</entry>
+ <entry>Defines styles for an active
+ tab</entry>
+ </row>
+ <row>
+ <entry>rich-tab-inactive</entry>
+ <entry>Defines styles for an inactive
+ tab</entry>
+ </row>
+ <row>
+ <entry>rich-tab-disabled</entry>
+ <entry>Defines styles for a disabled
+ tab</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tabPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tabPanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tabPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,335 @@
+<section role="NotInToc" id="rich_tabPanel">
+ <title>
+ <
+ rich:tabPanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A <property>tab panel</property> displaying tabs for grouping content of the panel.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:tabPanel></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tabPanel_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Skinnable <property>tab panel</property> and child items</para>
+ </listitem>
+ <listitem>
+ <para>Disabled/enabled tab options</para>
+ </listitem>
+ <listitem>
+ <para>Customizable headers</para>
+ </listitem>
+ <listitem>
+ <para>Group any content inside a tab</para>
+ </listitem>
+ <listitem>
+ <para>Each tab has a unique name for direct access (e.g. for switching between tabs)</para>
+ </listitem>
+ <listitem>
+ <para>Switch methods can be easily customized with attribute to:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>
+ Server
+ </code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>AJAX</code>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Switch methods can be selected for the whole <property>tab panel</property> and for the
+ each tab separately</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>As it was mentioned <link linkend="tabPanel">above</link>,
+ <property>tabPanel</property> groups content on panels and
+ performs switching from one to another. Hence, modes of switching
+ between panels are described first of all.</para>
+ <note>
+ <title>Note:</title>
+ <para> All <property>tabPanels</property> should be wrapped into a
+ form element so as content is correctly submitted inside. If
+ a form is placed into each tab, the Action elements of Tab
+ controls appear to be out of the form and content submission
+ inside the panels could be performed only for Action
+ components inside tabs.</para>
+ </note>
+ <para>Switching mode could be chosen with the <property>tabPanel</property>
+ attribute <emphasis>
+ <property>"switchType"</property>
+ </emphasis> with three possible parameters.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (DEFAULT)</para>
+ <para>The common submission is performed around
+ <property>tabPanel</property> and a page
+ is completely rendered on a called panel. Only one
+ at a time <property>tabPanel</property> is
+ uploaded onto the client side.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ <para>AJAX form submission is performed around the
+ <property>tabPanel</property>, content
+ of the called <property>tabPanel</property> is
+ uploaded on Ajax request. Only one at a
+ time <property>tabPanel</property> is uploaded on
+ the client.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ <para> All <property>tabPanels</property> are uploaded on
+ the client side. The switching from the active to
+ the hidden <property>panel</property> is performed
+ with client JavaScript.</para>
+ </listitem>
+ </itemizedlist>
+ <para>As a result, the <property>tabPanel</property> is switched to the second
+ tab according to the action returning outcome for moving onto another
+ page and switching from the second to the first tab is performed.</para>
+ <para>There is also the <emphasis>
+ <property>"selectedTab"</property>
+ </emphasis> attribute. The attribute keeps an active tab name;
+ therefore, an active <property>tabPanel</property> could be changed
+ with setting a name of the necessary tab to this attribute.</para>
+ <para>There is also the <emphasis>
+ <property>"headerAlignment"</property>
+ </emphasis> attribute responsible for rendering of
+ <property>tabPanel</property> components. The attribute has several
+ values: "left" (Default), "right",
+ "center", which specify Tabs components location on
+ the top of the tabPanel.</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tabPanel width="40%" headerAlignment="right">
+ <rich:tab label="Canon">
+ ...
+ </rich:tab>
+ <rich:tab label="Nikon">
+ ...
+ </rich:tab>
+ <rich:tab label="Olympus">
+ ...
+ </rich:tab>
+</rich:tabPanel>
+...
+</programlisting>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:tabPanel></property>
+ </emphasis> with right aligned tabs</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tabPanel2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para> The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This attribute
+ defines the parameters of localized error and informational messages
+ that occur as a result of conversion, validation, or other application
+ actions during the request processing lifecycle. With the help of this
+ attribute you can replace the last parameter substitution token shown
+ in the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>,
+ {2} for <code>"ShortConverter.SHORT"</code>. </para>
+ <para>Except the specific attributes, the component has all necessary attributes
+ for JavaScript events definition.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para> etc. </para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/tabPanel.html">Table of
+ <rich:tabPanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.tabPanel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmltabPanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.tabPanel</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.tabPanelRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.tabPanelTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn5">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tabpanel</entry>
+ <entry>Defines styles for all
+ tabPanel</entry>
+ </row>
+ <row>
+ <entry>rich-tabpanel-content</entry>
+ <entry>Defines styles for an internal
+ content</entry>
+ </row>
+ <row>
+ <entry>rich-tabpanel-content-position</entry>
+ <entry>Defines styles for a wrapper
+ element of a tabPanel content.
+ It should define a shift equal
+ to borders width in order to
+ overlap panel tabs</entry>
+ </row>
+ <row>
+ <entry>rich-tabhdr-side-border</entry>
+ <entry>Defines styles for side elements
+ of a tabPanel header</entry>
+ </row>
+ <row>
+ <entry>rich-tabhdr-side-cell</entry>
+ <entry>Defines styles for a header
+ internal element</entry>
+ </row>
+ <row>
+ <entry>rich-tab-bottom-line</entry>
+ <entry>Defines styles for a tab bottom
+ line element of a tabPanel
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define different tab header states
+ (corresponds to rich-tabhdr-side-cell)</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tabhdr-cell-active</entry>
+ <entry>Defines styles for an internal
+ element of an active
+ header</entry>
+ </row>
+ <row>
+ <entry>rich-tabhdr-cell-inactive</entry>
+ <entry>Defines styles for an internal
+ element of an inactive label
+ </entry>
+ </row>
+ <row>
+ <entry>rich-tabhdr-cell-disabled</entry>
+ <entry>Defines styles for an internal
+ element of a disabled label
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/tabPanel.jsf?c=tabPanel">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:tabPanel></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toggleControl.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toggleControl.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toggleControl.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,186 @@
+<section role="NotInToc" id="rich_toggleControl">
+ <title>
+ <
+ rich:toggleControl
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A link type <property>control</property> for switching between
+ <property>togglePanel</property> facets. Target
+ Panel is specified with <emphasis>
+ <property>"for"</property>
+ </emphasis>
+ attribute. It can be located inside or outside the <property>togglePanel</property>. As the result of switching
+ between facets previous facet is hidden and another one (specified with
+ <emphasis>
+ <property>"switchToState"</property>
+ </emphasis> or panel
+ <emphasis>
+ <property>"stateOrder"</property>
+ </emphasis> attributes) is
+ shown.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toggleControl></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toggleControl_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel</para>
+ </listitem>
+ <listitem>
+ <para>Can be located anywhere in a page layout</para>
+ </listitem>
+ <listitem>
+ <para>Switching is provided in the three modes</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>As it was mentioned <link linkend="toggleControl">above</link>, the <property>control</property> could be in any place in
+ layout and linked to a switching panel that is managed with <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute (in the <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute the full component <emphasis>
+ <property>"id"</property>
+ </emphasis> is specified according to naming
+ containers).</para>
+ <para>The <property>togglePanel</property> could be also switched from the side of the control instead of being strictly defined
+in <emphasis>
+ <property>"switchOrder"</property>
+ </emphasis> attribute of <emphasis role="bold">
+ <property><rich:togglePanel></property>.</emphasis>
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting 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>
+ <para>In this example the switching is performed on facets specified in the <emphasis>
+ <property>"switchToState"</property>
+ </emphasis> attribute.</para>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/toggleControl.html">Table of
+ <rich:toggleControl>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ToggleControl</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlToggleControl</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ToggleControl</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ToggleControlRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ToggleControlTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_tC">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tglctrl</entry>
+ <entry>Defines styles for a toggle control</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_togglePanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_togglePanel.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_togglePanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,232 @@
+<section role="NotInToc" id="rich_togglePanel">
+ <title>
+ <
+ rich:togglePanel
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A wrapper component with named facets, where every facet is shown after activation of
+ the corresponding <property>toggleControl</property>
+ (the other is hidden).</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:togglePanel></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/togglePanel_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Support for any content inside</para>
+ </listitem>
+ <listitem>
+ <para>Three modes of facets switching</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Controls for <property>togglePanel</property> can be everywhere in layout</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>As it was mentioned <link linkend="togglePanel">above</link>,
+ <property>togglePanel</property> splits content into named
+ facets that become rendered and processed when a click performed on
+ controls linked to this <property>togglePanel</property> (either
+ switched on the client or send requests on the server for switching).</para>
+ <para>The initial component state is defined with <emphasis>
+ <property>"initialState"</property>
+ </emphasis> attribute, where a facet name that is shown at first is
+ defined.</para>
+ <note>
+ <title>Note:</title>
+ <para> It's also possible to define an <emphasis>
+ <property>"empty"</property>
+ </emphasis> facet to implement the functionality as
+ drop-down panels have and make the facet active when no
+ content is required to be rendered.</para>
+ </note>
+ <para>Switching mode could be defined with the <emphasis>
+ <property>"switchType"</property>
+ </emphasis> attribute with three possible parameters:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Server</code> (DEFAULT)</para>
+ <para>The common submission is performed around
+ <property>togglePanel</property> and a
+ page is completely rendered on a called panel.
+ Only one at a time the panel is uploaded onto the
+ client side.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Ajax</code>
+ </para>
+ <para>AJAX form submission is performed around the panel,
+ content of the called panel is uploaded on an Ajax
+ request . Only one at a
+ time the panel is uploaded on the client
+ side.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code>
+ </para>
+ <para> All panels are uploaded on the client side. The
+ switching from the active to the hidden panel is
+ performed with client JavaScript.</para>
+ </listitem>
+ </itemizedlist>
+ <para>"Facets" switching order could be defined on the side of
+ <emphasis role="bold">
+ <property><rich:toggleControl></property>
+ </emphasis> component or on the panel. On the side of the togglePanel
+ it's possible to define facets switching order with the <emphasis>
+ <property>"stateOrder"</property>
+ </emphasis> attribute. The facets names are enumerated in such an
+ order that they are rendered when a control is clicked, as
+ it's not defined where to switch beforehand.</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting 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>
+ <para>The example shows a <property>togglePanel</property> initial state when
+ the second facet (<code>panelB</code>) is rendered and successive
+ switching from the first to the second happens.</para>
+ <para> The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute is a generic attribute. The <emphasis>
+ <property>"label"</property>
+ </emphasis> attribute provides an association between a component, and
+ the message that the component (indirectly) produced. This attribute
+ defines the parameters of localized error and informational messages
+ that occur as a result of conversion, validation, or other application
+ actions during the request processing lifecycle. With the help of this
+ attribute you can replace the last parameter substitution token shown
+ in the messages. For example, {1} for
+ <code>"DoubleRangeValidator.MAXIMUM"</code>,
+ {2} for <code>"ShortConverter.SHORT"</code>. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/togglePanel.html">Table of
+ <rich:togglePanel>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.TogglePanel</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlTogglePanel</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.TogglePanel</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.TogglePanelRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.Taglib.togglePanelTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="togglePC">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-toggle-panel</entry>
+ <entry>Defines styles for all
+ component</entry>
+ </row>
+
+ <row>
+ <entry>rich-tglctrl</entry>
+ <entry>Defines styles for a toggle
+ control</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/togglePanel.jsf?c=tog...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:togglePanel></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBar.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,224 @@
+<section role="NotInToc" id="rich_toolBar">
+ <title>
+ <
+ rich:toolBar
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A horizontal bar with Action items on it that accepts any JSF components as children.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis> with action items</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolBar_init.png" scalefit="1"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Skinnable menu panel and child items</para>
+ </listitem>
+ <listitem>
+ <para>Standard top menu bar that can be used in accordance with a menu component</para>
+ </listitem>
+ <listitem>
+ <para>Grouping bar content</para>
+ </listitem>
+ <listitem>
+ <para>Easily place content on any side of a menu bar using predefined group layout</para>
+ </listitem>
+ <listitem>
+ <para>Predefined separators for menu items and groups</para>
+ </listitem>
+ <listitem>
+ <para>Any content inside</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>A <property>toolBar</property> is a wrapper component that facilitates creation of menu
+ and <property>tool bars</property>. All components defined inside are located on a stylized
+ bar with possibility to group, arrange on the both bar sides, and place predefined separators
+ between them.</para>
+ <para>Grouping and an input side definition is described for <property>toolBarGroup</property>
+ that defines this functionality.</para>
+ <para>Separators are located between components with the help of the <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> attribute with four predefined values:</para>
+ <itemizedlist>
+ <listitem>
+ <para> "none" </para>
+ </listitem>
+ <listitem>
+ <para> "line" </para>
+ </listitem>
+ <listitem>
+ <para> "square" </para>
+ </listitem>
+ <listitem>
+ <para> "disc" </para>
+ </listitem>
+ </itemizedlist>
+ <para>For example, when setting a separator of a disc type, the following result is produced:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis> with a <emphasis>
+ <property>"disc"</property>
+ </emphasis> separator</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolBar2.png" scalefit="1"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Moreover, for <property>toolBar</property> style <emphasis>
+ <property>"width"</property>
+ </emphasis> and <emphasis>
+ <property>"height"</property>
+ </emphasis> attributes are placed above all.</para>
+ <para>A custom separator can be added with the help of <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> facet.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<f:facet name="itemSeparator">
+ <rich:separator width="2" height="14" />
+</f:facet>
+...
+</programlisting>
+ <para>Custom separator can be also specified by URL to the separator image in the attribute <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> of the <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis>. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:toolBar id="toolBar" width="#{bean.width}" height="#{bean.height}" itemSeparator="/images/separator_img.jpg"/>
+...
+</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis> with <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> attribute.</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolBar4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/toolBar.html">Table of
+ <rich:toolBar>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ToolBar</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlToolBar</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ToolBar</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ToolBarRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ToolBarTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>itemSeparator</entry>
+ <entry>Defines the custom separator. Related attribute is "itemSeparator"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="toolBC">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-toolbar</entry>
+ <entry>Defines styles for a toolbar element</entry>
+ </row>
+ <row>
+ <entry>rich-toolbar-item</entry>
+ <entry>Defines styles for a toolbar item</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolBar.jsf?c=toolBar">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:toolBar></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBarGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBarGroup.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolBarGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,153 @@
+<section role="NotInToc" id="rich_toolBarGroup">
+ <title>
+ <
+ rich:toolBarGroup
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>A group of items inside a tool bar.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolbarGroup></property>
+ </emphasis> with items on it</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolBarGroup_init.png" scalefit="1"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Fully skinnable with its child items</para>
+ </listitem>
+ <listitem>
+ <para>Grouping bar content</para>
+ </listitem>
+ <listitem>
+ <para>Easily place content on either side of tool bar using a predefined group layout</para>
+ </listitem>
+ <listitem>
+ <para>Predefined separators for menu items and groups</para>
+ </listitem>
+ <listitem>
+ <para>Any content inside</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>A <property>toolBarGroup</property> is a wrapper component that groups <property>toolBar</property> content and facilitates creation of menu and tool bars. All components defined inside are located on a stylized bar with a possibility to group, arrange on the both bar sides, and place predefined separators between them.</para>
+ <para>Separators are located between components with the help of the <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> attribute with four
+ predefined values:</para>
+ <itemizedlist>
+ <listitem>
+ <para> "none" </para>
+ </listitem>
+ <listitem>
+ <para> "line" </para>
+ </listitem>
+ <listitem>
+ <para> "square" </para>
+ </listitem>
+ <listitem>
+ <para> "disc" </para>
+ </listitem>
+ </itemizedlist>
+ <para>To control the group location inside, use the <emphasis>
+ <property>"location"</property>
+ </emphasis> attribute with "left" (DEFAULT) and "right" values.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:toolBar itemSeparator="disc" width="500">
+ <rich:toolBarGroup itemSeparator="line">
+ <h:commandLink value="Command 1.1"/>
+ <h:commandLink value="Command 2.1"/>
+ </rich:toolBarGroup>
+ <rich:toolBarGroup itemSeparator="line" location="right">
+ <h:commandLink value="Command 1.2"/>
+ <h:commandLink value="Command 2.2"/>
+ </rich:toolBarGroup>
+</rich:toolBar>
+...
+</programlisting>
+ <para>The code result is the following:</para>
+ <figure>
+ <title>Stylized <emphasis role="bold">
+ <property><rich:toolbarGroup></property>
+ </emphasis> with <emphasis>
+ <property>"location"</property>
+ </emphasis>, <emphasis>
+ <property>"itemSeparator"</property>
+ </emphasis> attributes</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolBarGroup2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/toolBarGroup.html">Table of
+ <rich:toolBarGroup>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.ToolBarGroup</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlToolBarGroup</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.ToolBarGroup</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.ToolBarGroupRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.ToolBarGroupTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ Some additional information about usage of component can be found
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolBar.jsf?c=toolBar">on the component Live Demo page</ulink>.
+ </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolTip.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolTip.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_toolTip.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,478 @@
+<section role="NotInToc" id="rich_toolTip">
+ <title>
+ <
+ rich:toolTip
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> component is used
+ for creation of event-triggered non modal popup, that contains information regarding the page element, that event was applied to.
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolTip_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Highly customizable look and feel </para>
+ </listitem>
+ <listitem>
+ <para>Different ways of data loading to toolTip</para>
+ </listitem>
+ <listitem>
+ <para>Disablement support</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ Text information, labeled on the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>, is specified with <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute.
+ Text that is put between tooltip start and end tags will also be rendered as tooltip content and could be marked with HTML tags.
+ Images, links, buttons and other RichFaces components are also may be put and composed inside the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>.
+ The <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> borders are stretched automatically to enclose the contents.
+ </para>
+ <para>
+ There are three ways to attach the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> to a page element.
+ The first and simplest one is when the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is nested into a page element the tooltip is applied to.
+ This way is shown on example in the <link linkend="tab_ccpt">Creating the Component with a Page Tag</link> section.
+ The <emphasis>
+ <property>"attached"</property>
+ </emphasis> attribute is "true" by default in this case,
+ which means that the tolltip will be invoked automatically when the mouse cursor is hovered above the parent component.
+ </para>
+
+ <para>
+ The second one uses <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>
+ <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute.
+ In this case the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is defined separately from a component it is applied to.
+ </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><rich:panel id="panelId">
+...
+</rich:panel>
+<rich:toolTip value="This is a tooltip." for="panelId"/></programlisting>
+
+ <para>These two ways are also applicable for HTML elements that are not presented in components tree built by facelets.
+ Use <emphasis>
+ <property>"for"</property>
+ </emphasis> attribute to attach the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> in both cases.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><!-- The <rich:toolTip> is nested into the parent HTML element -->
+<div id="para1">
+ <p>This paragraph and tooltip are nested into the same <div> element.</p>
+ <rich:toolTip for="para1">This is a tooltip.</rich:toolTip>
+</div>
+
+<!-- The <rich:toolTip> is defined separately -->
+<div id="para2">
+ <p>The tooltip for this paragraph is defined separately.</p>
+</div>
+<rich:toolTip for="para2">This is a tooltip.</rich:toolTip></programlisting>
+
+ <para>The third way to invoke the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> uses JS API function.
+ List of JS API functions available for <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is listed <link linkend="tab_jsapi">below</link>.
+ JS API functions are defined for a component the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is applied to.
+ The <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>
+ <emphasis>
+ <property>"attached"</property>
+ </emphasis> attribute should be set to "false" in this case.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><rich:panel id="panelId" onclick="#{rich:component("tooltipId")}.show(event);" />
+<a4j:form>
+ <rich:toolTip id="tooltipId" attached="false" value="This is a tooltip."/>
+</a4j:form></programlisting>
+
+ <note>
+ <title>Notes:</title>
+ <para>To provide <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> component proper work in complex cases do the following:
+ <itemizedlist>
+ <listitem>
+ <para>specify <emphasis>
+ <property>"id's"</property>
+ </emphasis> for both <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> and component it is applied to;</para>
+ </listitem>
+ <listitem>
+ <para>define the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> as last child, when nesting it into the component the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is applied to;</para>
+ </listitem>
+ <listitem>
+ <para>put the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> into <emphasis role="bold">
+ <property><a4j:form></property>
+ </emphasis> when invoking it with JS API function.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </note>
+
+ <para>
+ The <emphasis>
+ <property>"mode"</property>
+ </emphasis> attribute is provided you to control the way of data loading to <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis>.
+ The component works properly in client and Ajax modes.
+ In client mode <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> content is rendered once on the server and could be rerendered only via external submit.
+ In Ajax mode <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> content is requested from server for every activation.
+ For Ajax mode there is possibility to define a facet <emphasis>
+ <property>"defaultContent"</property>
+ </emphasis>, which provides default <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> content to be displayed, while main content is loading into the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> (see the example below).
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:commandLink value="Simple Link" id="link">
+ <rich:toolTip followMouse="true" direction="top-right" mode="ajax" value="#{bean.toolTipContent}" horizontalOffset="5"
+ verticalOffset="5" layout="block">
+ <f:facet name="defaultContent">
+ <f:verbatim>DEFAULT TOOLTIP CONTENT</f:verbatim>
+ </f:facet>
+ </rich:toolTip>
+</h:commandLink>
+...
+</programlisting>
+ <para>
+ This is the result:
+ </para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> component with default content</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolTip2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ And after <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> loaded it is changed to next one:
+ </para>
+
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> component with loaded content</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/toolTip3.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> appears attached to the corner
+ dependent on the <emphasis>
+ <property>"direction"</property>
+ </emphasis> attribute.
+ By default it is positioned bottom-right.
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> activation occurs after an event,
+ defined on the parent component, takes into consideration the "delay" attribute
+ or after calling JS API function <code>show()</code>.
+ <emphasis>
+ <property>"hideEvent"</property>
+ </emphasis> attribute defines the way
+ how <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> disappears.
+ It default value is "none", so the <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> does not disappears.
+ Deactivation may be set for example on <emphasis>
+ <property>mouseout</property>
+ </emphasis> event on the parent component
+ (excepting the situation when the mouse is hovered onto the
+ <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> itself)
+ or after calling JS API function <code>hide()</code>.
+ </para>
+ <para>
+ By default, <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> appears smart positioned. But as you can see from the previous example, you
+ can define an appearance direction via the corresponding attribute <emphasis>
+ <property>"direction"</property>
+ </emphasis>.
+ And also it's possible to define vertical and horizontal offsets relatively to a mouse position.
+ </para>
+ <para>
+ Disabled <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> is rendered to a page as usual but JS that responds for its activation is disabled until <code>enable()</code> is called.
+ </para>
+ <para>
+ Moreover, to add some JavaScript effects, client events defined on it are used:
+ </para>
+ <para>
+ Standart:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondblclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmousemove"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Special:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onshow"</property>
+ </emphasis> - Called after the tooltip is called (some element hovered) but before its request</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> - Called just after the tooltip is shown</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onhide"</property>
+ </emphasis> - Called after the tooltip is hidden</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/toolTip.html">Table of
+ <rich:toolTip>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.component.toolTip</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlToolTip</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.component.toolTip</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.renderkit.html.toolTipRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.HtmlToolTipTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>JavaScript API</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>every acti
+ <entry>Function</entry>
+
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>show()</entry>
+
+ <entry>Shows the corresponding toolTip</entry>
+ </row>
+
+ <row>
+ <entry>hide()</entry>
+
+ <entry>Hides the corresponding toolTip</entry>
+ </row>
+
+ <row>
+ <entry>enable()</entry>
+
+ <entry>Enables the corresponding toolTip</entry>
+ </row>
+
+ <row>
+ <entry>disable()</entry>
+
+ <entry>Disables the corresponding toolTip</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>defaultContent</entry>
+ <entry>Defines the default content for toolTip. It is used only if mode = "ajax"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn6">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tool-tip</entry>
+ <entry>Defines styles for a wrapper <span> or <div> element of a toolTip</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolTip.jsf?c=toolTip">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:toolTip></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tree.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tree.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_tree.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,950 @@
+<section role="NotInToc" id="rich_tree">
+ <title>
+ <
+ rich:tree
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component is designed for hierarchical data presentation and is applied for building
+a tree structure with a drag-and-drop capability. </para>
+ <figure>
+ <title>Expanded <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> with child elements</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tree_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <!--para>On the screenshot above, there is an example of the <property>tree</property> with an expanded node. This node
+ contains its own node with several leaves. Besides, it's possible to choose your own
+ icons for tree nodes.</para-->
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+
+ <listitem>
+ <para>Highly customizable look-and-feel</para>
+ </listitem>
+ <listitem>
+ <para>Built-in drag and drop capability, than enable relocating tree nodes within the tree</para>
+ </listitem>
+ <listitem>
+ <para>Built-in Ajax processing</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to define a visual representation by node type</para>
+ </listitem>
+ <listitem>
+ <para>Support of several root elements in a tree</para>
+ </listitem>
+
+
+
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> As it has been mentioned <link linkend="tree">above</link> the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component allows rendering any tree-like data model. </para>
+ <para> You can build your <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> using model (<code>org.richfaces.model.TreeNode</code> or
+ <code>javax.swing.tree.TreeNode</code>). In this case the
+ <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component interacts with data model via
+ <code>"TreeNode"</code> interface (<ulink url="&apidoc_framework;org/richfaces/model/TreeNode.html"> org.richfaces.model.TreeNode </ulink>) that is used for
+ the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> nodes representation. </para>
+ <para> Actually you can develop and use your own implementation of the
+ <code>"TreeNode"</code> interface or use a
+ default one, which is defined with a default class
+ <code>"TreeNodeImpl"</code> (<ulink url="&apidoc_framework;org/richfaces/model/TreeNodeImpl.html"> org.richfaces.model.TreeNodeImpl </ulink>). </para>
+ <para> The <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute of the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component contains a nodes structure defined in a bean
+ property. </para>
+ <para> When the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component is being rendered it iterates over the model
+ nodes and renders them using one of its <property>immediate</property>
+ <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> children. Data property of the current model
+ <code>TreeNode</code> is exposed using <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute, so if
+ <code>var="station"</code> you can refer
+ to that data using <code>#{station}</code> syntax. </para>
+ <para> In the following example the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> is built from a simple
+ <code>org.richfaces.model.TreeNode</code> model: </para>
+ <programlisting role="JAVA">...
+private TreeNodeImpl<String> stationRoot = new TreeNodeImpl<String>();
+private TreeNodeImpl<String> stationNodes = new TreeNodeImpl<String>();
+private String[] kickRadioFeed = { "Hall & Oates - Kiss On My List",
+ "David Bowie - Let's Dance", "Lyn Collins - Think (About It)",
+ "Kim Carnes - Bette Davis Eyes",
+ "KC & the Sunshine Band - Give It Up" };
+ ...
+stationRoot.setData("KickRadio");
+stationNodes.addChild(0, stationRoot);
+for (int i = 0; i < kickRadioFeed.length; i++){
+ TreeNodeImpl<String> child = new TreeNodeImpl<String>();
+ child.setData(kickRadioFeed[i]);
+ stationRoot.addChild(i, child);
+}
+...</programlisting>
+ <para> As it is mentioned before you need to pass
+ <code>#{stations.stationNodes}</code> property to the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute and define the <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute in order to refer to the data: </para>
+ <programlisting role="XML">...
+<rich:tree value="#{stations.stationNodes}" var="station">
+ <rich:treeNode>
+ <h:outputText value="#{station}" />
+ </rich:treeNode>
+</rich:tree>
+...</programlisting>
+ <para> This is a result: </para>
+ <figure>
+ <title>A simple <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> from a
+ <code>org.richfaces.model.TreeNode</code>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeModel.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para> Implementation of the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component provides another way to build a tree. This
+ approach implies using a
+ <code>"XmlTreeDataBuilder"</code> class
+ (<ulink url="&apidoc;org/richfaces/component/xml/XmlTreeDataBuilder.html"> org.richfaces.component.xml.XmlTreeDataBuilder </ulink>)
+ that allows to transform XML into structures of objects containing
+ <code>"XmlNodeData"</code> (<ulink url="&apidoc_framework;org/richfaces/component/xml/XmlNodeData.html"> org.richfaces.component.xml.XmlNodeData </ulink>)
+ instances as data, which could be represented by the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component. </para>
+ <para> Let's try to build a simple <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> from a local XML file. In the following example a simple
+ XML file (stations.xml) is used as a radio station playlist: </para>
+ <programlisting role="XML"><?xml version="1.0"?>
+<station name="KickRadio">
+ <feed date="today">
+ <song time="07:00">Hall & Oates - Kiss On My List</song>
+ <song time="07:03">David Bowie - Let's Dance</song>
+ <song time="07:06">Lyn Collins - Think (About It)</song>
+ <song time="07:10">Kim Carnes - Bette Davis Eyes</song>
+ <song time="07:15">KC & the Sunshine Band - Give It Up</song>
+ </feed>
+</station></programlisting>
+ <para> Now you need to create a bean that holds a model nodes: </para>
+ <programlisting role="JAVA">...
+private TreeNode data;
+ ...
+FacesContext context = FacesContext.getCurrentInstance();
+data = XmlTreeDataBuilder.build(new InputSource(getClass().getResourceAsStream("stations.xml")));
+...</programlisting>
+ <para> Finally you should set the <emphasis>
+ <property>"value"</property>
+ </emphasis> attribute to the <code>data</code> bean property and
+ define the <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute in order to refer to the data of nodes: </para>
+ <programlisting role="XML">...
+<rich:tree id="treeXML" value="#{stations.data}" var="vardata">
+ <rich:treeNode>
+ <h:outputText value="#{vardata.attributes['name']}" />
+ <h:outputText value="#{vardata.attributes['date']}" />
+ <h:outputText value="#{vardata.attributes['time']}" />
+ <h:outputText value=" #{vardata.text}" />
+ </rich:treeNode>
+</rich:tree>
+...</programlisting>
+ <para>This is a result:</para>
+ <figure>
+ <title>A simple <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> from a local XML file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeXML.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>It's possible to define a visual representation of a node data
+ model (to define a node icon) and its behavior in correspondence with
+ the data contained in this node (with a value of the <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute). The node behavior is defined by the components
+ nested into the <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> (e.g. links or buttons). For these purposes you should use <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute. For each tree node a value of <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute is evaluated and <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> with a value of <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute equal to a value of <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> is used for node representation. See an example
+ below.</para>
+
+ <para id="example">
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
+ <rich:treeNode type="artist" iconLeaf="/images/tree/singer.png" icon="/images/tree/singer.png">
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ <rich:treeNode type="album" iconLeaf="/images/tree/disc.png" icon="/images/tree/disc.png">
+ <h:outputText value="#{item.title}" />
+ </rich:treeNode>
+ <rich:treeNode type="song" iconLeaf="/images/tree/song.png" icon="/images/tree/song.png">
+ <h:outputText value="#{item.title}" />
+ </rich:treeNode>
+ </rich:tree>
+</h:form>
+...</programlisting>
+ <para>This is a result: </para>
+ <figure>
+ <title>The <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tree2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>In the example above, when each node of data model is processed, data
+ contained in the <code>"data"</code> property of
+ <property>"TreeNode"</property> interface
+ is assigned to a request scope variable, which name is defined with <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute. The value of the <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute is evaluated in correspondence with the data
+ assigned to the <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute. The corresponding <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> component (with a value of <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute equal to a value of <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis>) is used for the node representation. For example, during
+ data model processing, an object with a name "Chris
+ Rea" was inserted in the <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute. Then the value of <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute was evaluated as
+ <code>"artist"</code>. Thus, for the node
+ representation the <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> with <emphasis>
+ <property>"type"</property>
+ </emphasis> equal to "<code>artist</code>" was
+ used.</para>
+ <para>You can also assign an EL-expression as value of the <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute. See an example below: </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA">
+nodeFace="#{data.name != 'param-value' ? 'artist' : 'album'}"
+ </programlisting>
+ <para>There are some essential points in a <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute usage: you need to define notions for
+ <property>typeless</property> and a
+ <property>default</property> nodes. </para>
+
+ <para>The <property>typeless node</property> is the first <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> component (from all children nodes nested to the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component) with not defined <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute and defined <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute. The <property>typeless node</property> is used
+ for representation when <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute is null.</para>
+ <para>
+ <property>Default node</property> has the following interior
+ presentation:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<h:outputText value="#{varAttributeName}">
+...</programlisting>
+ <para>
+ <emphasis>
+ <property>"varAttributeName"</property>
+ </emphasis> is a value for <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute. </para>
+ <para>
+ <property>Default node</property> is used in the following cases:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute is defined, but its value
+ isn't equal to any <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute value from all children
+ nodes;</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute is defined and its value is
+ equal to a value of some <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute from all children nodes, but
+ the value of <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute for this node is
+ <property>"false"</property>.</para>
+ </listitem>
+ </itemizedlist>
+ <para>There is also one thing that has to be remembered using <emphasis>
+ <property>"type"</property>
+ </emphasis> and <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attributes: it's possible to define several
+ <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> components with equal values of <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute and different values of <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute. It provides a possibility to define different
+ representation styles for the same node types. In the example with
+ artists and their albums (see <link linkend="example">above</link>)
+ it's possible to represent albums that are available for sale
+ and albums that are not available. Please study the example
+ below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
+ ...
+ <rich:treeNode type="album" iconLeaf="/images/tree/album.gif" icon="/images/tree/album.gif"
+ rendered="#{item.exist}">
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ <rich:treeNode type="album" iconLeaf="/images/tree/album_absent.gif" icon="/images/tree/album_absent.gif"
+ rendered="#{not item.exist}">
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ ...
+ </rich:tree>
+</h:form>
+...</programlisting>
+ <para>This is a result of the code: </para>
+ <figure>
+ <title>The <emphasis>
+ <property>"type"</property>
+ </emphasis> and the <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attributes usage</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tree4.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>In the example the <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> components has equal values of the <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute. Depending on value of the <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute the corresponding <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> component is selected for node representation. If an album
+ is available for sale the value of the <emphasis>
+ <property>"rendered"</property>
+ </emphasis> for the first <emphasis>
+ <property><rich:treeNode></property>
+ </emphasis> component is "true", for the second one
+ is "false". Thus, the first <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> is selected for node representation. </para>
+ <para>Tree node can be run in tree modes. Modes can be specified with <emphasis>
+ <property>"switchType"</property>
+ </emphasis> attribute for<emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>Ajax</code> (default value) - Ajax submission is
+ used performing the functionality. Note, that for
+ collapse/expand operations an Ajax request is sent
+ to the server and it can cause a short
+ delay.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Server</code> - regular form of submission
+ request is used.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>Client</code> – all operations are performed
+ totally on the client; no interaction with a
+ server is involved. Full page content is reloaded
+ after every action.</para>
+ </listitem>
+ </itemizedlist>
+ <para> The <emphasis>
+ <property>"icon"</property>
+ </emphasis>, <emphasis>
+ <property>"iconCollapsed"</property>
+ </emphasis>, <emphasis>
+ <property>"iconExpanded"</property>
+ </emphasis>, <emphasis>
+ <property>"iconLeaf"</property>
+ </emphasis> attributes set the icons' images for the
+ component. You can also define icons using facets with the same names.
+ If the facets are defined, the corresponding attributes are ignored
+ and facets' content is used as icons. By default the width of
+ a rendered facet area is 16px. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:tree value="#{library.data}" var="item">
+ ...
+ <f:facet name="icon">
+ <h:graphicImage value="/images/tree/singer.png "/>
+ </f:facet>
+ <f:facet name="iconCollapsed">
+ <h:graphicImage value="/images/tree/singer.png" />
+ </f:facet>
+ <f:facet name="iconExpanded">
+ <h:graphicImage value="/images/tree/singer.png" />
+ </f:facet>
+ <f:facet name="iconLeaf">
+ <h:graphicImage value="/images/tree/song.png" />
+ </f:facet>
+ ...
+</rich:tree>
+...</programlisting>
+
+ <para> The <emphasis role="bold">
+ <property><rich: tree></property>
+ </emphasis> component can be used together with <emphasis role="bold">
+ <property><rich: treeNodeAdaptor></property>
+ </emphasis>. In this case there is no need to specify the attributes <emphasis>
+ <property>"value"</property>
+ </emphasis> and <emphasis>
+ <property>"var"</property>
+ </emphasis>. Besides, visual representation shouldn't be
+ defined right in the <property>tree</property>. In this case a
+ <emphasis role="bold">
+ <property><rich: tree></property>
+ </emphasis> tag is applied mainly for defining common attributes such
+ as <emphasis>
+ <property>"ajaxSubmitSelection"</property>
+ </emphasis> etc. </para>
+ <para> Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find in the <link linkend="process"> "Decide what to
+ process" </link> guide section. </para>
+ <!--<tip>
+ <title>Tip:</title>
+ <para>
+ <emphasis>
+ <property>"rowKeyConverter"</property>
+ </emphasis> support for the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> is pending! </para>
+ </tip>-->
+
+ <para>As it's mentioned before, the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component uses a data model to represent the tree-like
+ nodes structure on the page. To identify a particular node during a
+ client request, the model provides a set of unique keys for tree
+ nodes. The <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> can use strings as keys values
+ which may contain special characters not allowed by browsers, such as
+ the left angle bracket (<), ampersand (&), ant etc. Thus, to
+ have a possibility to use unallowed characters in the
+ <property>tree</property> nodes keys, the following converters
+ are provided: </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>org.richfaces.TreeRowKeyConverter</code> that is
+ used for <property>"TreeNode"</property> based trees.
+ The key should be of a
+ <code>java.lang.String</code> type.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>org.richfaces.TreeAdaptorRowKeyConverter</code>
+ that is used for adaptor-based trees (see
+ <link linkend="rich_treeNodesAdaptor">
+ <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis>
+ </link>, <link linkend="rich_recursiveTreeNodesAdaptor">
+ <emphasis role="bold">
+ <property><rich:recursiveTreeNodesAdaptor></property>
+ </emphasis>
+ </link>). The key should be of a
+ <code>java.lang.String</code> type.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>org.richfaces.TreeAdaptorIntegerRowKeyConverter</code>
+ which is provided for adaptor-based trees. The key
+ should be of a <code>java.lang.Integer</code>
+ type.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The converters can be extended in order to have a possibility for
+ implementing custom converters.</para>
+ <para>To apply a converter to the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component, you should define it as a value of the <emphasis>
+ <property>"rowKeyConverter"</property>
+ </emphasis> attribute.</para>
+
+ <para>Have a look at the example of a tree which contains the RichFaces
+ components as its nodes and the components attributes as the nodes
+ child elements. As the components have unallowed characters (<
+ and >) in their names, the <code>org.richfaces.TreeRowKeyConverter</code> is used here.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<rich:tree value="#{treeBean.data}" var="node" switchType="ajax" rowKeyConverter="org.richfaces.TreeRowKeyConverter">
+ <rich:treeNode ajaxSingle="true">
+ <h:outputText value="#{node}"/>
+ </rich:treeNode>
+</rich:tree>
+...</programlisting>
+
+ <para>In the example the tree uses the following data model:</para>
+
+ <programlisting role="JAVA">...
+String[ ] components = {"< a4j:ajaxListener >", "< a4j:keepAlive >", "< a4j:actionparam >" };
+String[ ][ ] attributes = {{"type"},
+ {"ajaxOnly", "beanName"},
+ {"actionListener", "assignTo", "binding", "converter", "id", "name", "noEscape", "value"}};
+
+data = new TreeNodeImpl<String>();
+
+for (int i = 0; i < components.length; i++) {
+ TreeNode<String> child = new TreeNodeImpl<String>();
+ child.setData(components[i]);
+ data.addChild(components[i], child);
+
+ for (int j = 0; j < attributes[i].length; j++) {
+ TreeNode<String> grandChild = new TreeNodeImpl<String>();
+ grandChild.setData(attributes[i][j]);
+ child.addChild(attributes[i][j], grandChild);
+ }
+}
+...</programlisting>
+
+ </section>
+ <section id="tsebro" role="updated">
+ <title>Built-in Drag and Drop</title>
+ <para>Words "built-in" in this context mean, that <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component has its own attributes, that provide
+ <property>drag-and-drop</property> capability. These
+ attributes can be divided into two groups: those ones which provide
+ <property>drag</property> and those which provide
+ <property>drop</property> operations (see the tables below). </para>
+
+ <table>
+ <title>Drag group</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Attribute Name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>dragValue</entry>
+ <entry>Element value drag passed into processing
+ after a Drop event</entry>
+ </row>
+ <row>
+ <entry>dragListener</entry>
+ <entry>A listener that processes a Drag
+ event</entry>
+ </row>
+ <row>
+ <entry>dragIndicator</entry>
+ <entry>Id of a component that is used as a drag
+ pointer during the drag operation</entry>
+ </row>
+ <row>
+ <entry>dragType</entry>
+ <entry>Defines a drag zone type that is used for
+ definition of a dragged element, which can be
+ accepted by a drop zone</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <table>
+ <title>Drop group</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Attribute Name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>dropValue</entry>
+ <entry>Element value drop passed into processing
+ after Drop events </entry>
+ </row>
+ <row>
+ <entry>dropListener</entry>
+ <entry>A listener that processes a Drop event.
+ </entry>
+ </row>
+ <row>
+ <entry>acceptedTypes</entry>
+ <entry>Drag zone names are allowed to be processed
+ with a Drop zone</entry>
+ </row>
+ <row>
+ <entry>typeMapping</entry>
+ <entry>Drag zones names mapping on the
+ corresponding drop zone parameters</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Consider <property>drag-and-drop</property> inside a tree. All zones,
+ which are assumed to be dragged, must be marked. In terms of <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> these zones completely correspond to tree nodes. So, all
+ dragging nodes should be marked with <emphasis>
+ <property>"dragType"</property>
+ </emphasis> attribute. Then, to mark zone(-s), where the dragging node
+ could be dropped, pass the type of dragging node to the <emphasis>
+ <property>"acceptedTypes"</property>
+ </emphasis> attribute of the drop zone. It would be good to itemize,
+ that each tree node in the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component’s structure has its own
+ <emphasis>key</emphasis>. Depending on how the component is used,
+ these keys can be generated by the component itself or can be taken
+ from the component’s data model. Keys help to identify each node in a
+ tree; key is what exactly being passing from one node to another in
+ <property>drag-and-drop</property> operations. Finally, the
+ method binding, that will process <property>drag-and-drop</property>
+ operation, should be pointed via <emphasis>
+ <property>"dropListener"</property>
+ </emphasis> attribute of the <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>. </para>
+ <para> Chapters "<link linkend="ch1">6.40
+ <dragIndicator></link>" and
+ "<link linkend="dndParam">6.39
+ <dndParam></link>" describes how to
+ apply visual element, that show some additional information (e.g.
+ dragging item name) while operating with
+ <property>drag-and-drop</property>. </para>
+ <para> Page code, that describes a tree with built in
+ <property>drag-and-drop</property> in the way it is
+ considered, is shown below. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML">...
+<h:form>
+ <rich:tree style="width:300px" value="#{libraryAjaxTree.data}" nodeFace="#{item.type}" var="item" dragIndicator=":treeDragIndicator" dropListener="#{libraryAjaxTree.processDrop}">
+ <rich:treeNode type="artist" icon="/images/tree/group.png" iconLeaf="/images/tree/group.png" acceptedTypes="album">
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ <rich:treeNode type="album" icon="/images/tree/cd.png" iconLeaf="/images/tree/cd.png" dragType="album" acceptedTypes="song">
+ <h:outputText value="#{item.title}" />
+ <rich:dndParam name="label" type="drag" value="Album: #{item.title}" />
+ </rich:treeNode>
+ <rich:treeNode type="song" icon="/images/tree/music.png" iconLeaf="/images/tree/music.png" dragType="song">
+ <h:outputText value="#{item.title}" />
+ <rich:dndParam name="label" type="drag" value="Song: #{item.title}" />
+ </rich:treeNode>
+ </rich:tree>
+</h:form>
+...</programlisting>
+
+ <para>This code renders following tree:</para>
+
+ <figure>
+ <title>Drag-and-drop operations</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/tree5.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ </section>
+ <section>
+ <title>Events Handling</title>
+ <para>Listeners classes that process events on the server side are defined with
+ the help of:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <property>changeExpandListener</property> processes
+ expand/collapse event of a
+ <property>treeNode</property>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>dropListener</property> processes a Drop
+ event</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>dragListener</property> processes a Drag
+ event</para>
+ </listitem>
+ <listitem>
+ <para>
+ <property>nodeSelectListener</property> is called
+ during request sending on a node selecting event
+ (if request sending on this event is
+ defined)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Listener methods can be defined using the <link linkend="treeNodeKF">following attributes</link> or using nested tags.</para>
+ <para>Client event attributes are:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onexpand"</property>
+ </emphasis> is a script expression to invoke when
+ a node is expanded</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"oncollapse"</property>
+ </emphasis> is a script expression to invoke when
+ a node is collapsed</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragexit"</property>
+ </emphasis> is a script expression to invoke when
+ an element passing out from a tree zone</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragstart"</property>
+ </emphasis> is a script expression to invoke when
+ dragging starts</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragend"</property>
+ </emphasis> is a script expression to invoke when
+ dragging ends (a drop event)</para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"ondragenter"</property>
+ </emphasis>is a script expression to invoke when a
+ dragged element appears on a tree</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>They can be used to add some JavaScript effects.</para>
+
+ <para> Standart HTML event attributes like<emphasis>
+ <property>"onclick"</property>
+ </emphasis>, <emphasis>
+ <property>"onmousedown"</property>
+ </emphasis>, <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis> etc. can be also used. Event handlers of a <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> component capture events occured on any
+ <property>tree</property> part. But event handlers of
+ <property>treeNode</property> capture events occured on
+ <property>treeNode</property> only, except for children
+ events. </para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/tree.html">Table of
+ <rich:tree>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.Tree</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlTree</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.Tree</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.TreeRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.TreeTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>icon</entry>
+ <entry>Redefines the icon for node. Related
+ attribute is "icon"</entry>
+ </row>
+ <row>
+ <entry>iconCollapsed</entry>
+ <entry>Redefines the icon for collapsed node.
+ Related attribute is
+ "iconCollapsed"</entry>
+ </row>
+ <row>
+ <entry>iconExpanded</entry>
+ <entry>Redefines the icon for expanded node.
+ Related attribute is
+ "iconExpanded"</entry>
+ </row>
+ <row>
+ <entry>iconLeaf</entry>
+ <entry>Redefines the icon for component leaves.
+ Related attribute is
+ "iconLeaf"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table id="tab_cn7">
+ <title>Classes names that define a component appearance</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tree</entry>
+ <entry>Defines styles for a wrapper
+ <div> element of a tree</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/tree.jsf?c=tree">On the component LiveDemo page</ulink> you can see the
+ example of <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis> usage and sources for the given example. </para>
+ <para>How to Expand/Collapse Tree Nodes from code, see in this<ulink url="http://labs.jboss.com/wiki/ExpandCollapseTreeNodes">wiki article</ulink>. </para>
+ </section>
+</section>
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNode.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNode.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNode.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,305 @@
+<section role="NotInToc" id="rich_treeNode">
+ <title>
+ <
+ rich:treeNode
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.0.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> component is designed
+ for creating sets of tree elements within a <emphasis role="bold">
+ <property><rich:tree></property>
+ </emphasis>component.
+
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeNode_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="treeNodeKF">
+ <title>Key Features</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Possibility to assign different icon images for each node within a tree</para>
+ </listitem>
+ <listitem>
+ <para>Drag and Drop support</para>
+ </listitem>
+ <listitem>
+ <para>Look-and-Feel customization</para>
+ </listitem>
+
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para> The <emphasis>
+ <property>"icon"</property>
+ </emphasis>, <emphasis>
+ <property>"iconCollapsed"</property>
+ </emphasis>, <emphasis>
+ <property>"iconExpanded"</property>
+ </emphasis>, <emphasis>
+ <property>"iconLeaf"</property>
+ </emphasis> attributes define icons for the component. Also you can define icons using facets
+ with the same names. If the facets are defined, the corresponding attributes are ignored and
+ facets contents are used as icons. The width of a rendered facet area is 16px. </para>
+ <programlisting role="XML">...
+<rich:tree ...>
+ ...
+ <rich:treeNode ...>
+ <f:facet name="icon">
+ <outputText value="A"/>
+ </f:facet>
+ <f:facet name="iconCollapsed">
+ <outputText value="B"/>
+ </f:facet>
+ <f:facet name="iconExpanded">
+ <outputText value="C"/>
+ </f:facet>
+ <f:facet name="iconLeaf">
+ <outputText value="D"/>
+ </f:facet>
+ </rich:treeNode>
+ ...
+</rich:tree>
+...
+</programlisting>
+ <para>As it has been mentioned <link linkend="treeNode">above</link>, <emphasis role="bold">
+ <property><rich:treeNode></property>
+ </emphasis> defines a template for nodes
+ rendering in a tree. Thus, during XML document rendering (a web.xml application) as a tree,
+ the following nodes output (passed via <code>var="data"</code> on a tree) happens:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tree ... faceNode="simpleNode" ... value="#{bean.data}" var="data">
+ <rich:treeNode type="simpleNode">
+ <h:outputText value="context-param:"/>
+ <h:inputText value="#{data.name}"/>
+ </rich:treeNode>
+</rich:tree>
+...
+</programlisting>
+ <figure>
+ <title>Nodes output</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeNode2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Hence,<emphasis role="bold">
+ <property><h:outputText /></property>
+ </emphasis> tag outputs the <code>"context-param"</code> string and
+ then the <emphasis role="bold">
+ <property><h:inputText /></property>
+ </emphasis> outputs the <code>data.name</code> element of this node.
+ </para>
+ <para>Different nodes for rendering could be defined depending on some conditions on the tree
+ level. Each condition represents some rendering template. To get more information on various
+ <property>treeNodesAdaptorAdaptor</property> definition for nodes, <link linkend="tree">see the tree
+ component chapter</link>.</para>
+ <para>Switching between expanded/collapsed modes is also managed on the tree level and defined
+ in <link linkend="tree">the corresponding section</link>.</para>
+ <para>Default nodes of the tree level as well as the ones defined with the
+ <property>treeNodesAdaptorAdaptor</property> component could send Ajax requests when selected with the
+ mouse, it's managed with the <emphasis>
+ <property>"ajaxSubmitSelection"</property>
+ </emphasis> attribute (true/false).</para>
+ <para>
+ Information about the <emphasis>
+ <property>"process"</property>
+ </emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
+ </para>
+ </section>
+ <section>
+ <title>Built-in Drag and Drop</title>
+ <para>The main information on Drag and Drop operations is given in <link linkend="tree">the
+ corresponding paragraph</link> of the <property>tree</property> component chapter.
+ It's only necessary to mention that each node could also be a Drag element as well as
+ a Drop container, i.e. the container and the element have all attributes, listeners and ways
+ of behavior similar to the ones of the <emphasis role="bold">
+ <property><rich:dragSupport ></property>
+ </emphasis> and <emphasis role="bold">
+ <property><rich:dropSupport ></property>
+ </emphasis> components simultaneously.</para>
+ </section>
+ <section>
+ <title>Events Handling</title>
+ <para>Just as Drag and Drop operations it corresponds to the one described on <link linkend="tree">the tree component level</link> for a default Node.</para>
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/treeNode.html">Table of
+ <rich:treeNode>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.TreeNode</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlTreeNode</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.TreeNode</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.TreeNodeRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.TreeNodeTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Facets</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Facet name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>icon</entry>
+ <entry>Redefines the icon for node. Related attribute is "icon"</entry>
+ </row>
+ <row>
+ <entry>iconCollapsed</entry>
+ <entry>Redefines the icon for collapsed node. Related attribute is "iconCollapsed"</entry>
+ </row>
+ <row>
+ <entry>iconExpanded</entry>
+ <entry>Redefines the icon for expanded node. Related attribute is "iconExpanded"</entry>
+ </row>
+ <row>
+ <entry>iconLeaf</entry>
+ <entry>Redefines the icon for component leaves. Related attribute is "iconLeaf"</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define a node element</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-tree-node</entry>
+ <entry>Defines styles for a tree node</entry>
+ </row>
+
+ <row>
+ <entry>rich-tree-node-handle</entry>
+ <entry>Defines styles for a tree node handle</entry>
+ </row>
+
+ <row>
+ <entry>rich-tree-node-handleicon</entry>
+ <entry>Defines styles for a tree node handle icon</entry>
+ </row>
+
+ <row>
+ <entry>rich-tree-node-children</entry>
+ <entry>Defines styles for all tree node subnodes</entry>
+ </row>
+ <row>
+ <entry>rich-tree-node-text</entry>
+ <entry>Defines styles for a tree node text</entry>
+ </row>
+ <row>
+ <entry>rich-tree-node-icon</entry>
+ <entry>Defines styles for a tree node icon</entry>
+ </row>
+ <row>
+ <entry>rich-tree-h-ic-img</entry>
+ <entry>Defines styles for an image of a tree node</entry>
+ </row>
+ <row>
+ <entry>rich-tree-node-icon-leaf</entry>
+ <entry>Defines styles for a tree node icon leaf</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>Classes names that define states for a node element</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+
+ <row>
+ <entry>rich-tree-node-selected</entry>
+ <entry>Defines styles for a selected tree node </entry>
+ </row>
+ <row>
+ <entry>rich-tree-node-highlighted</entry>
+ <entry>Defines styles for a highlighted tree node </entry>
+ </row>
+
+ <row>
+ <entry>rich-tree-node-handleicon-collapsed</entry>
+ <entry>Defines styles for a collapsed tree node handleicon </entry>
+ </row>
+ <row>
+ <entry>rich-tree-node-handleicon-expanded</entry>
+ <entry>Defines styles for a expanded tree node handleicon</entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>How to Expand/Collapse Tree Nodes from code see in this<ulink url="http://labs.jboss.com/wiki/ExpandCollapsetreeNodesAdaptor">wiki article</ulink>. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNodesAdaptor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNodesAdaptor.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_treeNodesAdaptor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,146 @@
+<section role="NotInToc" id="rich_treeNodesAdaptor">
+ <title>
+ <
+ rich:treeNodesAdaptor
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis> provides the possibility to define data models
+ and create representations for them.
+ </para>
+ <figure>
+ <title>Expanded tree with <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis>
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeNodesAdaptor_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Allows to define combined data models</para>
+ </listitem>
+ <listitem>
+ <para>Possibility to define nodes for processing via attributes</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis> component
+ has a <emphasis>
+ <property>"nodes"</property>
+ </emphasis> attribute that defines a collection of elements to iterate through.
+ </para>
+ <para>
+ Collections are allowed to include lists, arrays, maps, XML NodeList and NamedNodeMap either as a single object.
+ </para>
+ <para>
+ The <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute is used to access to the current collection element.
+ </para>
+ <para>
+ The <emphasis role="bold">
+ <property><rich:treeNodesAdaptor></property>
+ </emphasis> component can be nested without any limitations.
+ See the following example.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
+ <rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
+ <rich:treeNode>
+ <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
+ </rich:treeNode>
+ <rich:treeNodesAdaptor id="srcDir" var="srcDir" nodes="#{project.srcDirs}">
+ <rich:treeNode>
+ <h:commandLink action="#{srcDir.click}" value="Source directory: #{srcDir.name}" />
+ </rich:treeNode>
+ <rich:treeNodesAdaptor id="pkg" var="pkg" nodes="#{srcDir.packages}">
+ <rich:treeNode>
+ <h:commandLink action="#{pkg.click}" value="Package: #{pkg.name}" />
+ </rich:treeNode>
+ <rich:treeNodesAdaptor id="class" var="class" nodes="#{pkg.classes}">
+ <rich:treeNode>
+ <h:commandLink action="#{class.click}" value="Class: #{class.name}" />
+ </rich:treeNode>
+ </rich:treeNodesAdaptor>
+ </rich:treeNodesAdaptor>
+ </rich:treeNodesAdaptor>
+ </rich:treeNodesAdaptor>
+</rich:tree>
+...</programlisting>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/treeNodesAdaptor.html">Table of
+ <rich:treeNodesAdaptor>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.TreeNodesAdaptor</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>org.richfaces.component.html.HtmlTreeNodesAdaptor</entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.TreeNodesAdaptor</entry>
+ </row>
+ <!--
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.EffectRenderer</entry>
+ </row>
+ -->
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.TreeNodesAdaptorTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?...">On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold">
+ <property><rich:treeNodesAdaptor ></property>
+ </emphasis>
+ usage and sources for the given example. </para>
+ </section>
+</section>
\ No newline at end of file
Added: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_virtualEarth.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_virtualEarth.xml (rev 0)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/rich_virtualEarth.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -0,0 +1,266 @@
+<section role="NotInToc" id="rich_virtualEarth">
+ <title>
+ <
+ rich:virtualEarth
+ >
+ <emphasis role="since">
+ <superscript> available since <emphasis role="version">3.1.0</emphasis>
+ </superscript>
+ </emphasis>
+ </title>
+ <section>
+ <title>Description</title>
+ <para>The component presents the Microsoft <property>Virtual Earth map</property> in the JSF applications.</para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:virtualEarth></property>
+ </emphasis> component</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/virtualEarth_init.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>
+ <para>Presents the Microsoft <property>Virtual Earth map</property> functionality</para>
+ </listitem>
+ <listitem>
+ <para>Highly customizable via attributes</para>
+ </listitem>
+ <listitem>
+ <para>No developers JavaScript writing is needed to use it on a pages</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section>
+ <title>Details of Usage</title>
+
+ <para>
+ Here are the main settings of initial rendering performed
+ with a component
+ <property>map</property>
+ that are accessible with the following attributes:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"zoom"</property>
+ </emphasis>
+ defines an approximation size (boundary values 1-18)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"lat"</property>
+ </emphasis>
+ specifies an initial latitude coordinate in degrees,
+ as a number between -90 and +90
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"lng"</property>
+ </emphasis>
+ specifies an initial longitude coordinate in
+ degrees, as a number between -180 and +180
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"dashboardSize"</property>
+ </emphasis>
+ specifies a type of a rendered map (Normal, Small,
+ Tiny)
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ For example, the city of Paris is shown after rendering with
+ the following initial settings:
+ <code>lat = "48.833"</code>
+ ,
+ <code>lng = "2.40"</code>
+ and
+ <code>zoom = "11"</code>
+ .
+ </para>
+ <figure>
+ <title>
+ <emphasis role="bold">
+ <property><rich:virtualEarth></property>
+ </emphasis>
+ initial rendering
+ </title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/virtualEarth2.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>Code for this example is placed below:</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML">...
+<rich:virtualEarth style="width:800px;" id="vm" lat="48.833" lng="2.40"
+ dashboardSize="Normal" zoom="11" mapStyle="Hybrid" var="map" />
+...
+</programlisting>
+
+ <para>
+ To set all these parameters and perform some activity (Zoom
+ In/Out etc.) is possible with your JavaScript, i.e. declare
+ a name of an object on a
+ <property>map</property>
+ in the
+ <emphasis>
+ <property>"var"</property>
+ </emphasis>
+ attribute and then call the object directly with API
+ <emphasis>
+ <property>Microsoft Virtual Earth map</property>
+ .
+ </emphasis>
+ </para>
+ <para>
+ For example, to approximate a map for
+ <code>var = "map"</code>
+ declared inside the component, call
+ <code>map.ZoomIn()</code>
+ on an event.
+ </para>
+ <para>
+ Moreover, to add e.g. some JavaScript effects, events
+ defined on it are used.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onclick"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>
+ <property>"onmouseout"</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>etc.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>
+ Virtual Earth does not support XHTML format of the page.
+ Thus, if you use Facelets and JSF 1.2, do not forget to
+ put the following tags somewhere on the page:
+ </para>
+ <programlisting role="XML">...
+<f:view contentType="text/html">...</f:view>
+...
+</programlisting>
+ </note>
+
+ </section>
+ <section>
+ <title>Reference Data</title>
+ <para>
+ <ulink url="&tlddoc;rich/virtualEarth.html">Table of
+ <rich:virtualEarth>
+ attributes</ulink>.
+ </para>
+ <table>
+ <title>Component Identification Parameters</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>component-type</entry>
+ <entry>org.richfaces.VirtualEarth</entry>
+ </row>
+ <row>
+ <entry>component-class</entry>
+ <entry>
+ org.richfaces.component.html.HtmlVirtualEarth
+ </entry>
+ </row>
+ <row>
+ <entry>component-family</entry>
+ <entry>org.richfaces.VirtualEarth</entry>
+ </row>
+ <row>
+ <entry>renderer-type</entry>
+ <entry>org.richfaces.VirtualEarthRenderer</entry>
+ </row>
+ <row>
+ <entry>tag-class</entry>
+ <entry>org.richfaces.taglib.VirtualEarthTag</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <table>
+ <title>
+ Classes names that define a component appearance
+ </title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class name</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>rich-virtualEarth</entry>
+ <entry>
+ Defines styles for a wrapper <div>
+ element of a component
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ You can find all necessary information about style classes redefinition in
+ <link linkend="customstyles">Definition of Custom Style Classes</link>
+ section.
+ </section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para>
+ <ulink url="http://msdn2.microsoft.com/en-us/library/bb429619.aspx">
+ Here
+ </ulink>
+ you can found additional information about Microsoft
+ <property>Virtual Earth map</property>.
+ </para>
+ <para>
+ Some additional information about usage of component can be found
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/virtualEarth.jsf?c=vi...">on its LiveDemo page</ulink>.</para>
+ </section>
+</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:scrollableDataTable</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:scrollableDataTable></property></emphasis> component is used for the table-like component creation.
- The component just adds the set of additional features described below in comparison with the standard table.
- </para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:scrollableDataTable></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/scrollableDataTable_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Variable content of the table cells</para></listitem>
- <listitem><para>Dynamically fetching the rows from the server when the table is scrolled up and down</para></listitem>
- <listitem><para>Resizing columns by mouse dragging the column bar</para></listitem>
- <listitem><para>Sorting column by clicking the header</para></listitem>
- <listitem><para>Fixed one or more left columns when table is scrolled horizontally</para></listitem>
- <listitem><para>One and multi-selection rows mode</para></listitem>
- <listitem><para>Built-it drag-n-drop support</para></listitem>
- <listitem><para><link linkend="sort">Sorting column values</link></para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,798 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:scrollableDataTable</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.ScrollableDataTable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlScrollableDataTable</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.ScrollableDataTable</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.ScrollableDataTableRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ScrollableDataTableTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:scrollableDataTable value="#{dataTableScrollerBean.allCars}" var="category">
- <!--Set of columns and header/footer facets-->
-</rich:scrollableDataTable>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlScrollableDataTable;
-...
-HtmlScrollableDataTable myScrollableDataTable = new HtmlScrollableDataTable();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> The component represents on a page as a scrollable table with some fixed
- (non-scrollable) rows ( with header and footer) and columns. Like
- other tables <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> also has optional footer and header that could be
- implemented using the corresponding facets. Columns of the table are
- optionally resizable. Resizing is available using "drag and drop" of
- the column vertical borders. <!--There is possibility to expand or
- collapse the columns through JS API on the client side. -->You can define
- the number of the fixed columns from the left side using attribute <emphasis>
- <property>"frozenColCount"</property>
- </emphasis> that is not scrolled via horizontal scroll. </para>
- <para> There is possibility to increase component performance using attribute <emphasis>
- <property>"hideWhenScrolling"</property>
- </emphasis>. If attribute value is "true" data is
- hidden during scrolling. </para>
-
- <para> It's possible to select the whole row with onclick on the row or
- some set of rows. Selection is optional and availability of such
- feature is defined on the component. There are two ways to select a
- few rows: </para> <itemizedlist>
- <listitem>
- <para>Just clicking the columns one by one.</para>
- </listitem>
- <listitem>
- <para>Clicking some row with the SHIFT button
- hold. In this case all the rows starting
- from last selected up to clicked should
- be selected.</para>
- </listitem>
- </itemizedlist>
-
-
- <!--para> The columns provides the possibility of expanding/collapsing on the
- client side through the next JS API:</para> <itemizedlist>
- <listitem>
- <para><code>collapse(columnId)</code> - Performs
- the collapse action for the column with
- the corresponding id</para>
- </listitem>
- </itemizedlist-->
- <para> It's possible to sort the table content after
- clicks on the header. The feature is optional (to disable it, use attribute sortable on rich:column ). Every column should be
- pointed to the comparator method that is used for sorting the table.
- In case the <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> is already sorted by some column and the header of this
- column has been clicked again - the sorting is reversed. </para>
- <para>After sorting selection that was made before is reset</para>
-
- <para>
- <emphasis role="bold">The typical variant of using:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:scrollableDataTable value="#{modelBuilder.model}" var="issues"
- frozenColCount="1"
- first="0"
- rows="40"
- width="300px"
- height="396px">
- <rich:column width="100px">
- <f:facet name="header" >
- <h:outputText value="State"/>
- </f:facet>
- <h:outputText value="#{issues.cell1}"/>
- <f:facet name="footer">
- <h:outputText value="State"/>
- </f:facet>
- </rich:column>
- <!--Set of columns and header/footer facets-->
-</rich:scrollableDataTable>
-...
-]]></programlisting>
-
- <para>The <emphasis>
- <property>"selection"</property>
- </emphasis> attribute allows to get the row data when using
- <property>one and multi-selection rows mode</property>.</para>
- <para>This attribute is a reference to object to the instance of
-
- <ulink url="&apidoc_framework;/org/richfaces/model/selection/Selection.html"> <code>org.richfaces.model.selection.Selection</code></ulink>.
- interface
-
-
- interface, containing current collection of objects selected by you.</para>
- <para>In the following example when you submit the form, current collection of
- the selected objects is placed in the object's property. Then
- on complete action the <emphasis role="bold">
- <property><rich:modalPanel></property>
- </emphasis> with selected data is shown.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:spacer height="30" />
- <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="200px"
- width="300px" id="carList" rows="40" columnClasses="col"
- value="#{dataTableScrollerBean.allCars}" var="category" sortMode="single"
- selection="#{dataTableScrollerBean.selection}">
- <rich:column id="make">
- <f:facet name="header"><h:outputText styleClass="headerText" value="Make" /></f:facet>
- <h:outputText value="#{category.make}" />
- </rich:column>
- <rich:column id="model">
- <f:facet name="header"><h:outputText styleClass="headerText" value="Model" /></f:facet>
- <h:outputText value="#{category.model}" />
- </rich:column>
- <rich:column id="price">
- <f:facet name="header"><h:outputText styleClass="headerText" value="Price" /></f:facet>
- <h:outputText value="#{category.price}" />
- </rich:column>
- </rich:scrollableDataTable>
- <rich:spacer height="20px"/>
- <a4j:commandButton value="Show Current Selection" reRender="table"
- action="#{dataTableScrollerBean.takeSelection}"
- oncomplete="javascript:Richfaces.showModalPanel('panel');"/>
-</h:form>
-<rich:modalPanel id="panel" autosized="true">
- <f:facet name="header">
- <h:outputText value="Selected Rows"/>
- </f:facet>
- <f:facet name="controls">
- <span style="cursor:pointer" onclick="javascript:Richfaces.hideModalPanel('panel')">X</span>
- </f:facet>
- <rich:dataTable value="#{dataTableScrollerBean.selectedCars}" var="sel" id="table">
- <rich:column>
- <f:facet name="header"><h:outputText value="Make" /></f:facet>
- <h:outputText value="#{sel.make}" />
- </rich:column>
- <rich:column id="model">
- <f:facet name="header"><h:outputText value="Model" /></f:facet>
- <h:outputText value="#{sel.model}" />
- </rich:column>
- <rich:column id="price">
- <f:facet name="header"><h:outputText value="Price" /></f:facet>
- <h:outputText value="#{sel.price}" />
- </rich:column>
- </rich:dataTable>
-</rich:modalPanel>
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title>The <emphasis>
- <property>"selection"</property>
- </emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/scrollableDataTable2.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
- <para><ulink
- url="http://wiki.jboss.org/wiki/RichFacesCookbook/ScrollableDataTableSelection..."
- >On RichFaces LiveDemo page </ulink> you can find fuller example of use of this
- attribute with example bean.</para>
- <para> The <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> component has the following extra attributes for event
- processing on the client:</para> <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"onselectionchange"</property>
- </emphasis>
- </para>
- </listitem>
- <!-- <listitem>
- <para>
- <emphasis>
- <property>"oncomplete"</property>
- </emphasis>
- </para>
- </listitem> -->
- <listitem>
- <para>
- <emphasis>
- <property>"onRowClick"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onRowDblClick"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onRowMouseUp"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onRowMouseDown"</property>
- </emphasis>
- </para>
- </listitem>
- </itemizedlist>
-
- <para>From version 3.3.1 it becomes possible to switch selection mode with selectionMode attribute</para>
-
- <para>Information about sorting and filtering you can find in RichFaces Developer guide section about<link linkend="sort"
- >sorting</link>.</para>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find in the
- <link linkend="process"> "Decide what to process" </link> guide section. </para>
- <note>
- <title>Note:</title>
- <para>
- If you want to use specific features such as pagination on database level you should pass to the
- <emphasis><property>"value"</property></emphasis> of the
- <emphasis role="bold"><property><rich:scrollableDataTable></property></emphasis> component
- an object which class extends <code>org.richfaces.model.ScrollableTableDataModel</code>.
- </para>
- </note>
- </section>
-
-
- <!--section>
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>collapse(columnId)</entry>
-
- <entry>Performs a collapse action for
- column with corresponding
- Id</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section-->
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters for all table</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-width</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters for header rows and cells</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
-
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-bottom-width</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>tableBorderWidth</entry>
- <entry>border-right-width</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters for footer rows and cells</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableSubfooterBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
-
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters for column cells </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- <row>
- <entry>tableBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters for active rows</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters for selected rows</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
-
- <figure>
- <title>Classes names</title>
-
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/scrollableDataTable_cn.png"
- scale="90"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="scrdattableC">
- <title>Classes names that define a component appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-sdt</entry>
-
- <entry>Defines styles for a component
- appearance</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define footer and header elements</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>rich-sdt-header-cell</entry>
-
- <entry>Defines styles for header
- cells</entry>
- </row>
-
- <row>
- <entry>rich-sdt-header-row</entry>
-
- <entry>Defines styles for a header
- raw</entry>
- </row>
-
- <row>
- <entry>rich-sdt-column-cell</entry>
-
- <entry>Defines styles for column
- cells</entry>
- </row>
- <row>
- <entry>rich-sdt-footer-cell</entry>
-
- <entry>Defines styles for footer
- cells</entry>
- </row>
-
- <row>
- <entry>rich-sdt-footer-row</entry>
-
- <entry>Defines styles for a footer
- raw</entry>
- </row>
- <row>
- <entry>rich-sdt-hsep</entry>
-
- <entry>Defines styles for header
- separators</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define different states</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>rich-sdt-row-active</entry>
-
- <entry>Defines styles for an active
- row</entry>
- </row>
-
- <row>
- <entry>rich-sdt-row-selected</entry>
-
- <entry>Defines styles for a selected
- row</entry>
- </row>
-
- <row>
- <entry>rich-sdt-column-sort-up</entry>
-
- <entry>Defines styles for ascending
- sorted column</entry>
- </row>
-
- <row>
- <entry>rich-sdt-column-sort-down</entry>
-
- <entry>Defines styles for descending
- sorted column</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="scrdattableC"> above</link>) and define
- necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-sdt-header-cell{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/scrollableDataTable_pc.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for header cell was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis>
- <property>styleClass</property> attributes. An example is placed
- below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#ffead9;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"selectedClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:scrollableDataTable ... selectedClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata
- fileref="images/scrollableDataTable_oc.png"
- />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color for selected
- item was changed.</para>
-
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/scrollableDataTable.j..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:scrollableDataTable></property>
- </emphasis> usage. </para>
- <para>Cookbook article <ulink url="http://www.jboss.org/community/docs/DOC-11857">
- Scrollable dataTable Selection Usage
- </ulink> provides a simple example of how you can use the "selection" attribute in order to get row selection in rich:scrollableDataTable. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:separator</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A horizontal line to use as a <property>separator</property> in a layout. The line type
- can be customized with the <code>"lineType"</code> parameter.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:separator></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/separator_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Leveraging layout elements creation</para></listitem>
- </itemizedlist>
-</section>
-</section>
-
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/separator.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,212 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <sectioninfo>
- <keywordset>
- <keyword>horizontal line</keyword>
- <keyword>rich:separator</keyword>
- <keyword>HtmlSeparator</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.separator</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlSeparator</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.separator</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.SeparatorRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.SeparatorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:separator/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlSeparator;
-...
-HtmlSeparator mySeparator = new HtmlSeparator();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para><emphasis role="bold"><property><rich:separator></property></emphasis> is a simple layout component,
- which represents a <property>separator</property> stylized as a skin.
- Thus, the main attributes that define its style are <emphasis> <property>"style"</property>
- </emphasis> and <emphasis><property>"styleClass".</property>
- </emphasis> In addition there are <emphasis><property>"width"</property></emphasis> and <emphasis><property>"height"</property>
- </emphasis> attributes that should be specified in pixels.
- On the HTML page the component is transposed into HTML <emphasis role="bold"><property><div></property></emphasis> tag.</para>
-
- <para>The line type can be customized with the <code>"lineType"</code> parameter. For example, different line types are shown after rendering with the
- following initial settings <code>lineType="double"</code>and <code>lineType="solid"</code>.
- </para>
- <figure>
- <title>Different line types of <emphasis role="bold"><property><rich:separator></property></emphasis></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/separator2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Except style attributes, there are also event definition attributes:</para>
- <itemizedlist>
- <listitem><para> <emphasis><property>"onmouseover"</property></emphasis> </para></listitem>
- <listitem><para> <emphasis><property>"onclick"</property></emphasis> </para></listitem>
- <listitem><para> <emphasis><property>"onmouseout"</property></emphasis> </para></listitem>
- <listitem><para> etc. </para></listitem>
- </itemizedlist>
-
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis></para>
-
- <para>To redefine the appearance of all <emphasis role="bold">
- <property><rich:separator></property>
- </emphasis> components at once, you should add to your style sheets the <emphasis>
- <property>style class</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:separator></property>
- </emphasis> component.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="sepC">
- <title>Classes names that define a component appearance</title>
-
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>rich-separator</entry>
-
- <entry>Defines styles for a component appearance</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:separator></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="sepC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-separator{
- background-color:#ff7700;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/separator_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example background color for separator was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:separator></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:separator></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#ffead9;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:separator></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:separator ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and styleClass attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/separator_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,background color for separator was changed.</para>
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/separator.jsf?c=separ..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:separator></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:simpleTogglePanel</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A collapsible panel, which content shows/hides after activating a header control.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:simpleTogglePanel></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/simpleTogglePanel_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Support for any content inside</para></listitem>
- <listitem><para>Collapsing expanding content</para></listitem>
- <listitem><para>Three modes of collapsing/expanding</para>
- <itemizedlist>
- <listitem><para><code>Server</code></para></listitem>
- <listitem><para><code>Client</code></para></listitem>
- <listitem><para><code>Ajax</code></para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/simpleTogglePanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,434 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>panel</keyword>
- <keyword>rich:simpleTogglePanel</keyword>
- <keyword>HtmlSimpleTogglePanel</keyword>
- <keyword>switch</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.SimpleTogglePanel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlSimpleTogglePanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.SimpleTogglePanel</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.SimpleTogglePanelRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.SimpleTogglePanelTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:simpleTogglePanel>
- ...
-</rich:simpleTogglePanel>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlSimpleTogglePanel;
-...
-HtmlSimpleTogglePanel myPanel = new HtmlSimpleTogglePanel();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The component is a simplified version of <property>toggle panel</property> that initially
- has a defined layout as a panel with a header playing a role of a mode switching control. On a
- component header element, it's possible to define a label using an attribute with the
- same name.</para>
-
- <para>Switching mode could be defined with the <emphasis>
- <property>"switchType"</property>
- </emphasis> attribute with three possible parameters.</para>
- <itemizedlist>
- <listitem><para> <code>Server</code> (DEFAULT)</para><para>The common submission is performed around
- <property>simpleTogglePanel</property> and a page is completely rendered on a called
- panel. Only one at a time panel is uploaded onto the client side.</para>
- </listitem>
- <listitem><para><code> Ajax</code></para><para>AJAX form submission is performed around the panel, content of the called
- panel is uploaded on Ajax request and additionally specified elements in the <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute are rendered. Only one at a time panel is uploaded on the client
- side.</para>
- </listitem>
- <listitem><para><code>Client</code></para> <para> All panels are uploaded on the client side. Switching from the active
- to the hidden panel is performed with client JavaScript.</para>
- </listitem>
- </itemizedlist>
- <para>The <emphasis role="bold"
- ><property><rich:simpleTogglePanel></property></emphasis>component also has an <emphasis>
- <property>"opened"</property>
- </emphasis> attribute responsible for keeping a panel state. It gives an
- opportunity to manage state of the component from a model.
- If the value of this attribute is"true" the component is expanded.
- </para>
-
- <!--SIMPLE EXAMPLE NEEDED -->
-
- <itemizedlist>
- <listitem><para> <emphasis><property>"onmouseover "</property></emphasis></para></listitem>
- <listitem><para> <emphasis><property>"onclick "</property></emphasis></para></listitem>
- <listitem><para> <emphasis><property>"onmouseout "</property></emphasis></para></listitem>
- <listitem><para> etc. </para></listitem>
- </itemizedlist>
- <figure>
- <title><emphasis role="bold"><property><rich:simpleTogglePanel></property></emphasis> states</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/simpleTogglePanel2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- <para>
- With help of
- <emphasis>
- <property>
- "openMarker"
- </property>
- </emphasis>
- and
- <emphasis>
- <property>
- "closeMarker"
- </property>
- </emphasis> facets you can set toggle icon for
- <property>
- simpleTogglePanel
- </property>.
- </para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
- </para>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>openMarker</entry>
- <entry>Redefines the icon for expanding the panel</entry>
- </row>
- <row>
- <entry>closeMarker</entry>
- <entry>Redefines the icon for collapsing the panel</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:simpleTooglePanel></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:simpleTooglePanel></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters for a whole component</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters for a header element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size </entry>
- </row>
- <row>
- <entry>headTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters for a body element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>panelTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/simpleTogglePanel_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="simpTogPanC">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-stglpanel</entry>
- <entry>Defines styles for a wrapper <div> element of a component</entry>
- </row>
- <row>
- <entry>rich-stglpanel-header</entry>
- <entry>Defines styles for header element of a component</entry>
- </row>
- <row>
- <entry>rich-stglpnl-marker</entry>
- <entry>Defines styles for a wrapper <div> element of a marker</entry>
- </row>
-
- <row>
- <entry>rich-stglpanel-body</entry>
- <entry>Defines styles for a component content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Style component classes</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Class description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>styleClass</entry>
- <entry>The class defines panel common style. It's used in the outside <emphasis
- role="bold">
- <property><div></property>
- </emphasis>element</entry>
- </row>
- <row>
- <entry>bodyClass</entry>
- <entry>applicable to panels body elements</entry>
- </row>
- <row>
- <entry>headerClass</entry>
- <entry>applicable to header elements</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:simpleTogglePanel></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="simpTogPanC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-stglpanel-header{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/simpleTogglePanel_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for header was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:simpleTogglePanel></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:simpleTogglePanel></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#ffead9;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"bodyClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:simpleTogglePanel></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:simpleTogglePanel ... bodyClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/simpleTogglePanel_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,background color for body was changed.</para>
-
-
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/simpleTogglePanel.jsf..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:simpleTogglePanel></property></emphasis> usage and sources for the given example.
- </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:spacer</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para> A <property>spacer</property> that is used in layout and rendered as a transparent image.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:spacer></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/spacer_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Easily used as a transparent layout <property>spacer</property></para></listitem>
- <listitem><para>Horizontal or vertical spacing is managed by an attribute</para></listitem>
- <listitem><para>Easily customizable sizes parameters</para></listitem>
- </itemizedlist>
-</section>
-</section>
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/spacer.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,111 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>transparent image</keyword>
- <keyword>rich:spacer</keyword>
- <keyword>HtmlSpacer</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.spacer</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlSpacer</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.spacer</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.SpacerRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.SpacerTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax::</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:spacer/>
-...]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlSpacer;
-...
-HtmlSpacer mySpacer = new HtmlSpacer();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para><emphasis role="bold">
- <property><rich:spacer></property>
- </emphasis> is a simple layout component which represents a transparent
- <property>spacer</property>. Thus, the main attributes that define its style are <emphasis>
- <property>"style"</property>
- </emphasis> and <emphasis><property>"styleClass"</property>.</emphasis></para>
- <para>In addition, the attributes are responsible for the component size: <emphasis>
- <property>"width"</property>
- </emphasis> and <emphasis><property>"height"</property>.</emphasis></para>
- <para>Moreover, to add e.g. some JavaScript effects, events defined on it are used.</para>
- <itemizedlist>
- <listitem><para> <emphasis><property>"onmouseover "</property></emphasis></para></listitem>
- <listitem><para> <emphasis><property>"onclick "</property></emphasis></para></listitem>
- <listitem><para> <emphasis><property>"onmouseout "</property></emphasis></para></listitem>
- <listitem><para> etc. </para></listitem>
- </itemizedlist>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>On the component generation, the framework presents a default rich-spacer class in <emphasis>
- <property>"styleClass"</property>
- </emphasis> of a generated component, i.e. in order to redefine appearance of all
- <property>spacers</property> at once, it's necessary to redefine this class in your
- own CSS (replacing in the result properties defined in a skin with your own).</para>
- <para>To define appearance of the particular <property>spacer</property>, it's possible
- to write your own CSS classes and properties in the component style attributes
- (<emphasis><property>"style"</property>, </emphasis>
- <emphasis>
- <property>"styleClass"</property>
- </emphasis>) modifying component property.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/spacer.jsf?c=spacer"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:spacer></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,14 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<root>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:status</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><a4j:status></property></emphasis> component generates elements for displaying of the current Ajax requests status.
- There are two status modes: Ajax request is in process or finished.</para>
- </section>
-</root>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/status.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,170 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<chapter>
- <chapterinfo>
- <keywordset>
- <keyword>a4j:status</keyword>
- </keywordset>
- </chapterinfo>
- <para><table frame="all">
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Status</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>javax.faces.Panel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxStatus</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxStatusRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table></para>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>There are two ways to define elements indicating a request status :</para>
- <itemizedlist>
- <listitem><para>
- With <emphasis >
- <property>"StartText"/"StopText"</property>
- </emphasis> atributes:</para>
- <programlisting role="XML"><![CDATA[<a4j:status startText="Progress" stopText="Done" for="stat1">]]></programlisting>
- <para>In this case, text elements for the corresponding status are generated.</para>
- </listitem>
- </itemizedlist>
- <itemizedlist>
- <listitem><para>
- With <emphasis><property>"Start"</property></emphasis>/<emphasis><property>"Stop"</property></emphasis > facets definition:</para>
- <programlisting role="XML"><![CDATA[<a4j:status for="stat2">
- <f:facet name="start">
- <h:graphicImage value="ajax_process.png" />
- </f:facet>
- <f:facet name="stop">
- <h:graphicImage value="ajax_stoped.png" />
- </f:facet>
-</a4j:status>]]></programlisting>
- <para>In this case, the elements are generated for each status and correspond the facets content.</para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.ajax4jsf.component.html.HtmlAjaxStatus;
-...
-HtmlAjaxStatus myStatus = new HtmlAjaxStatus();
-...]]></programlisting>
- </section>
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>start</entry>
- <entry>Redefines the content for display on starting request</entry>
- </row>
- <row>
- <entry>stop</entry>
- <entry>Redefines the content for display on request complete</entry>
- </row>
- </tbody>
- </tgroup>
-
- </table>
- </section>
- <section>
-
-
- <title>Details of usage</title>
- <para>There are two ways for the components or containers definition, which Ajax requests status is tracked by a component.<itemizedlist>
- <listitem><para>
- Definition with the <emphasis >
- <property>"for"</property>
- </emphasis>
-attribute on the <emphasis role="bold">
- <property><a4j:status></property>
- </emphasis> component. Here <emphasis >
- <property>"for"</property>
- </emphasis>
- attribute should point at an Ajax container (<emphasis role="bold"><property><a4j:region></property></emphasis>) <property>id</property>, which requests are tracked by a component.
- </para></listitem>
- </itemizedlist><itemizedlist>
- <listitem><para>
- Definition with the <emphasis >
- <property>"status"</property>
- </emphasis>
-attribute obtained by any RichFaces library action component. The attribute should point at the <emphasis role="bold">
- <property><a4j:status></property>
-</emphasis> component <property>id</property>. Then this <emphasis role="bold">
- <property><a4j:status></property>
- </emphasis> component shows the status for the request fired from this action component.
- </para></listitem>
- </itemizedlist></para>
- <para>The component creates two <emphasis role="bold"><property><span></property></emphasis> or <emphasis role="bold"><property><div></property></emphasis>
- elements depending on attribute <emphasis><property>"layout"</property></emphasis>
- with content defined for each status, one of the elements (start) is initially hidden. At the beginning of an Ajax request, elements state is inversed, hence the second element is shown and the first is hidden. At the end of a response processing, elements display states return to its initial values.</para>
- <para><emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<a4j:status startText="Started" stopText="stopped" />]]></programlisting>
- <para>The code shown in the example above is decoded on a page as:</para><programlisting role="XML"><![CDATA[<span id="j_id20:status.start" style="display: none">
- Started
-</span>
-<span id="j_id20:status.stop">
- Stopped
-</span>]]></programlisting>
- <para>and after the generation of an Ajax response is changed to:</para>
- <programlisting role="XML"><![CDATA[<span id="j_id20:status.start">
- Started
-</span>
-<span id="j_id20:status.stop" style="display: none">
- Stopped
-</span>]]></programlisting>
- <para>There is a possibility to group a <emphasis role="bold"><property><a4j:status></property></emphasis> elements content into <emphasis role="bold"><property><div></property></emphasis> elements, instead of <emphasis role="bold"><property><span></property></emphasis>. To use it, just redefine the <emphasis >
- <property>"layout"</property>
- </emphasis>
- attribute from "inline" (default) to "block".</para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Vizit <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/status.jsf?c=status">Status page</ulink> at RichFaces Livedemo for examples of component usage and their sources.
- </para>
- <para>
- Useful articles at JBoss portal:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <ulink url="http://wiki.jboss.org/wiki/RichFacesPleaseWaitBox">RichFacesPleaseWaitBox</ulink> describes how to show a "Please Wait" box and block the input while the Ajax request is processed using combination of <emphasis role="bold"><property><a4j:status></property></emphasis> and <emphasis role="bold"><property><rich:modalPanel></property></emphasis>.
- </para>
- </listitem>
- </itemizedlist>
-
- </section>
-</chapter>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:subTable</keyword>
-</keywordset>
-</sectioninfo>
-<sectioninfo>
-<keywordset>
-<keyword>subTable</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component is used for inserting <property>subtables</property> into tables with opportunity to choose data from a model
- and built-in Ajax updates support.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:subTable></property></emphasis> element</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/subTable_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Completely skinned table rows and child elements</para></listitem>
- <listitem><para>Possibility to insert complex columnGroup subcomponents</para></listitem>
- <listitem><para>Possibility to combine rows and columns inside</para></listitem>
- <listitem><para>Possibility to update a limited set of rows with Ajax</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/subTable.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,383 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:subTable</keyword>
- <keyword>HtmlSubTable</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.SubTable</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlSubTable</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.SubTable</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.SubTableRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.SubTableTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used on a page:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
- <rich:column>
- ...
- </rich:column>
- <rich:subTable value=#{capitals.details} var="detail">
- <rich:column>
- ...
- </rich:column>
- </rich:subTable>
-</rich:dataTable>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlSubTable;
-...
-HtmlSubTable mySubTable = new HtmlSubTable();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
-
- <para>The <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> component is similar to the <emphasis role="bold">
- <property><h:dataTable></property>
- </emphasis> one, except Ajax support and skinnability. One more difference is that the
- component doesn't add the wrapping <emphasis role="bold">
- <property><table></property>
- </emphasis> and <emphasis role="bold">
- <property><tbody></property>
- </emphasis> tags. Ajax support is possible, because the component was created basing on the
- <emphasis role="bold">
- <property><a4j:repeat></property>
- </emphasis> component and as a result it could be partially updated with Ajax. <emphasis>
- <property>"ajaxKeys"</property>
- </emphasis> attribute allows to define row keys that is updated after an Ajax request.</para>
-
- <para>Here is an example:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:dataTable value="#{capitalsBean.capitals}" var="capitals">
- <rich:column>
- ...
- </rich:column>
- <rich:subTable value="#{capitals.details}" var="detail" ajaxKeys="#{bean.ajaxSet}" binding="#{bean.subtable}" id="subtable">
- <rich:column>
- ...
- </rich:column>
- </rich:subTable>
-</rich:dataTable>
-...
-<a4j:commandButton action="#{tableBean.action}" reRender="subtable"/>
-...
-]]></programlisting>
- <para> In the example <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute contains value of <emphasis>
- <property>"id"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> component. As a result the component is updated after an Ajax request.</para>
-
- <para>The component allows to use <emphasis>
- <property>"header"</property>
- </emphasis> and <emphasis>
- <property>"footer"</property>
- </emphasis> facets for output. See an example for <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="table_ex">component</link>.</para>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
-
- <para>Skin parameters redefinition for <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> are the same as for the <emphasis role="bold">
- <property><rich:dataTable></property>
- </emphasis>
- <link linkend="SPR">component</link>.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <table id="tab_sT">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-subtable</entry>
- <entry>Defines styles for all subtable</entry>
- </row>
- <row>
- <entry>rich-subtable-caption</entry>
- <entry>Defines styles for a "caption" facet element</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define header and footer elements</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-subtable-header</entry>
- <entry>Defines styles for a subtable header row</entry>
- </row>
-
- <row>
- <entry>rich-subtable-header-continue</entry>
- <entry>Defines styles for all subtable header lines after the first</entry>
- </row>
- <row>
- <entry>rich-subtable-subheader</entry>
- <entry>Defines styles for a column header of subtable</entry>
- </row>
-
- <row>
- <entry>rich-subtable-subfooter</entry>
- <entry>Defines styles for a column footer of subtable</entry>
- </row>
-
- <row>
- <entry>rich-subtable-footer</entry>
- <entry>Defines styles for a subtable footer row</entry>
- </row>
-
- <row>
- <entry>rich-subtable-footer-continue</entry>
- <entry>Defines styles for all subtable footer lines after the first</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define rows and cells</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-subtable-headercell</entry>
- <entry>Defines styles for a subtable header cell</entry>
- </row>
-
- <row>
- <entry>rich-subtable-subheadercell</entry>
- <entry>Defines styles for a column header cell of subtable</entry>
- </row>
- <row>
- <entry>rich-subtable-cell</entry>
- <entry>Defines styles for a subtable cell</entry>
- </row>
- <row>
- <entry>rich-subtable-row</entry>
- <entry>Defines styles for a subtable row</entry>
- </row>
- <row>
- <entry>rich-subtable-firstrow</entry>
- <entry>Defines styles for a subtable start row</entry>
- </row>
-
- <row>
- <entry>rich-subtable-subfootercell</entry>
- <entry>Defines styles for a column footer cell of subtable</entry>
- </row>
-
- <row>
- <entry>rich-subtable-footercell</entry>
- <entry>Defines styles for a subtable footer cell</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <figure>
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/subTable_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:subTable></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_sT"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-subtable-footer{
- font-weight: bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/subTable_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a footer font weight was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:subTable></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:subTable></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color: #fff5ec;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"columnClasses"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:subTable></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:subTable ... columnClasses="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/subTable_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the background color for columns was changed.</para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:suggestionBox</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The component adds on-keypress suggestions capabilities to any input
- text component
- like
- <emphasis role="bold">
- <property><h:inputText></property>
- </emphasis>
- .
- </para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- component
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox_init.png" />
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>
- <para>
- Adds
- <emphasis>
- <property>"onkeypress"</property>
- </emphasis>
- suggestions capabilities to any input text component
- </para>
- </listitem>
- <listitem>
- <para>Possible to render table as a popup suggestion</para>
- </listitem>
- <listitem>
- <para>Can be pointed to any Ajax request status indicator of the
- page</para>
- </listitem>
- <listitem>
- <para>Easily customizable look-and-feel</para>
- </listitem>
- <listitem>
- <para>Fully skinnable component</para>
- </listitem>
- <listitem>
- <para>Managing area of components submitted on Ajax request</para>
- </listitem>
- <listitem>
- <para>Flexible list of components to update after Ajax request
- managed by attributes</para>
- </listitem>
- <listitem>
- <para>Setting restriction to Ajax request generation</para>
- </listitem>
- <listitem>
- <para>Keyboard navigation support</para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/suggestionbox.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,771 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>on-keypress suggestion</keyword>
- <keyword>rich:suggestionbox</keyword>
- <keyword>HtmlsuggestionBox</keyword>
- </keywordset>
- </sectioninfo>
-
- <section>
- <title>Details of Usage</title>
-
- <section>
- <title>Main attributes</title>
- <para>There are 3 main component attributes:</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"for"</property>
- </emphasis>
- contains an ID of an input component
- for which the suggestion
- support is provided
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"suggestionAction"</property>
- </emphasis>
- defines the method to get a collection of suggestion data on
- request
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"var"</property>
- </emphasis>
- defines a collection name that provides an access for the current
- row while iterating through
- </para>
- </listitem>
- </itemizedlist>
- <para>To create the simplest variant on a page use the following
- syntax:</para>
- <programlisting role="XML"><![CDATA[...
-<h:inputText id="city" value="#{capitalsBean.capital}" />
-<rich:suggestionbox for="city" var="result" suggestionAction="#{capitalsBean.autocomplete}">
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
-</rich:suggestionbox>
-...
-]]></programlisting>
- <para>
- There is a managed bean:
- </para>
- <programlisting role="JAVA"><![CDATA[...
-public class SBbean {
-
- private ArrayList<Capital> capitals = new ArrayList<Capital>();
- private ArrayList<String> capitalsNames = new ArrayList<String>();
- private List<SelectItem> capitalsOptions = new ArrayList<SelectItem>();
- private String capital = "";
-
- public List<Capital> autocomplete(Object suggest) {
- String pref = (String) suggest;
- ArrayList<Capital> result = new ArrayList<Capital>();
-
- Iterator<Capital> iterator = getCapitals().iterator();
- while (iterator.hasNext()) {
- Capital elem = ((Capital) iterator.next());
- if ((elem.getName() != null && elem.getName().toLowerCase()
- .indexOf(pref.toLowerCase()) == 0)
- || "".equals(pref)) {
- result.add(elem);
- }
- }
- return result;
- }
-
- public SBbean() {
- URL rulesUrl = getClass().getResource("capitals-rules.xml");
- Digester digester = DigesterLoader.createDigester(rulesUrl);
- digester.push(this);
- try {
- digester.parse(getClass().getResourceAsStream("capitals.xml"));
- } catch (IOException e) {
- throw new FacesException(e);
- } catch (SAXException e) {
- throw new FacesException(e);
- }
- capitalsNames.clear();
- for (Capital cap : capitals) {
- capitalsNames.add(cap.getName());
- }
- capitalsOptions.clear();
- for (Capital cap : capitals) {
- capitalsOptions.add(new SelectItem(cap.getName(), cap.getState()));
- }
- }
-
- public String addCapital(Capital capital) {
- capitals.add(capital);
- return null;
- }
-}
-]]></programlisting>
- <para>
- In the example above when suggestion item (city) is selected it is
- set as a value of
- <code><h:inputText id="city"/></code>
- .
- </para>
- <para>
- Here is a result:
- </para>
- <figure>
- <title>
- <emphasis role="bold">
- Simple
- <property><rich:suggestionbox></property>
- </emphasis>
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox_simple.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- The
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- component could get any collection
- and outputs it in a
- popup in
- several columns. The
- <emphasis>
- <property>"fetchValue"</property>
- </emphasis>
- attribute points to the data that is inserted into the input field
- if a particular row is selected
- or clicked from the suggested list.
- Therefore when some string is chosen input
- receives the proper value.
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:inputText id="city" value="#{capitalsBean.capital}" />
-<rich:suggestionbox for="city" var="result" fetchValue="#{result.state}"
- suggestionAction="#{capitalsBean.autocomplete}">
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
- <h:column>
- <h:outputText value="#{result.state}" />
- </h:column>
-</rich:suggestionbox>
-...
-]]></programlisting>
- <para>
- In the example above if you choose any string input will receive the
- corresponding value
- from the second column containing
- <code>#{result.state}</code>
- .
- </para>
- <para>Here is a result:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- with output in several columns
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox2.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- There is also one more important attribute named
- <emphasis>
- <property>"tokens"</property>
- </emphasis>
- that specifies separators after which a set of some
- characters
- sequence is defined as a new prefix beginning from this
- separator and
- not from the string beginning.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:inputText id="city" value="#{capitalsBean.capital}" />
-<rich:suggestionbox for="city" var="result" suggestionAction="#{capitalsBean.autocomplete}"
- tokens=",">
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
-</rich:suggestionbox>
-...
-]]></programlisting>
- <para>This example shows that when a city is chosen and a comma and
- first letter
- character are input, Ajax request is called again, but
- it
- submits a
- value starting from the last token:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- with chosen word
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox3.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>For
- a multiple definition use either "
- <code>,.;[]</code>
- "
- syntax as a value for
- <emphasis>
- <property>"tokens"</property>
- </emphasis>
- attribute or link a parameter to some bean
- property that transmits
- separators collection.
- </para>
- </section>
- <section>
- <title>JavaScript API</title>
- <para>
- There is such feature of the
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- component as
- <property>object selection</property>
- .
- If you want to get the selected item as object on the client side
- you should set the value of the
- <emphasis>
- <property> "usingSuggestObjects" </property>
- </emphasis>
- attribute
- to "true".
- After that you should specify
- JavaScript method in the
- <emphasis>
- <property> "onobjectchange"</property>
- </emphasis>
- attribute and pass the
- <code>suggestion</code>
- object as a parameter:
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:inputText id="city" value="#{capitalsBean.capital}" />
-<rich:suggestionbox for="city" var="result" suggestionAction="#{capitalsBean.autocomplete}"
- onobjectchange="processObjects(suggestion)" usingSuggestObjects="true">
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
-</rich:suggestionbox>
-<h:panelGroup>
- <div id="state"></div>
-</h:panelGroup>
-...
-]]></programlisting>
- <para>
- When the item is selected you can get it as an object on the client
- side and use
- <code>getSelectedItems()</code>
- method to access any object properties:
- </para>
- <programlisting role="XML"><![CDATA[<script type="text/javascript">
-function processObjects(suggestionBox) {
- var items = suggestionBox.getSelectedItems();
- var state;
- if (items && items.length > 0) {
- for ( var i = 0; i < items.length; i++) {
- state = items[i].state;
- }
- document.getElementById('state').innerHTML = "State: "+state;
- }else{
- document.getElementById('state').innerHTML = '';
- }
-}
-</script>
-]]></programlisting>
- <para>
- Here is a result:
- </para>
- <figure>
- <title>
- Usage of
- <code>getSelectedItems()</code>
- method
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionboxAPI.png" />
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Other attributes and facets</title>
- <para>
- In addition to attributes common for Ajax action components
- and
- limiting requests quantity and frequency,
- the
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- has one more its own attribute
- limiting requests: the
- <emphasis>
- <property>"minChars"</property>
- </emphasis>
- attribute. This attribute defines characters quantity
- inputted into a
- field after which Ajax requests are called to perform
- suggestion.
- </para>
-
-
- <para>
- There is possibility to define what is shown if the autocomplete
- returns empty list. Attribute
- <emphasis>
- <property> "nothingLabel" </property>
- </emphasis>
- or facet with the same name could be used for this purpose.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:suggestionbox for="city" var="result" suggestionAction="#{capitalsBean.autocomplete}"
- nothingLabel="No cities found">
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
-</rich:suggestionbox>
-...
-]]></programlisting>
- <para>Here is a result:</para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- with empty list
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox4.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- You can also use facets for the further
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- customization:
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:inputText id="city" value="#{capitalsBean.capital}" />
-<rich:suggestionbox for="city" var="result" suggestionAction="#{capitalsBean.autocomplete}">
- <f:facet name="nothingLabel">
- <h:outputText value="No cities found" />
- </f:facet>
- <f:facet name="header">
- <h:outputText value="Select your city" />
- </f:facet>
- <h:column>
- <h:outputText value="#{result.name}" />
- </h:column>
-</rich:suggestionbox>
-...
-]]></programlisting>
- <para>
- Here is a result:
- </para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- facets
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox5.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- Information about the
- <emphasis>
- <property>"process"</property>
- </emphasis>
- attribute usage you can findin the
- <link linkend="process"> "Decide what to process" </link>
- guide section.
- </para>
- <para>
- In RichFaces Wiki article about
- <ulink
- url="http://wiki.jboss.org/wiki/RichFacesSuggestionGettingAdditionalProperties">
- Additional Properties </ulink>
- you can find example of getting additional
- properties.
- </para>
- </section>
- <section>
- <title>Custom style classes redefinition</title>
- <para>
- In order to redefine styles for all
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- components on a page using CSS, it's enough to
- create classes
- with the same names (possible classes could be found in
- the tables
- <link linkend="suggBoxC"> above</link>
- ) and define
- necessary properties in them.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-sb-int{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox_pc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font weight for rows was changed.</para>
-
- <para>Also
- it's possible to change styles of particular
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- component. In this case you should create own style
- classes and use
- them in corresponding
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes. An example is placed below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#f0ddcd;
-}
-...]]></programlisting>
- <para>
- The
- <emphasis>
- <property>"selectedClass"</property>
- </emphasis>
- attribute for
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- is defined as it's shown in the example below:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:suggestionbox ... selectedClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>
- Redefinition styles with own classes and
- <emphasis>
- <property>styleClass</property>
- </emphasis>
- attributes
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/suggestionbox_oc.png" />
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,background color for
- selected
- item was changed.</para>
- </section>
-
- </section>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:suggestionbox</keyword>
- </keywordset>
- </sectioninfo>
- <title>Reference Data</title>
- <para>
-
- <ulink
- url="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/...">
- Table of <rich:suggestionbox> attributes
- </ulink>
- </para>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.SuggestionBox</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlSuggestionBox</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.SuggestionBox</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.SuggestionBoxRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.SuggestionBoxTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>nothingLabel</entry>
- <entry>Redefines the content item if the autocomplete returns
- empty
- list. Related attribute is "nothingLabel"</entry>
- </row>
- <row>
- <entry>popup</entry>
- <entry>Redefines the content for the popup list of the suggestion
- </entry>
- </row>
- <row>
- <entry>header</entry>
- <entry>Defines the header content</entry>
- </row>
- <row>
- <entry>footer</entry>
- <entry>Defines the footer content</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>JavaScript API</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>callSuggestion()</entry>
- <entry>Calls the suggestion. If the
- "ignoreMinChars"
- value is
- "true" then
- the number of symbols to send
- a query
- is no longer actual
- for callSuggestion()</entry>
- </row>
-
- <row>
- <entry>getSelectedItems()</entry>
- <entry>Returns the array of
- objects</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <table id="suggBoxC">
- <title>Classes names with the corresponding skin parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- <entry>Skin Parameters</entry>
- <entry>CSS properties</entry>
-
- </row>
- </thead>
- <tbody>
- <row>
- <entry morerows="2">.rich-sb-int</entry>
- <entry morerows="2">Defines the styles for a
- suggestion box table
- rows
- <tr></entry>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
-
- <row>
- <entry morerows="3">.rich-sb-int-sel</entry>
- <entry morerows="3">Defines styles for a selected
- row</entry>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry morerows="1">.rich-sb-ext-decor-2</entry>
- <entry morerows="1">Defines styles for the second
- wrapper
- <div>
- element of
- a suggestion box
- exterior</entry>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>additionalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry morerows="2">.rich-sb-shadow</entry>
- <entry morerows="2">Defines styles for a suggestion
- boxshadow
- </entry>
- <entry>shadowBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>shadowBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>shadowOpacity</entry>
- <entry>opacity</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- Vizit
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/suggestionBox.jsf?c=s..."><emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis></ulink>
- page at RichFaces Livedemo for examples of component usage and
- sources.
- </para>
- <para>
- RichFaces cookbook at JBoss Portal includes some articles that cover
- different aspects of working with
- <emphasis role="bold">
- <property><rich:suggestionbox></property>
- </emphasis>
- :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- "
- <ulink url="http://www.jboss.org/community/docs/DOC-11851">Creating suggestion box dynamically</ulink>
- ";
- </para>
- </listitem>
- <listitem>
- <para>
- "
- <ulink url="http://www.jboss.org/community/docs/DOC-11865">Getting additional properties from
- <rich:suggectionbox></ulink>
- ".
- </para>
- </listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,24 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:support</keyword>
- <keyword>component</keyword>
- </keywordset>
- </sectioninfo>
-
-<title>Description</title>
- <para>
- The <emphasis role="bold"><property><a4j:support></property></emphasis> component
- is the most important core component in the RichFaces library.
- It enriches any existing non-Ajax JSF or RichFaces component with Ajax capability.
- All other RichFaces Ajax components are based on the same principles
- <emphasis role="bold"><property><a4j:support></property></emphasis> has.
- <!--
- The requests are invoked by definite user activity and used for updating
- and re-rendering page contents partially after a response from server.
- -->
- </para>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/support.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,272 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>a4j:support</keyword>
- </keywordset>
- </sectioninfo>
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.ajax4jsf.Support</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.ajax4jsf.AjaxSupport</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.ajax4jsf.component.html.HtmlAjaxSupport</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.ajax4jsf.components.AjaxSupportRenderer</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page you should put
- <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>
- as a nested element into the component that you want to enhance with
- Ajax functionality.
- You should also specify an event that will trigger
- an Ajax request.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<h:inputText value="#{bean.text}">
- <a4j:support event="onkeyup" reRender="repeater"/>
-</h:inputText>
-<h:outputText id="repeater" value="#{bean.text}"/>]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- In order to add the
- <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>
- in Java code you should add it as
- <property>facet</property>
- , not as a child:
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[HtmlInputText inputText = new HtmlInputText();
-...
-HtmlAjaxSupport ajaxSupport = new HtmlAjaxSupport();
-ajaxSupport.setActionExpression(FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createMethodExpression(
- FacesContext.getCurrentInstance().getELContext(), "#{bean.action}", String.class, new Class[] {}));
-ajaxSupport.setEvent("onkeyup");
-ajaxSupport.setReRender("output");
-inputText.getFacets().put("a4jsupport", ajaxSupport);
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>
- component has two key attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- mandatory
- <emphasis><property>"event"</property></emphasis> attribute that defines the JavaScript event
- the Ajax support will be attached to
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>"reRender"</property></emphasis> attribute that defines id(s)
- of JSF component(s) that should be rerendered after an Ajax request
- </para>
- </listitem>
- </itemizedlist>
- <para>
- As mentioned above, the <emphasis role="bold"><property><a4j:support></property></emphasis> component
- adds Ajax capability to non-Ajax JSF components.
- Let's create ajaxed <emphasis role="bold"><property><h:selectOneMenu></property></emphasis> called
- "Planets and Their Moons".
- </para>
- <para>
- We begin with the common behavior description. When a page is rendered you see only one select box with the list of planets.
- When you select a planet the <emphasis role="bold"><property><h:dataTable></property></emphasis>
- containing moons of the selected planet appears.
- </para>
- <para>
- In other words we need <emphasis role="bold"><property><h:selectOneMenu></property></emphasis>
- with the nested <emphasis role="bold"><property><a4j:support></property></emphasis> component that
- is attached to the <property>onchange</property> event.
- </para>
- <para>
- When an Ajax response comes back the <emphasis role="bold"><property><h:dataTable></property></emphasis>
- is re-rendered on the server side and updated on the client.
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form id="planetsForm">
- <h:outputLabel value="Select the planet:" for="planets" />
- <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
- <f:selectItems value="#{planetsMoons.planetsList}" />
- <a4j:support event="onchange" reRender="moons" />
- </h:selectOneMenu>
- <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
- <h:column>
- <h:outputText value="#{item}"/>
- </h:column>
- </h:dataTable>
-</h:form>
-...]]></programlisting>
- <para>
- Finally we need a backing bean:
- </para>
- <programlisting role="JAVA"><![CDATA[...
-public class PlanetsMoons {
- private String currentPlanet="";
- public List<SelectItem> planetsList = new ArrayList<SelectItem>();
- public List<String> moonsList = new ArrayList<String>();
- private static final String [] EARTH = {"The Moon"};
- private static final String [] MARS = {"Deimos", "Phobos"};
- private static final String [] JUPITER = {"Europa", "Gamymede", "Callisto"};
-
- public PlanetsMoons() {
- SelectItem item = new SelectItem("earth", "Earth");
- planetsList.add(item);
- item = new SelectItem("mars", "Mars");
- planetsList.add(item);
- item = new SelectItem("jupiter", "Jupiter");
- planetsList.add(item);
- }
-
- public void planetChanged(ValueChangeEvent event){
- moonsList.clear();
- String[] currentItems;
- if (((String)event.getNewValue()).equals("earth")) {
- currentItems = EARTH;
- }else if(((String)event.getNewValue()).equals("mars")){
- currentItems = MARS;
- }else{
- currentItems = JUPITER;
- }
- for (int i = 0; i < currentItems.length; i++) {
- moonsList.add(currentItems[i]);
- }
- }
-
- //Getters and Setters
- ...
-}
-]]></programlisting>
- <para>
- There are two properties <code>planetsList</code> and <code>moonsList</code>.
- The <code>planetsList</code> is filled with planets names in the constructor.
- After you select the planet,
- the <code>planetChanged()</code> listener is called and
- the <code>moonsList</code> is populated with proper values of moons.
- </para>
- <para>
- With the help of
- <emphasis>
- <property>"onsubmit"</property>
- </emphasis>
- and
- <emphasis>
- <property>"oncomplete"</property>
- </emphasis>
- attributes the <emphasis role="bold"><property><a4j:support></property></emphasis> component
- allows to use JavaScript calls before and after an Ajax request
- respectively.
- Actually the JavaScript specified in the <emphasis><property>"oncomplete"</property></emphasis> attribute
- will be executed in any case whether the Ajax request is completed successfully or not.
- </para>
- <para>
- You can easily add confirmation dialog for the planet select box and colorize
- <emphasis role="bold"><property><h:dataTable></property></emphasis> after the Ajax response:
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:form id="planetsForm">
- <h:outputLabel value="Select the planet:" for="planets" />
- <h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
- <f:selectItems value="#{planetsMoons.planetsList}" />
- <a4j:support event="onchange" reRender="moons"
- onsubmit="if(!confirm('Are you sure to change the planet?')) {form.reset(); return false;}"
- oncomplete="document.getElementById('planetsForm:moonsPanel').style.backgroundColor='#c8dcf9';" />
- </h:selectOneMenu>
- <h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
- <h:column>
- <h:outputText value="#{item}"/>
- </h:column>
- </h:dataTable>
-</h:form>
-...]]></programlisting>
- <para>
- There is the result:
- </para>
- <figure>
- <title>
- "Planets and Their Moons"
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/supportSample.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>
- Information about the
- <emphasis>
- <property>"process"</property>
- </emphasis>
- attribute usage you can find in the "
- <link linkend="process">Decide what to process</link>
- " guide section.
- </para>
-
- <note>
- <title>Tip:</title>
- <para>
- The
- <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>
- component created on a page as following
- </para>
- <programlisting role="XML"><![CDATA[<h:inputText value="#{bean.text}">
- <a4j:support event="onkeyup" reRender="output" action="#{bean.action}"/>
-</h:inputText>]]></programlisting>
- <para>is decoded in HTML as</para>
- <programlisting role="XML"><![CDATA[<input onkeyup="A4J.AJAX.Submit( Some request parameters )"/>]]></programlisting>
- </note>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Visit
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/support.jsf?c=support"><a4j:support> demo page</ulink>
- at RichFaces live demo for examples of component usage and their
- sources.
- </para>
-
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:tab</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A <property>tab</property> section within a tab panel.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:tab></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tab_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Fully skinnable <property>tabs</property> content</para></listitem>
- <listitem><para>Disabled/enabled <property>tab</property> options</para></listitem>
- <listitem><para>Groups any content inside a <property>tab</property></para></listitem>
- <listitem><para>Each <property>tab</property> has a unique name for a direct access (e.g. for
- switching between tabs)</para></listitem>
- <listitem><para>Switch methods can be easily customized for every <property>tab</property>
- separately with attribute to:</para>
- <itemizedlist>
- <listitem><para><code>Server</code></para></listitem>
- <listitem><para><code>Client</code></para></listitem>
- <listitem><para><code>AJAX</code></para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tab.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,509 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:tab</keyword>
- <keyword>HtmlTab</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Tab</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlTab</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Tab</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.TabRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.TabTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tabPanel>
- <!--Set of Tabs inside-->
- <rich:tab>
- ...
- </rich:tab>
-</rich:tabPanel>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlTab;
-...
-HtmlTab myTab = new HtmlTab();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>The main component function is to define a content group that is rendered
- and processed when the <property>tab</property> is active, i.e. click
- on a <property>tab</property> causes switching onto a
- <property>tab</property> containing content corresponded to this
- <property>tab</property>.</para>
- <para>The <emphasis>
- <property>"label"</property>
- </emphasis> attribute defines text to be represented. If you can use
- the <emphasis>
- <property>"label"</property>
- </emphasis> facet, you can even not use the <emphasis>
- <property>"label"</property>
- </emphasis> attribute.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tab>
- <f:facet name="label">
- <h:graphicImage value="/images/img1.png"/>
- </f:facet>
- ...
- <!--Any Content inside-->
- ...
-</rich:tab>
-...
-]]></programlisting>
-
- <para>A marker on a <property>tab</property> header defined with the <emphasis>
- <property>"label"</property>
- </emphasis> attribute. Moreover, each <property>tab</property> could
- be disabled (switching on this <property>tab</property> is impossible)
- with the <emphasis>
- <property>"disable"</property>
- </emphasis> attribute.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tabPanel width="20%">
- <tabs:tab label="Canon">
- <h:outputText value="Canon EOS Digital Rebel XT" />
- ...
- </tabs:tab>
- <tabs:tab label="Nikon">
- <h:outputText value="Nikon D70s" />
- ...
- </tabs:tab>
- <tabs:tab label="Olympus">
- <h:outputText value="Olympus EVOLT E-500" />
- ...
- </tabs:tab>
- <tabs:tab disabled="true" name="disabled" label="Disabled"/>
-</rich:tabPanel>
-...]]></programlisting>
- <para>With this example it's possible to generate the <property>tab
- panel</property> with the last disabled and three active
- <property>tabs</property> (see the picture).</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis> with disabled <emphasis role="bold">
- <property><rich:tab></property>
- </emphasis></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tab2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Switching mode could be defined not only for the whole panel
- <property>tab</property>, but also for each particular
- <property>tab</property>, i.e. switching onto one
- <property>tab</property> could be performed right on the client with
- the corresponding JavaScript and onto another <property>tab</property>
- with an Ajax request on the server. <property>Tab</property> switching
- modes are the same as <property>tabPanel</property> ones.</para>
- <para>Each <property>tab</property> also has an attribute name (alias for <emphasis>
- <property>"id"</property>
- </emphasis> attribute). Using this attribute value it's
- possible e.g. to set an active <property>tab</property> on a model
- level specifying this name in the corresponding attribute of the whole
- <property>tab</property>.</para>
- <para>Except the specific component attributes it has all necessary attributes
- for JavaScript event definition.</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseover"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseout"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para> etc. </para>
- </listitem>
- </itemizedlist>
- <para> Some event could be performed on the tab which has been entered/left
- using <emphasis>
- <property>"ontabenter"</property>
- </emphasis>/<emphasis>
- <property>"ontableave"</property>
- </emphasis> attributes. See the example below.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tabPanel>
- <rich:tab label="Tab1" ontabenter="alert()">
- ...
- </rich:tab>
- ...
-</rich:tabPanel>
-...]]></programlisting>
- <para> The following example shows how on the client side to get the names of
- <code>entered</code>/<code>left</code> tabs. </para>
- <programlisting role="JAVA"><![CDATA[ontabenter="alert(leftTabName)"]]></programlisting>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find in the
- <link linkend="process"> "Decide what to process" </link> guide section. </para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>label</entry>
- <entry>Defines the text for the actual "tab" in a tab section</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <note>
- <title>Note:</title>
- <para> A panel appearance and content is defined with a
- <property>tab</property> panel i.e. on the
- <property>tab</property> level it's possible to
- define only an appearance of this <property>tab</property>
- header. </para>
- </note>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:tab></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:tab></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a tab header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters redefinition for an active tab</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for an inactive tab</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a disabled tab</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tabBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>subBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>tabDisabledTextColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tab_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
-
- <table id="tab_tab">
- <title>Classes names that define a tab</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tab-header</entry>
- <entry>Defines styles for a tab
- header</entry>
- </row>
-
- <row>
- <entry>rich-tab-label</entry>
- <entry>Defines styles for a tab
- label</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Classes names that define a tab states</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tab-active</entry>
- <entry>Defines styles for an active
- tab</entry>
- </row>
- <row>
- <entry>rich-tab-inactive</entry>
- <entry>Defines styles for an inactive
- tab</entry>
- </row>
- <row>
- <entry>rich-tab-disabled</entry>
- <entry>Defines styles for a disabled
- tab</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:tab></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="tab_tab"> above</link>) and define necessary
- properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-tab-header{
- font-weight: bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tab_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a header font weight was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:tab></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:tab></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- border-color: #5d9ffc;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:tab> </property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:tab ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tab_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the border color was
- changed.</para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:tabPanel</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A <property>tab panel</property> displaying tabs for grouping content of the panel.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:tabPanel></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tabPanel_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Skinnable <property>tab panel</property> and child items</para></listitem>
- <listitem><para>Disabled/enabled tab options</para></listitem>
- <listitem><para>Customizable headers</para></listitem>
- <listitem><para>Group any content inside a tab</para></listitem>
- <listitem><para>Each tab has a unique name for direct access (e.g. for switching between tabs)</para></listitem>
- <listitem><para>Switch methods can be easily customized with attribute to:</para>
- <itemizedlist>
- <listitem><para><code>
- Server
- </code></para></listitem>
- <listitem><para>
- <code>Client</code>
- </para></listitem>
- <listitem><para>
- <code>AJAX</code>
- </para></listitem>
-
- </itemizedlist>
- </listitem>
- <listitem><para>Switch methods can be selected for the whole <property>tab panel</property> and for the
- each tab separately</para></listitem>
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tabPanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,481 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>tab</keyword>
- <keyword>rich:tabPanel</keyword>
- <keyword>HtmltabPanel</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.tabPanel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmltabPanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.tabPanel</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.tabPanelRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.tabPanelTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tabPanel>
- <!--Set of Tabs inside-->
- <rich:tab>
- ...
- </rich:tab>
-</rich:tabPanel>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmltabPanel;
-...
-HtmltabPanel mytabPanel = new HtmltabPanel();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it was mentioned <link linkend="tabPanel">above</link>,
- <property>tabPanel</property> groups content on panels and
- performs switching from one to another. Hence, modes of switching
- between panels are described first of all.</para>
- <note>
- <title>Note:</title>
- <para> All <property>tabPanels</property> should be wrapped into a
- form element so as content is correctly submitted inside. If
- a form is placed into each tab, the Action elements of Tab
- controls appear to be out of the form and content submission
- inside the panels could be performed only for Action
- components inside tabs.</para>
- </note>
- <para>Switching mode could be chosen with the <property>tabPanel</property>
- attribute <emphasis>
- <property>"switchType"</property>
- </emphasis> with three possible parameters.</para>
- <itemizedlist>
- <listitem>
- <para><code>Server</code> (DEFAULT)</para>
- <para>The common submission is performed around
- <property>tabPanel</property> and a page
- is completely rendered on a called panel. Only one
- at a time <property>tabPanel</property> is
- uploaded onto the client side.</para>
- </listitem>
- <listitem>
- <para>
- <code>Ajax</code>
- </para>
- <para>AJAX form submission is performed around the
- <property>tabPanel</property>, content
- of the called <property>tabPanel</property> is
- uploaded on Ajax request. Only one at a
- time <property>tabPanel</property> is uploaded on
- the client.</para>
- </listitem>
- <listitem>
- <para>
- <code>Client</code>
- </para>
- <para> All <property>tabPanels</property> are uploaded on
- the client side. The switching from the active to
- the hidden <property>panel</property> is performed
- with client JavaScript.</para>
- </listitem>
- </itemizedlist>
- <para>As a result, the <property>tabPanel</property> is switched to the second
- tab according to the action returning outcome for moving onto another
- page and switching from the second to the first tab is performed.</para>
- <para>There is also the <emphasis>
- <property>"selectedTab"</property>
- </emphasis> attribute. The attribute keeps an active tab name;
- therefore, an active <property>tabPanel</property> could be changed
- with setting a name of the necessary tab to this attribute.</para>
- <para>There is also the <emphasis>
- <property>"headerAlignment"</property>
- </emphasis> attribute responsible for rendering of
- <property>tabPanel</property> components. The attribute has several
- values: "left" (Default), "right",
- "center", which specify Tabs components location on
- the top of the tabPanel.</para>
-
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tabPanel width="40%" headerAlignment="right">
- <rich:tab label="Canon">
- ...
- </rich:tab>
- <rich:tab label="Nikon">
- ...
- </rich:tab>
- <rich:tab label="Olympus">
- ...
- </rich:tab>
-</rich:tabPanel>
-...
-]]></programlisting>
-
- <figure>
- <title><emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis> with right aligned tabs</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tabPanel2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and
- the message that the component (indirectly) produced. This attribute
- defines the parameters of localized error and informational messages
- that occur as a result of conversion, validation, or other application
- actions during the request processing lifecycle. With the help of this
- attribute you can replace the last parameter substitution token shown
- in the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>,
- {2} for <code>"ShortConverter.SHORT"</code>. </para>
- <para>Except the specific attributes, the component has all necessary attributes
- for JavaScript events definition.</para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseover"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"onmouseout"</property>
- </emphasis>
- </para>
- </listitem>
- <listitem>
- <para> etc. </para>
- </listitem>
- </itemizedlist>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
-
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a header</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-top-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for an internal content</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>generalBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>generalTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-bottom-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-right-color</entry>
- </row>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-left-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <para>On the screenshot there are classes names that define styles for component
- elements.</para>
- <figure>
-
- <title>Style classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tabPanel_cn.png"
- scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table id="tab_cn5">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tabpanel</entry>
- <entry>Defines styles for all
- tabPanel</entry>
- </row>
- <row>
- <entry>rich-tabpanel-content</entry>
- <entry>Defines styles for an internal
- content</entry>
- </row>
- <row>
- <entry>rich-tabpanel-content-position</entry>
- <entry>Defines styles for a wrapper
- element of a tabPanel content.
- It should define a shift equal
- to borders width in order to
- overlap panel tabs</entry>
- </row>
- <row>
- <entry>rich-tabhdr-side-border</entry>
- <entry>Defines styles for side elements
- of a tabPanel header</entry>
- </row>
- <row>
- <entry>rich-tabhdr-side-cell</entry>
- <entry>Defines styles for a header
- internal element</entry>
- </row>
- <row>
- <entry>rich-tab-bottom-line</entry>
- <entry>Defines styles for a tab bottom
- line element of a tabPanel
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-
- <table>
- <title>Classes names that define different tab header states
- (corresponds to rich-tabhdr-side-cell)</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tabhdr-cell-active</entry>
- <entry>Defines styles for an internal
- element of an active
- header</entry>
- </row>
- <row>
- <entry>rich-tabhdr-cell-inactive</entry>
- <entry>Defines styles for an internal
- element of an inactive label
- </entry>
- </row>
- <row>
- <entry>rich-tabhdr-cell-disabled</entry>
- <entry>Defines styles for an internal
- element of a disabled label
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the table <link linkend="tab_cn5">above</link>) and define necessary
- properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-tabhdr-cell-active{
- font-weight: bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tabPanel_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a tab active font weight and text color were changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:tabPanel></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:tabPanel></property>
- </emphasis>
- <emphasis>
- <property>styleClass</property>
- </emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:tabPanel> </property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:tabPanel ... activeTabClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>styleClass</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tabPanel_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, font style on inactive tab was
- changed.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/tabPanel.jsf?c=tabPanel"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:tabPanel></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>rich:toggleControl</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A link type <property>control</property> for switching between
- <property>togglePanel</property> facets. Target
- Panel is specified with <emphasis ><property>"for"</property></emphasis>
- attribute. It can be located inside or outside the <property>togglePanel</property>. As the result of switching
- between facets previous facet is hidden and another one (specified with
- <emphasis ><property>"switchToState"</property></emphasis> or panel
- <emphasis ><property>"stateOrder"</property></emphasis> attributes) is
- shown.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:toggleControl></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toggleControl_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel</para></listitem>
- <listitem><para>Can be located anywhere in a page layout</para></listitem>
- <listitem><para>Switching is provided in the three modes</para>
- <itemizedlist>
- <listitem><para><code>Server</code></para></listitem>
- <listitem><para><code>Client</code></para></listitem>
- <listitem><para><code>Ajax</code></para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toggleControl.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,214 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>control</keyword>
-<keyword>rich:toggleControl</keyword>
-<keyword>HtmlToggleControl</keyword>
-<keyword>switching</keyword>
-</keywordset>
-</sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ToggleControl</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlToggleControl</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ToggleControl</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ToggleControlRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ToggleControlTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:toggleControl for="panel"/>
- ...
- <rich:togglePanel id="panel" stateOrder="[facets order to be switched]">
- <!--Set of Facets-->
- </rich:togglePanel>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlToggleControl;
-...
-HtmlToggleControl myControl = new HtmlToggleControl();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it was mentioned <link linkend="toggleControl">above</link>, the <property>control</property> could be in any place in
- layout and linked to a switching panel that is managed with <emphasis
-
-><property>"for"</property></emphasis> attribute (in the <emphasis
-
-><property>"for"</property></emphasis> attribute the full component <emphasis><property>"id"</property></emphasis> is specified according to naming
- containers).</para>
-<para>The <property>togglePanel</property> could be also switched from the side of the control instead of being strictly defined
-in <emphasis
-><property>"switchOrder"</property></emphasis> attribute of <emphasis role="bold"><property><rich:togglePanel></property>.</emphasis></para>
-<para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[...
-<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>
-<para>In this example the switching is performed on facets specified in the <emphasis
-><property>"switchToState"</property></emphasis> attribute.</para>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
- </para>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property></emphasis></para>
- <para>To redefine the appearance of all <emphasis role="bold">
- <property><rich:toggleControl></property>
- </emphasis> components at once, you should add to your style sheets <emphasis>
- <property>style class</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:toggleControl></property>
- </emphasis> component.
-</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="tab_tC">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tglctrl</entry>
- <entry>Defines styles for a toggle control</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:toggleControl></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="tab_tC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-tglctrl {
- font-family: monospace;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toggleControl_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example font family was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:toggleControl></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:toggleControl></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass {
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:toggleControl></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:toggleControl ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toggleControl_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, the font style was changed.</para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>rich:togglePanel</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A wrapper component with named facets, where every facet is shown after activation of
- the corresponding <property>toggleControl</property>
- (the other is hidden).</para>
- <figure>
- <title><emphasis role="bold"><property><rich:togglePanel></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/togglePanel_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Support for any content inside</para></listitem>
- <listitem><para>Three modes of facets switching</para>
- <itemizedlist>
- <listitem><para><code>Server</code></para></listitem>
- <listitem><para><code>Client</code></para></listitem>
- <listitem><para><code>Ajax</code></para></listitem>
- </itemizedlist>
- </listitem>
- <listitem><para>Controls for <property>togglePanel</property> can be everywhere in layout</para></listitem>
- </itemizedlist>
-</section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/togglePanel.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,301 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>facet</keyword>
- <keyword>rich:togglePanel</keyword>
- <keyword>HtmltogglePanel</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.TogglePanel</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlTogglePanel</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.TogglePanel</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.TogglePanelRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.Taglib.togglePanelTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it could be used in a page: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:togglePanel>
- <f:facet name="first">
- ...
- </f:facet>
- <f:facet name="second">
- ...
- </f:facet>
- ...
-</rich:togglePanel>
-...
-<!--Set of the toggleControls somewhere on a page-->
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmltogglePanel;
-...
-HtmltogglePanel myPanel = new HtmltogglePanel();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>As it was mentioned <link linkend="togglePanel">above</link>,
- <property>togglePanel</property> splits content into named
- facets that become rendered and processed when a click performed on
- controls linked to this <property>togglePanel</property> (either
- switched on the client or send requests on the server for switching).</para>
- <para>The initial component state is defined with <emphasis>
- <property>"initialState"</property>
- </emphasis> attribute, where a facet name that is shown at first is
- defined.</para>
- <note>
- <title>Note:</title>
- <para> It's also possible to define an <emphasis>
- <property>"empty"</property>
- </emphasis> facet to implement the functionality as
- drop-down panels have and make the facet active when no
- content is required to be rendered.</para>
- </note>
- <para>Switching mode could be defined with the <emphasis>
- <property>"switchType"</property>
- </emphasis> attribute with three possible parameters:</para>
- <itemizedlist>
- <listitem>
- <para>
- <code>Server</code> (DEFAULT)</para>
- <para>The common submission is performed around
- <property>togglePanel</property> and a
- page is completely rendered on a called panel.
- Only one at a time the panel is uploaded onto the
- client side.</para>
- </listitem>
- <listitem>
- <para>
- <code>Ajax</code>
- </para>
- <para>AJAX form submission is performed around the panel,
- content of the called panel is uploaded on an Ajax
- request . Only one at a
- time the panel is uploaded on the client
- side.</para>
- </listitem>
- <listitem>
- <para>
- <code>Client</code>
- </para>
- <para> All panels are uploaded on the client side. The
- switching from the active to the hidden panel is
- performed with client JavaScript.</para>
- </listitem>
- </itemizedlist>
- <para>"Facets" switching order could be defined on the side of
- <emphasis role="bold">
- <property><rich:toggleControl></property>
- </emphasis> component or on the panel. On the side of the togglePanel
- it's possible to define facets switching order with the <emphasis>
- <property>"stateOrder"</property>
- </emphasis> attribute. The facets names are enumerated in such an
- order that they are rendered when a control is clicked, as
- it's not defined where to switch beforehand.</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<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>
- <para>The example shows a <property>togglePanel</property> initial state when
- the second facet (<code>panelB</code>) is rendered and successive
- switching from the first to the second happens.</para>
- <para> The <emphasis>
- <property>"label"</property>
- </emphasis> attribute is a generic attribute. The <emphasis>
- <property>"label"</property>
- </emphasis> attribute provides an association between a component, and
- the message that the component (indirectly) produced. This attribute
- defines the parameters of localized error and informational messages
- that occur as a result of conversion, validation, or other application
- actions during the request processing lifecycle. With the help of this
- attribute you can replace the last parameter substitution token shown
- in the messages. For example, {1} for
- <code>"DoubleRangeValidator.MAXIMUM"</code>,
- {2} for <code>"ShortConverter.SHORT"</code>. </para>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>The component doesn't have its own representation rendering only
- content of its facets, thus all look and feel is set only for
- content.</para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="togglePC">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-toggle-panel</entry>
- <entry>Defines styles for all
- component</entry>
- </row>
-
- <row>
- <entry>rich-tglctrl</entry>
- <entry>Defines styles for a toggle
- control</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:togglePanel></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the tables <link linkend="togglePC"> above</link>) and define
- necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-toggle-panel{
- font-style:italic;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/togglePanel_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example the font style for output text was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis
- role="bold">
- <property><rich:togglePanel></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:togglePanel></property>
- </emphasis>
- <property>styleClass</property> attributes. An example is placed
- below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- background-color:#bed6f8;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"styleClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:togglePanel></property>
- </emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:togglePanel ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis>
- <property>"styleClass"</property>
- </emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/togglePanel_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color for panel was
- changed.</para>
-
-
-
-
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/togglePanel.jsf?c=tog..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis
- role="bold">
- <property><rich:togglePanel></property>
- </emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:toolBar</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A horizontal bar with Action items on it that accepts any JSF components as children.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:toolBar></property></emphasis> with action items</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar_init.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Skinnable menu panel and child items</para></listitem>
- <listitem><para>Standard top menu bar that can be used in accordance with a menu component</para></listitem>
- <listitem><para>Grouping bar content</para></listitem>
- <listitem><para>Easily place content on any side of a menu bar using predefined group layout</para></listitem>
- <listitem><para>Predefined separators for menu items and groups</para></listitem>
- <listitem><para>Any content inside</para></listitem>
- </itemizedlist>
-</section>
-</section>
-
-
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBar.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,354 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>bar</keyword>
- <keyword>rich:toolBar</keyword>
- <keyword>HtmlToolBar</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ToolBar</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlToolBar</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ToolBar</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ToolBarRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ToolBarTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:toolBar>
- <!--Set of action or other JSF components-->
-</rich:toolBar>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlToolBar;
-...
-HtmlToolBar myToolBar = new HtmlToolBar();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para>A <property>toolBar</property> is a wrapper component that facilitates creation of menu
- and <property>tool bars</property>. All components defined inside are located on a stylized
- bar with possibility to group, arrange on the both bar sides, and place predefined separators
- between them.</para>
- <para>Grouping and an input side definition is described for <property>toolBarGroup</property>
- that defines this functionality.</para>
- <para>Separators are located between components with the help of the <emphasis>
- <property>"itemSeparator"</property>
- </emphasis> attribute with four predefined values:</para>
- <itemizedlist>
- <listitem><para> "none" </para></listitem>
- <listitem><para> "line" </para></listitem>
- <listitem><para> "square" </para></listitem>
- <listitem><para> "disc" </para></listitem>
- </itemizedlist>
- <para>For example, when setting a separator of a disc type, the following result is produced:</para>
- <figure>
- <title><emphasis role="bold"><property><rich:toolBar></property></emphasis> with a <emphasis><property>"disc"</property></emphasis> separator</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar2.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Moreover, for <property>toolBar</property> style <emphasis>
- <property>"width"</property>
- </emphasis> and <emphasis>
- <property>"height"</property>
- </emphasis> attributes are placed above all.</para>
- <para>A custom separator can be added with the help of <emphasis><property>"itemSeparator"</property></emphasis> facet.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<f:facet name="itemSeparator">
- <rich:separator width="2" height="14" />
-</f:facet>
-...
-]]></programlisting>
- <para>Custom separator can be also specified by URL to the separator image in the attribute <emphasis>
- <property>"itemSeparator"</property>
- </emphasis> of the <emphasis role="bold"><property><rich:toolBar></property></emphasis>. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:toolBar id="toolBar" width="#{bean.width}" height="#{bean.height}" itemSeparator="/images/separator_img.jpg"/>
-...
-]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title><emphasis role="bold">
- <property><rich:toolBar></property>
- </emphasis> with <emphasis>
- <property>"itemSeparator"</property>
- </emphasis> attribute.</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <para>As it could be seen in the picture above, the image for itemSeparator was changed.</para>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>itemSeparator</entry>
- <entry>Defines the custom separator. Related attribute is "itemSeparator"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:toolBar></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:toolBar></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a component exterior</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Skin parameters redefinition for a component item</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>headerTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>headerWeightFont</entry>
- <entry>font-weight</entry>
- </row>
- <row>
- <entry>headerFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="toolBC">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-toolbar</entry>
- <entry>Defines styles for a toolbar element</entry>
- </row>
- <row>
- <entry>rich-toolbar-item</entry>
- <entry>Defines styles for a toolbar item</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:toolBar></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the tables <link linkend="toolBC"> above</link>) and define necessary properties in them. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-toolbar-item{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example font weight for items was changed.</para>
-
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:toolBar></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:toolBar></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style:italic;
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:toolBar></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:toolBar ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBar_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,the font style and the font weight for items was changed.</para>
-
-
-
- <para>The component also has the standard attributes <emphasis>
- <property>"style"</property>
- </emphasis> and <emphasis>
- <property>"styleClass"</property>
- </emphasis> that could redefine an appearance of a particular component variants.</para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolBar.jsf?c=toolBar"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:toolBar></property></emphasis> usage and sources for the given example. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:toolBarGroup</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>A group of items inside a tool bar.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:toolbarGroup></property></emphasis> with items on it</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBarGroup_init.png" scalefit="1"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Fully skinnable with its child items</para></listitem>
- <listitem><para>Grouping bar content</para></listitem>
- <listitem><para>Easily place content on either side of tool bar using a predefined group layout</para></listitem>
- <listitem><para>Predefined separators for menu items and groups</para></listitem>
- <listitem><para>Any content inside</para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolBarGroup.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,194 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>items</keyword>
-<keyword>rich:toolBarGroup</keyword>
-<keyword>HtmlToolBarGroup</keyword>
-</keywordset>
-</sectioninfo>
- <section>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.ToolBarGroup</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlToolBarGroup</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.ToolBarGroup</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.ToolBarGroupRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.ToolBarGroupTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant on a page use the following syntax:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:toolBar>
- ...
- <rich:toolBarGroup>
- <!--Set of action or other JSF components-->
- </rich:toolBarGroup>
- <rich:toolBarGroup>
- <!--Set of action or other JSF components-->
- </rich:toolBarGroup>
- ...
-</rich:toolBar>
-...
-]]></programlisting>
- </section>
- <section>
-<title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlToolBarGroup;
-...
-HtmlToolBarGroup myToolBarGroup = new HtmlToolBarGroup();
-...
-]]></programlisting>
- </section>
-
-
- <section>
- <title>Details of Usage</title>
- <para>A <property>toolBarGroup</property> is a wrapper component that groups <property>toolBar</property> content and facilitates creation of menu and tool bars. All components defined inside are located on a stylized bar with a possibility to group, arrange on the both bar sides, and place predefined separators between them.</para>
- <para>Separators are located between components with the help of the <emphasis
-
-><property>"itemSeparator"</property></emphasis> attribute with four
- predefined values:</para>
- <itemizedlist>
- <listitem><para> "none" </para></listitem>
- <listitem><para> "line" </para></listitem>
- <listitem><para> "square" </para></listitem>
- <listitem><para> "disc" </para></listitem>
- </itemizedlist>
- <para>To control the group location inside, use the <emphasis
-
-><property>"location"</property></emphasis> attribute with "left" (DEFAULT) and "right" values.</para>
- <para><emphasis role="bold">Example:</emphasis></para>
- <programlisting role="XML"><![CDATA[...
-<rich:toolBar itemSeparator="disc" width="500">
- <rich:toolBarGroup itemSeparator="line">
- <h:commandLink value="Command 1.1"/>
- <h:commandLink value="Command 2.1"/>
- </rich:toolBarGroup>
- <rich:toolBarGroup itemSeparator="line" location="right">
- <h:commandLink value="Command 1.2"/>
- <h:commandLink value="Command 2.2"/>
- </rich:toolBarGroup>
-</rich:toolBar>
-...
-]]></programlisting>
-<para>The code result is the following:</para>
- <figure>
- <title>Stylized <emphasis role="bold"><property><rich:toolbarGroup></property></emphasis> with <emphasis
-
- ><property>"location"</property></emphasis>, <emphasis
-
- ><property>"itemSeparator"</property></emphasis> attributes</title>
-<mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBarGroup2.png"/>
- </imageobject>
-</mediaobject>
- </figure>
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:toolBarGroup></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:toolBarGroup></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>It's possible to change styles of particular <emphasis role="bold"
- ><property><rich:toolBarGroup></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:toolBarGroup></property></emphasis> <property>styleClass</property> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:toolBarGroup></property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:toolBarGroup ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>"styleClass"</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolBarGroup_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above,font style for first <property>toolBarGroup</property> was changed.</para>
- </section>
- <section>
- <title>Relevant resources links</title>
- <para>
- Some additional information about usage of component can be found
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolBar.jsf?c=toolBar">on the component Live Demo page</ulink>.
- </para>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:toolTip</keyword>
-</keywordset>
-<releaseinfo>3.1.0</releaseinfo>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:toolTip></property></emphasis> component is used
- for creation of event-triggered non modal popup, that contains information regarding the page element, that event was applied to.
- </para>
- <figure>
- <title><emphasis role="bold"><property><rich:toolTip></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolTip_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Highly customizable look and feel </para></listitem>
- <listitem><para>Different ways of data loading to toolTip</para></listitem>
- <listitem><para>Disablement support</para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/toolTip.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,457 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
-<sectioninfo>
-<keywordset>
-<keyword>toolTip</keyword>
-<keyword>rich:toolTip</keyword>
-<keyword>HtmltoolTip</keyword>
-</keywordset>
-</sectioninfo>
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.component.toolTip</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlToolTip</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.component.toolTip</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.renderkit.html.toolTipRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.HtmlToolTipTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section id="tab_ccpt">
- <title>Creating the Component with a Page Tag</title>
- <para>The simplest way to create the <emphasis role="bold"><property><rich:toolTip></property></emphasis> component on a page is as following:</para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:panel>
- <rich:toolTip value="Hello, I am the content of this tooltip!"/>
-</rich:panel>
-...
-]]></programlisting>
-</section>
-
-<section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlToolTip;
-...
-HtmltoolTip mytoolTip = new HtmltoolTip();
-...
-]]></programlisting>
-</section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- Text information, labeled on the <emphasis role="bold"><property><rich:toolTip></property></emphasis>, is specified with <emphasis><property>"value"</property></emphasis> attribute.
- Text that is put between tooltip start and end tags will also be rendered as tooltip content and could be marked with HTML tags.
- Images, links, buttons and other RichFaces components are also may be put and composed inside the <emphasis role="bold"><property><rich:toolTip></property></emphasis>.
- The <emphasis role="bold"><property><rich:toolTip></property></emphasis> borders are stretched automatically to enclose the contents.
- </para>
- <para>
- There are three ways to attach the <emphasis role="bold"><property><rich:toolTip></property></emphasis> to a page element.
- The first and simplest one is when the <emphasis role="bold"><property><rich:toolTip></property></emphasis> is nested into a page element the tooltip is applied to.
- This way is shown on example in the <link linkend="tab_ccpt">Creating the Component with a Page Tag</link> section.
- The <emphasis><property>"attached"</property></emphasis> attribute is "true" by default in this case,
- which means that the tolltip will be invoked automatically when the mouse cursor is hovered above the parent component.
- </para>
-
- <para>
- The second one uses <emphasis role="bold"><property><rich:toolTip></property></emphasis> <emphasis><property>"for"</property></emphasis> attribute.
- In this case the <emphasis role="bold"><property><rich:toolTip></property></emphasis> is defined separately from a component it is applied to.
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panel id="panelId">
-...
-</rich:panel>
-<rich:toolTip value="This is a tooltip." for="panelId"/>]]></programlisting>
-
- <para>These two ways are also applicable for HTML elements that are not presented in components tree built by facelets.
- Use <emphasis><property>"for"</property></emphasis> attribute to attach the <emphasis role="bold"><property><rich:toolTip></property></emphasis> in both cases.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<!-- The <rich:toolTip> is nested into the parent HTML element -->
-<div id="para1">
- <p>This paragraph and tooltip are nested into the same <div> element.</p>
- <rich:toolTip for="para1">This is a tooltip.</rich:toolTip>
-</div>
-
-<!-- The <rich:toolTip> is defined separately -->
-<div id="para2">
- <p>The tooltip for this paragraph is defined separately.</p>
-</div>
-<rich:toolTip for="para2">This is a tooltip.</rich:toolTip>]]></programlisting>
-
- <para>The third way to invoke the <emphasis role="bold"><property><rich:toolTip></property></emphasis> uses JS API function.
- List of JS API functions available for <emphasis role="bold"><property><rich:toolTip></property></emphasis> is listed <link linkend="tab_jsapi">below</link>.
- JS API functions are defined for a component the <emphasis role="bold"><property><rich:toolTip></property></emphasis> is applied to.
- The <emphasis role="bold"><property><rich:toolTip></property></emphasis> <emphasis><property>"attached"</property></emphasis> attribute should be set to "false" in this case.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:panel id="panelId" onclick="#{rich:component("tooltipId")}.show(event);" />
-<a4j:form>
- <rich:toolTip id="tooltipId" attached="false" value="This is a tooltip."/>
-</a4j:form>]]></programlisting>
-
- <note>
- <title>Notes:</title>
- <para>To provide <emphasis role="bold"><property><rich:toolTip></property></emphasis> component proper work in complex cases do the following:
- <itemizedlist>
- <listitem><para>specify <emphasis><property>"id's"</property></emphasis> for both <emphasis role="bold"><property><rich:toolTip></property></emphasis> and component it is applied to;</para></listitem>
- <listitem><para>define the <emphasis role="bold"><property><rich:toolTip></property></emphasis> as last child, when nesting it into the component the <emphasis role="bold"><property><rich:toolTip></property></emphasis> is applied to;</para></listitem>
- <listitem><para>put the <emphasis role="bold"><property><rich:toolTip></property></emphasis> into <emphasis role="bold"><property><a4j:form></property></emphasis> when invoking it with JS API function.</para></listitem>
- </itemizedlist>
- </para>
- </note>
-
- <para>
- The <emphasis><property>"mode"</property></emphasis> attribute is provided you to control the way of data loading to <emphasis role="bold"><property><rich:toolTip></property></emphasis>.
- The component works properly in client and Ajax modes.
- In client mode <emphasis role="bold"><property><rich:toolTip></property></emphasis> content is rendered once on the server and could be rerendered only via external submit.
- In Ajax mode <emphasis role="bold"><property><rich:toolTip></property></emphasis> content is requested from server for every activation.
- For Ajax mode there is possibility to define a facet <emphasis><property>"defaultContent"</property></emphasis>, which provides default <emphasis role="bold"><property><rich:toolTip></property></emphasis> content to be displayed, while main content is loading into the <emphasis role="bold"><property><rich:toolTip></property></emphasis> (see the example below).
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:commandLink value="Simple Link" id="link">
- <rich:toolTip followMouse="true" direction="top-right" mode="ajax" value="#{bean.toolTipContent}" horizontalOffset="5"
- verticalOffset="5" layout="block">
- <f:facet name="defaultContent">
- <f:verbatim>DEFAULT TOOLTIP CONTENT</f:verbatim>
- </f:facet>
- </rich:toolTip>
-</h:commandLink>
-...
-]]></programlisting>
- <para>
- This is the result:
- </para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:toolTip></property></emphasis> component with default content</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolTip2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- And after <emphasis role="bold"><property><rich:toolTip></property></emphasis> loaded it is changed to next one:
- </para>
-
- <figure>
- <title><emphasis role="bold"><property><rich:toolTip></property></emphasis> component with loaded content</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolTip3.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>
- <emphasis role="bold"><property><rich:toolTip></property></emphasis> appears attached to the corner
- dependent on the <emphasis><property>"direction"</property></emphasis> attribute.
- By default it is positioned bottom-right.
- <emphasis role="bold"><property><rich:toolTip></property></emphasis> activation occurs after an event,
- defined on the parent component, takes into consideration the "delay" attribute
- or after calling JS API function <code>show()</code>.
- <emphasis><property>"hideEvent"</property></emphasis> attribute defines the way
- how <emphasis role="bold"><property><rich:toolTip></property></emphasis> disappears.
- It default value is "none", so the <emphasis role="bold"><property><rich:toolTip></property></emphasis> does not disappears.
- Deactivation may be set for example on <emphasis><property>mouseout</property></emphasis> event on the parent component
- (excepting the situation when the mouse is hovered onto the
- <emphasis role="bold"><property><rich:toolTip></property></emphasis> itself)
- or after calling JS API function <code>hide()</code>.
- </para>
- <para>
- By default, <emphasis role="bold"><property><rich:toolTip></property></emphasis> appears smart positioned. But as you can see from the previous example, you
- can define an appearance direction via the corresponding attribute <emphasis><property>"direction"</property></emphasis>.
- And also it's possible to define vertical and horizontal offsets relatively to a mouse position.
- </para>
- <para>
- Disabled <emphasis role="bold"><property><rich:toolTip></property></emphasis> is rendered to a page as usual but JS that responds for its activation is disabled until <code>enable()</code> is called.
- </para>
- <para>
- Moreover, to add some JavaScript effects, client events defined on it are used:
- </para>
- <para>
- Standart:
- <itemizedlist>
- <listitem><para><emphasis><property>"onclick"</property></emphasis></para></listitem>
- <listitem><para><emphasis><property>"ondblclick"</property></emphasis></para></listitem>
- <listitem><para><emphasis><property>"onmouseout"</property></emphasis></para></listitem>
- <listitem><para><emphasis><property>"onmousemove"</property></emphasis></para></listitem>
- <listitem><para><emphasis><property>"onmouseover"</property></emphasis></para></listitem>
- </itemizedlist>
- </para>
- <para>
- Special:
- <itemizedlist>
- <listitem><para><emphasis><property>"onshow"</property></emphasis> - Called after the tooltip is called (some element hovered) but before its request</para></listitem>
- <listitem><para><emphasis><property>"oncomplete"</property></emphasis> - Called just after the tooltip is shown</para></listitem>
- <listitem><para><emphasis><property>"onhide"</property></emphasis> - Called after the tooltip is hidden</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id="tab_jsapi">
- <title>JavaScript API</title>
- <table>
- <title>JavaScript API</title>
-
- <tgroup cols="2">
- <thead>
- <row>every acti
- <entry>Function</entry>
-
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
-
- <row>
- <entry>show()</entry>
-
- <entry>Shows the corresponding toolTip</entry>
- </row>
-
- <row>
- <entry>hide()</entry>
-
- <entry>Hides the corresponding toolTip</entry>
- </row>
-
- <row>
- <entry>enable()</entry>
-
- <entry>Enables the corresponding toolTip</entry>
- </row>
-
- <row>
- <entry>disable()</entry>
-
- <entry>Disables the corresponding toolTip</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>defaultContent</entry>
- <entry>Defines the default content for toolTip. It is used only if mode = "ajax"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:toolTip></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:toolTip></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
-
- </section>
- <section>
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters redefinition for a component</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>tipBackgroundColor</entry>
- <entry>background-color</entry>
- </row>
- <row>
- <entry>tipBorderColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>generalSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>generalFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- <row>
- <entry>generalFontColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
-</section>
-
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table id="tab_cn6">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tool-tip</entry>
- <entry>Defines styles for a wrapper <span> or <div> element of a toolTip</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- It depends on <emphasis role="bold"><property><rich:toolTip></property></emphasis> layout what a wrapper element <emphasis role="bold"><property><span></property></emphasis> or <emphasis role="bold"><property><div></property></emphasis>to choose.
- </para>
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:toolTip></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names (possible classes could be found in the table <link linkend="tab_cn6">above</link>) and define necessary properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.rich-tool-tip{
- background-color: #eef2f8;
- border-color: #7196c8;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolTip_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a tool tip background color, border color and font style were changed.</para>
- <para>Also it's possible to change styles of particular <emphasis role="bold"
- ><property><rich:toolTip></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
- ><property><rich:toolTip></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-style: italic;
-}
-...]]></programlisting>
- <para>The <emphasis><property>"styleClass"</property></emphasis> attribute for <emphasis role="bold"
- ><property><rich:toolTip> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:toolTip ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and <emphasis><property>styleClass</property></emphasis> attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/toolTip_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it could be seen on the picture above, background color and border color of <property>tool tip</property> were changed.</para>
-</section>
- <section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/toolTip.jsf?c=toolTip"
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:toolTip></property></emphasis> usage and sources for the given example. </para>
- </section>
-</section>
-
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:tree</keyword>
- </keywordset>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>The component is designed for hierarchical data presentation and is applied for building
-a tree structure with a drag-and-drop capability. </para>
- <figure>
- <title>Expanded <emphasis role="bold"><property><rich:tree></property></emphasis> with child elements</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <!--para>On the screenshot above, there is an example of the <property>tree</property> with an expanded node. This node
- contains its own node with several leaves. Besides, it's possible to choose your own
- icons for tree nodes.</para-->
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
-
-<listitem><para>Highly customizable look-and-feel</para></listitem>
-<listitem><para>Built-in drag and drop capability, than enable relocating tree nodes within the tree</para></listitem>
-<listitem><para>Built-in Ajax processing</para></listitem>
-<listitem><para>Possibility to define a visual representation by node type</para></listitem>
-<listitem><para>Support of several root elements in a tree</para></listitem>
-
-
-
-
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/tree.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,1082 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>presentation of data</keyword>
- <keyword>rich:tree</keyword>
- <keyword>HtmlTree</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.Tree</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlTree</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.Tree</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.TreeRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.TreeTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>There are two ways to set up a tree</para>
- <itemizedlist>
- <listitem>
- <para>Using model (<code>org.richfaces.model.TreeNode</code>
- or <code>javax.swing.tree.TreeNode</code>) </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree value="#{library.data}" var="item" >
- <rich:treeNode icon="/images/tree/singer.png" >
- <h:outputText value="#{item.name}" />
- </rich:treeNode>
- ...
-</rich:tree>
-...]]></programlisting>
-
- </listitem>
- <listitem>
- <para> Using model tags <emphasis role="bold">
- <property><rich:recursiveTreeNodesAdaptor></property>
- </emphasis>, <emphasis role="bold">
- <property><rich:treeNodesAdaptor></property>
- </emphasis>. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree>
- <rich:recursiveTreeNodesAdaptor roots="#{fileSystemBean.sourceRoots}" var="item" nodes="#{item.nodes}" />
-</rich:tree>
-...]]></programlisting>
- </listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlTree;
-...
-HtmlTree myTree = new HtmlTree();
-...]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para> As it has been mentioned <link linkend="tree">above</link> the <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component allows rendering any tree-like data model. </para>
- <para> You can build your <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> using model (<code>org.richfaces.model.TreeNode</code> or
- <code>javax.swing.tree.TreeNode</code>). In this case the
- <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component interacts with data model via
- <code>"TreeNode"</code> interface (<ulink
- url="&apidoc_framework;/org/richfaces/model/TreeNode.html"
- > org.richfaces.model.TreeNode </ulink>) that is used for
- the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> nodes representation. </para>
- <para> Actually you can develop and use your own implementation of the
- <code>"TreeNode"</code> interface or use a
- default one, which is defined with a default class
- <code>"TreeNodeImpl"</code> (<ulink
- url="&apidoc_framework;/org/richfaces/model/TreeNodeImpl.html"
- > org.richfaces.model.TreeNodeImpl </ulink>). </para>
- <para> The <emphasis>
- <property>"value"</property>
- </emphasis> attribute of the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component contains a nodes structure defined in a bean
- property. </para>
- <para> When the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component is being rendered it iterates over the model
- nodes and renders them using one of its <property>immediate</property>
- <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> children. Data property of the current model
- <code>TreeNode</code> is exposed using <emphasis>
- <property>"var"</property>
- </emphasis> attribute, so if
- <code>var="station"</code> you can refer
- to that data using <code>#{station}</code> syntax. </para>
- <para> In the following example the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> is built from a simple
- <code>org.richfaces.model.TreeNode</code> model: </para>
- <programlisting role="JAVA"><![CDATA[...
-private TreeNodeImpl<String> stationRoot = new TreeNodeImpl<String>();
-private TreeNodeImpl<String> stationNodes = new TreeNodeImpl<String>();
-private String[] kickRadioFeed = { "Hall & Oates - Kiss On My List",
- "David Bowie - Let's Dance", "Lyn Collins - Think (About It)",
- "Kim Carnes - Bette Davis Eyes",
- "KC & the Sunshine Band - Give It Up" };
- ...
-stationRoot.setData("KickRadio");
-stationNodes.addChild(0, stationRoot);
-for (int i = 0; i < kickRadioFeed.length; i++){
- TreeNodeImpl<String> child = new TreeNodeImpl<String>();
- child.setData(kickRadioFeed[i]);
- stationRoot.addChild(i, child);
-}
-...]]></programlisting>
- <para> As it is mentioned before you need to pass
- <code>#{stations.stationNodes}</code> property to the <emphasis>
- <property>"value"</property>
- </emphasis> attribute and define the <emphasis>
- <property>"var"</property>
- </emphasis> attribute in order to refer to the data: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree value="#{stations.stationNodes}" var="station">
- <rich:treeNode>
- <h:outputText value="#{station}" />
- </rich:treeNode>
-</rich:tree>
-...]]></programlisting>
- <para> This is a result: </para>
- <figure>
- <title>A simple <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> from a
- <code>org.richfaces.model.TreeNode</code></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeModel.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para> Implementation of the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component provides another way to build a tree. This
- approach implies using a
- <code>"XmlTreeDataBuilder"</code> class
- (<ulink
- url="&apidoc;/org/richfaces/component/xml/XmlTreeDataBuilder.html"
- > org.richfaces.component.xml.XmlTreeDataBuilder </ulink>)
- that allows to transform XML into structures of objects containing
- <code>"XmlNodeData"</code> (<ulink
- url="&apidoc_framework;/org/richfaces/component/xml/XmlNodeData.html"
- > org.richfaces.component.xml.XmlNodeData </ulink>)
- instances as data, which could be represented by the <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component. </para>
- <para> Let's try to build a simple <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> from a local XML file. In the following example a simple
- XML file (stations.xml) is used as a radio station playlist: </para>
- <programlisting role="XML"><![CDATA[<?xml version="1.0"?>
-<station name="KickRadio">
- <feed date="today">
- <song time="07:00">Hall & Oates - Kiss On My List</song>
- <song time="07:03">David Bowie - Let's Dance</song>
- <song time="07:06">Lyn Collins - Think (About It)</song>
- <song time="07:10">Kim Carnes - Bette Davis Eyes</song>
- <song time="07:15">KC & the Sunshine Band - Give It Up</song>
- </feed>
-</station>]]></programlisting>
- <para> Now you need to create a bean that holds a model nodes: </para>
- <programlisting role="JAVA"><![CDATA[...
-private TreeNode data;
- ...
-FacesContext context = FacesContext.getCurrentInstance();
-data = XmlTreeDataBuilder.build(new InputSource(getClass().getResourceAsStream("stations.xml")));
-...]]></programlisting>
- <para> Finally you should set the <emphasis>
- <property>"value"</property>
- </emphasis> attribute to the <code>data</code> bean property and
- define the <emphasis>
- <property>"var"</property>
- </emphasis> attribute in order to refer to the data of nodes: </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree id="treeXML" value="#{stations.data}" var="vardata">
- <rich:treeNode>
- <h:outputText value="#{vardata.attributes['name']}" />
- <h:outputText value="#{vardata.attributes['date']}" />
- <h:outputText value="#{vardata.attributes['time']}" />
- <h:outputText value=" #{vardata.text}" />
- </rich:treeNode>
-</rich:tree>
-...]]></programlisting>
- <para>This is a result:</para>
- <figure>
- <title>A simple <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> from a local XML file</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeXML.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>It's possible to define a visual representation of a node data
- model (to define a node icon) and its behavior in correspondence with
- the data contained in this node (with a value of the <emphasis>
- <property>"var"</property>
- </emphasis> attribute). The node behavior is defined by the components
- nested into the <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> (e.g. links or buttons). For these purposes you should use <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute. For each tree node a value of <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute is evaluated and <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> with a value of <emphasis>
- <property>"type"</property>
- </emphasis> attribute equal to a value of <emphasis>
- <property>"nodeFace"</property>
- </emphasis> is used for node representation. See an example
- below.</para>
-
- <para id="example">
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
- <rich:treeNode type="artist" iconLeaf="/images/tree/singer.png" icon="/images/tree/singer.png">
- <h:outputText value="#{item.name}" />
- </rich:treeNode>
- <rich:treeNode type="album" iconLeaf="/images/tree/disc.png" icon="/images/tree/disc.png">
- <h:outputText value="#{item.title}" />
- </rich:treeNode>
- <rich:treeNode type="song" iconLeaf="/images/tree/song.png" icon="/images/tree/song.png">
- <h:outputText value="#{item.title}" />
- </rich:treeNode>
- </rich:tree>
-</h:form>
-...]]></programlisting>
- <para>This is a result: </para>
- <figure>
- <title>The <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the example above, when each node of data model is processed, data
- contained in the <code>"data"</code> property of
- <property>"TreeNode"</property> interface
- is assigned to a request scope variable, which name is defined with <emphasis>
- <property>"var"</property>
- </emphasis> attribute. The value of the <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute is evaluated in correspondence with the data
- assigned to the <emphasis>
- <property>"var"</property>
- </emphasis> attribute. The corresponding <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> component (with a value of <emphasis>
- <property>"type"</property>
- </emphasis> attribute equal to a value of <emphasis>
- <property>"nodeFace"</property>
- </emphasis>) is used for the node representation. For example, during
- data model processing, an object with a name "Chris
- Rea" was inserted in the <emphasis>
- <property>"var"</property>
- </emphasis> attribute. Then the value of <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute was evaluated as
- <code>"artist"</code>. Thus, for the node
- representation the <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> with <emphasis>
- <property>"type"</property>
- </emphasis> equal to "<code>artist</code>" was
- used.</para>
- <para>You can also assign an EL-expression as value of the <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute. See an example below: </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[
-nodeFace="#{data.name != 'param-value' ? 'artist' : 'album'}"
- ]]></programlisting>
- <para>There are some essential points in a <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute usage: you need to define notions for
- <property>typeless</property> and a
- <property>default</property> nodes. </para>
-
- <para>The <property>typeless node</property> is the first <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> component (from all children nodes nested to the <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component) with not defined <emphasis>
- <property>"type"</property>
- </emphasis> attribute and defined <emphasis>
- <property>"rendered"</property>
- </emphasis> attribute. The <property>typeless node</property> is used
- for representation when <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute is null.</para>
- <para><property>Default node</property> has the following interior
- presentation:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<h:outputText value="#{varAttributeName}">
-...]]></programlisting>
- <para>
- <emphasis>
- <property>"varAttributeName"</property>
- </emphasis> is a value for <emphasis>
- <property>"var"</property>
- </emphasis> attribute. </para>
- <para><property>Default node</property> is used in the following cases:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute is defined, but its value
- isn't equal to any <emphasis>
- <property>"type"</property>
- </emphasis> attribute value from all children
- nodes;</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute is defined and its value is
- equal to a value of some <emphasis>
- <property>"type"</property>
- </emphasis> attribute from all children nodes, but
- the value of <emphasis>
- <property>"rendered"</property>
- </emphasis> attribute for this node is
- <property>"false"</property>.</para>
- </listitem>
- </itemizedlist>
- <para>There is also one thing that has to be remembered using <emphasis>
- <property>"type"</property>
- </emphasis> and <emphasis>
- <property>"rendered"</property>
- </emphasis> attributes: it's possible to define several
- <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> components with equal values of <emphasis>
- <property>"type"</property>
- </emphasis> attribute and different values of <emphasis>
- <property>"rendered"</property>
- </emphasis> attribute. It provides a possibility to define different
- representation styles for the same node types. In the example with
- artists and their albums (see <link linkend="example">above</link>)
- it's possible to represent albums that are available for sale
- and albums that are not available. Please study the example
- below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
- ...
- <rich:treeNode type="album" iconLeaf="/images/tree/album.gif" icon="/images/tree/album.gif"
- rendered="#{item.exist}">
- <h:outputText value="#{item.name}" />
- </rich:treeNode>
- <rich:treeNode type="album" iconLeaf="/images/tree/album_absent.gif" icon="/images/tree/album_absent.gif"
- rendered="#{not item.exist}">
- <h:outputText value="#{item.name}" />
- </rich:treeNode>
- ...
- </rich:tree>
-</h:form>
-...]]></programlisting>
- <para>This is a result of the code: </para>
- <figure>
- <title>The <emphasis>
- <property>"type"</property>
- </emphasis> and the <emphasis>
- <property>"rendered"</property>
- </emphasis> attributes usage</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree4.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>In the example the <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> components has equal values of the <emphasis>
- <property>"type"</property>
- </emphasis> attribute. Depending on value of the <emphasis>
- <property>"rendered"</property>
- </emphasis> attribute the corresponding <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> component is selected for node representation. If an album
- is available for sale the value of the <emphasis>
- <property>"rendered"</property>
- </emphasis> for the first <emphasis>
- <property><rich:treeNode></property>
- </emphasis> component is "true", for the second one
- is "false". Thus, the first <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> is selected for node representation. </para>
- <para>Tree node can be run in tree modes. Modes can be specified with <emphasis>
- <property>"switchType"</property>
- </emphasis> attribute for<emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component.</para>
- <itemizedlist>
- <listitem>
- <para><code>Ajax</code> (default value) - Ajax submission is
- used performing the functionality. Note, that for
- collapse/expand operations an Ajax request is sent
- to the server and it can cause a short
- delay.</para>
- </listitem>
- <listitem>
- <para><code>Server</code> - regular form of submission
- request is used.</para>
- </listitem>
- <listitem>
- <para><code>Client</code> – all operations are performed
- totally on the client; no interaction with a
- server is involved. Full page content is reloaded
- after every action.</para>
- </listitem>
- </itemizedlist>
- <para> The <emphasis>
- <property>"icon"</property>
- </emphasis>, <emphasis>
- <property>"iconCollapsed"</property>
- </emphasis>, <emphasis>
- <property>"iconExpanded"</property>
- </emphasis>, <emphasis>
- <property>"iconLeaf"</property>
- </emphasis> attributes set the icons' images for the
- component. You can also define icons using facets with the same names.
- If the facets are defined, the corresponding attributes are ignored
- and facets' content is used as icons. By default the width of
- a rendered facet area is 16px. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:tree value="#{library.data}" var="item">
- ...
- <f:facet name="icon">
- <h:graphicImage value="/images/tree/singer.png "/>
- </f:facet>
- <f:facet name="iconCollapsed">
- <h:graphicImage value="/images/tree/singer.png" />
- </f:facet>
- <f:facet name="iconExpanded">
- <h:graphicImage value="/images/tree/singer.png" />
- </f:facet>
- <f:facet name="iconLeaf">
- <h:graphicImage value="/images/tree/song.png" />
- </f:facet>
- ...
-</rich:tree>
-...]]></programlisting>
-
- <para> The <emphasis role="bold">
- <property><rich: tree></property>
- </emphasis> component can be used together with <emphasis role="bold">
- <property><rich: treeNodeAdaptor></property>
- </emphasis>. In this case there is no need to specify the attributes <emphasis>
- <property>"value"</property>
- </emphasis> and <emphasis>
- <property>"var"</property>
- </emphasis>. Besides, visual representation shouldn't be
- defined right in the <property>tree</property>. In this case a
- <emphasis role="bold">
- <property><rich: tree></property>
- </emphasis> tag is applied mainly for defining common attributes such
- as <emphasis>
- <property>"ajaxSubmitSelection"</property>
- </emphasis> etc. </para>
- <para> Information about the <emphasis>
- <property>"process"</property>
- </emphasis> attribute usage you can find in the <link
- linkend="process"> "Decide what to
- process" </link> guide section. </para>
- <!--<tip>
- <title>Tip:</title>
- <para>
- <emphasis>
- <property>"rowKeyConverter"</property>
- </emphasis> support for the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> is pending! </para>
- </tip>-->
-
- <para>As it's mentioned before, the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component uses a data model to represent the tree-like
- nodes structure on the page. To identify a particular node during a
- client request, the model provides a set of unique keys for tree
- nodes. The <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> can use strings as keys values
- which may contain special characters not allowed by browsers, such as
- the left angle bracket (<), ampersand (&), ant etc. Thus, to
- have a possibility to use unallowed characters in the
- <property>tree</property> nodes keys, the following converters
- are provided: </para>
- <itemizedlist>
- <listitem>
- <para><code>org.richfaces.TreeRowKeyConverter</code> that is
- used for <property>"TreeNode"</property> based trees.
- The key should be of a
- <code>java.lang.String</code> type.</para>
- </listitem>
- <listitem>
- <para><code>org.richfaces.TreeAdaptorRowKeyConverter</code>
- that is used for adaptor-based trees (see
- <link linkend="rich_treeNodesAdaptor"><emphasis role="bold">
- <property><rich:treeNodesAdaptor></property>
- </emphasis></link>, <link linkend="rich_recursiveTreeNodesAdaptor"><emphasis role="bold">
- <property><rich:recursiveTreeNodesAdaptor></property>
- </emphasis></link>). The key should be of a
- <code>java.lang.String</code> type.</para>
- </listitem>
- <listitem>
- <para><code>org.richfaces.TreeAdaptorIntegerRowKeyConverter</code>
- which is provided for adaptor-based trees. The key
- should be of a <code>java.lang.Integer</code>
- type.</para>
- </listitem>
- </itemizedlist>
-
- <para>The converters can be extended in order to have a possibility for
- implementing custom converters.</para>
- <para>To apply a converter to the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component, you should define it as a value of the <emphasis>
- <property>"rowKeyConverter"</property>
- </emphasis> attribute.</para>
-
- <para>Have a look at the example of a tree which contains the RichFaces
- components as its nodes and the components attributes as the nodes
- child elements. As the components have unallowed characters (<
- and >) in their names, the <code>org.richfaces.TreeRowKeyConverter</code> is used here.</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:tree value="#{treeBean.data}" var="node" switchType="ajax" rowKeyConverter="org.richfaces.TreeRowKeyConverter">
- <rich:treeNode ajaxSingle="true">
- <h:outputText value="#{node}"/>
- </rich:treeNode>
-</rich:tree>
-...]]></programlisting>
-
- <para>In the example the tree uses the following data model:</para>
-
- <programlisting role="JAVA"><![CDATA[...
-String[ ] components = {"< a4j:ajaxListener >", "< a4j:keepAlive >", "< a4j:actionparam >" };
-String[ ][ ] attributes = {{"type"},
- {"ajaxOnly", "beanName"},
- {"actionListener", "assignTo", "binding", "converter", "id", "name", "noEscape", "value"}};
-
-data = new TreeNodeImpl<String>();
-
-for (int i = 0; i < components.length; i++) {
- TreeNode<String> child = new TreeNodeImpl<String>();
- child.setData(components[i]);
- data.addChild(components[i], child);
-
- for (int j = 0; j < attributes[i].length; j++) {
- TreeNode<String> grandChild = new TreeNodeImpl<String>();
- grandChild.setData(attributes[i][j]);
- child.addChild(attributes[i][j], grandChild);
- }
-}
-...]]></programlisting>
-
- </section>
-
- <section id="tsebro" role="updated">
- <title>Built-In Drag and Drop</title>
- <para>Words "built-in" in this context mean, that <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component has its own attributes, that provide
- <property>drag-and-drop</property> capability. These
- attributes can be divided into two groups: those ones which provide
- <property>drag</property> and those which provide
- <property>drop</property> operations (see the tables below). </para>
-
- <table>
- <title>Drag group</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Attribute Name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>dragValue</entry>
- <entry>Element value drag passed into processing
- after a Drop event</entry>
- </row>
- <row>
- <entry>dragListener</entry>
- <entry>A listener that processes a Drag
- event</entry>
- </row>
- <row>
- <entry>dragIndicator</entry>
- <entry>Id of a component that is used as a drag
- pointer during the drag operation</entry>
- </row>
- <row>
- <entry>dragType</entry>
- <entry>Defines a drag zone type that is used for
- definition of a dragged element, which can be
- accepted by a drop zone</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Drop group</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Attribute Name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>dropValue</entry>
- <entry>Element value drop passed into processing
- after Drop events </entry>
- </row>
- <row>
- <entry>dropListener</entry>
- <entry>A listener that processes a Drop event.
- </entry>
- </row>
- <row>
- <entry>acceptedTypes</entry>
- <entry>Drag zone names are allowed to be processed
- with a Drop zone</entry>
- </row>
- <row>
- <entry>typeMapping</entry>
- <entry>Drag zones names mapping on the
- corresponding drop zone parameters</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>Consider <property>drag-and-drop</property> inside a tree. All zones,
- which are assumed to be dragged, must be marked. In terms of <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> these zones completely correspond to tree nodes. So, all
- dragging nodes should be marked with <emphasis>
- <property>"dragType"</property>
- </emphasis> attribute. Then, to mark zone(-s), where the dragging node
- could be dropped, pass the type of dragging node to the <emphasis>
- <property>"acceptedTypes"</property>
- </emphasis> attribute of the drop zone. It would be good to itemize,
- that each tree node in the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component’s structure has its own
- <emphasis>key</emphasis>. Depending on how the component is used,
- these keys can be generated by the component itself or can be taken
- from the component’s data model. Keys help to identify each node in a
- tree; key is what exactly being passing from one node to another in
- <property>drag-and-drop</property> operations. Finally, the
- method binding, that will process <property>drag-and-drop</property>
- operation, should be pointed via <emphasis>
- <property>"dropListener"</property>
- </emphasis> attribute of the <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis>. </para>
- <para> Chapters "<link linkend="ch1">6.40
- <dragIndicator></link>" and
- "<link linkend="dndParam">6.39
- <dndParam></link>" describes how to
- apply visual element, that show some additional information (e.g.
- dragging item name) while operating with
- <property>drag-and-drop</property>. </para>
- <para> Page code, that describes a tree with built in
- <property>drag-and-drop</property> in the way it is
- considered, is shown below. </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
-
- <programlisting role="XML"><![CDATA[...
-<h:form>
- <rich:tree style="width:300px" value="#{libraryAjaxTree.data}" nodeFace="#{item.type}" var="item" dragIndicator=":treeDragIndicator" dropListener="#{libraryAjaxTree.processDrop}">
- <rich:treeNode type="artist" icon="/images/tree/group.png" iconLeaf="/images/tree/group.png" acceptedTypes="album">
- <h:outputText value="#{item.name}" />
- </rich:treeNode>
- <rich:treeNode type="album" icon="/images/tree/cd.png" iconLeaf="/images/tree/cd.png" dragType="album" acceptedTypes="song">
- <h:outputText value="#{item.title}" />
- <rich:dndParam name="label" type="drag" value="Album: #{item.title}" />
- </rich:treeNode>
- <rich:treeNode type="song" icon="/images/tree/music.png" iconLeaf="/images/tree/music.png" dragType="song">
- <h:outputText value="#{item.title}" />
- <rich:dndParam name="label" type="drag" value="Song: #{item.title}" />
- </rich:treeNode>
- </rich:tree>
-</h:form>
-...]]></programlisting>
-
- <para>This code renders following tree:</para>
-
- <figure>
- <title>Drag-and-drop operations</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree5.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- </section>
-
- <section>
- <title>Events handling</title>
- <para>Listeners classes that process events on the server side are defined with
- the help of:</para>
- <itemizedlist>
- <listitem>
- <para><property>changeExpandListener</property> processes
- expand/collapse event of a
- <property>treeNode</property></para>
- </listitem>
- <listitem>
- <para><property>dropListener</property> processes a Drop
- event</para>
- </listitem>
- <listitem>
- <para><property>dragListener</property> processes a Drag
- event</para>
- </listitem>
- <listitem>
- <para><property>nodeSelectListener</property> is called
- during request sending on a node selecting event
- (if request sending on this event is
- defined)</para>
- </listitem>
- </itemizedlist>
-
- <para>Listener methods can be defined using the <link linkend="treeNodeKF"
- >following attributes</link> or using nested tags.</para>
- <para>Client event attributes are:</para>
- <itemizedlist>
- <listitem>
- <para><emphasis>
- <property>"onexpand"</property>
- </emphasis> is a script expression to invoke when
- a node is expanded</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"oncollapse"</property>
- </emphasis> is a script expression to invoke when
- a node is collapsed</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"ondragexit"</property>
- </emphasis> is a script expression to invoke when
- an element passing out from a tree zone</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"ondragstart"</property>
- </emphasis> is a script expression to invoke when
- dragging starts</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"ondragend"</property>
- </emphasis> is a script expression to invoke when
- dragging ends (a drop event)</para>
- </listitem>
- <listitem>
- <para><emphasis>
- <property>"ondragenter"</property>
- </emphasis>is a script expression to invoke when a
- dragged element appears on a tree</para>
- </listitem>
- </itemizedlist>
-
- <para>They can be used to add some JavaScript effects.</para>
-
- <para> Standart HTML event attributes like<emphasis>
- <property>"onclick"</property>
- </emphasis>, <emphasis>
- <property>"onmousedown"</property>
- </emphasis>, <emphasis>
- <property>"onmouseover"</property>
- </emphasis> etc. can be also used. Event handlers of a <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component capture events occured on any
- <property>tree</property> part. But event handlers of
- <property>treeNode</property> capture events occured on
- <property>treeNode</property> only, except for children
- events. </para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>icon</entry>
- <entry>Redefines the icon for node. Related
- attribute is "icon"</entry>
- </row>
- <row>
- <entry>iconCollapsed</entry>
- <entry>Redefines the icon for collapsed node.
- Related attribute is
- "iconCollapsed"</entry>
- </row>
- <row>
- <entry>iconExpanded</entry>
- <entry>Redefines the icon for expanded node.
- Related attribute is
- "iconExpanded"</entry>
- </row>
- <row>
- <entry>iconLeaf</entry>
- <entry>Redefines the icon for component leaves.
- Related attribute is
- "iconLeaf"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Skin Parameters Redefinition:</title>
- <para>There is only one skin parameter for <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis>. As it's a wrapper component for <emphasis
- role="bold">
- <property><rich:treeNode></property>
- </emphasis> components, look and feel customization is described in
- the <link linkend="SPRofTN">corresponding section</link>.</para>
- <table>
- <title>Skin parameters for a wrapper element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>overAllBackground</entry>
- <entry>background-color </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Definition of Custom Style Classes</title>
-
- <table id="tab_cn7">
- <title>Classes names that define a component appearance</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tree</entry>
- <entry>Defines styles for a wrapper
- <div> element of a tree</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine styles for all <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> components on a page using CSS, it's enough to
- create classes with the same names (possible classes could be found in
- the table <link linkend="tab_cn7">above</link>) and define necessary
- properties in them. An example is placed below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
- .rich-tree{
- font-weight:bold;
-}
-...]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with predefined classes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree_pc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>In the example a tree font weight was changed to bold.</para>
- <para>Also it's possible to change styles of a particular <emphasis
- role="bold">
- <property><rich:tree></property>
- </emphasis> component. In this case you should create own style
- classes and use them in corresponding <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis>
- <property>styleClass</property> attributes. An example is placed
- below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="CSS"><![CDATA[...
-.myClass{
- font-weight:bold;
-}
-...]]></programlisting>
- <para>The <emphasis>
- <property>"highlightedClass"</property>
- </emphasis> attribute for <emphasis role="bold">
- <property><rich:tree> </property>
- </emphasis> is defined as it's shown in the example
- below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[<rich:tree ... styleClass="myClass"/>
-]]></programlisting>
-
- <para>This is a result:</para>
-
- <figure>
- <title>Redefinition styles with own classes and styleClass
- attributes</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/tree_oc.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>As it's shown on the picture above, font weight of highlighted
- text node of a <property>tree</property> was changed to bold.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://livedemo.exadel.com/richfaces-demo/richfaces/tree.jsf?c=tree"
- >On the component LiveDemo page</ulink> you can see the
- example of <emphasis role="bold">
- <property><rich:tree></property>
- </emphasis> usage and sources for the given example. </para>
- <para>How to Expand/Collapse Tree Nodes from code, see in this<ulink
- url="http://labs.jboss.com/wiki/ExpandCollapseTreeNodes"
- >wiki article</ulink>. </para>
- </section>
-
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:treeNode</keyword>
-</keywordset>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The <emphasis role="bold"><property><rich:treeNode></property></emphasis> component is designed
- for creating sets of tree elements within a <emphasis role="bold"><property><rich:tree></property></emphasis>component.
-
- </para>
- <figure>
- <title><emphasis role="bold"><property><rich:treeNode></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeNode_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section id="treeNodeKF">
- <title>Key Features</title>
-
- <itemizedlist>
- <listitem><para>Possibility to assign different icon images for each node within a tree</para></listitem>
- <listitem><para>Drag and Drop support</para></listitem>
- <listitem><para>Look-and-Feel customization</para></listitem>
-
- </itemizedlist>
- </section>
-</section>
\ No newline at end of file
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNode.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,426 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>node</keyword>
- <keyword>rich:treeNode</keyword>
- <keyword>HtmlTreeNode</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.TreeNode</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlTreeNode</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.TreeNode</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.TreeNodeRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.TreeNodeTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>Here is a simple example as it can be used on a page: </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree ... faceNode="simpleNode">
- <rich:treeNode type="simpleNode">
- <!--Tree node data displaying template-->
- </rich:treeNode>
-</rich:tree>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlTreeNode;
-...
-HtmlTreeNode myPanel = new HtmlTreeNode();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
- <para> The <emphasis>
- <property>"icon"</property>
- </emphasis>, <emphasis>
- <property>"iconCollapsed"</property>
- </emphasis>, <emphasis>
- <property>"iconExpanded"</property>
- </emphasis>, <emphasis>
- <property>"iconLeaf"</property>
- </emphasis> attributes define icons for the component. Also you can define icons using facets
- with the same names. If the facets are defined, the corresponding attributes are ignored and
- facets contents are used as icons. The width of a rendered facet area is 16px. </para>
-
- <programlisting role="XML"><![CDATA[...
-<rich:tree ...>
- ...
- <rich:treeNode ...>
- <f:facet name="icon">
- <outputText value="A"/>
- </f:facet>
- <f:facet name="iconCollapsed">
- <outputText value="B"/>
- </f:facet>
- <f:facet name="iconExpanded">
- <outputText value="C"/>
- </f:facet>
- <f:facet name="iconLeaf">
- <outputText value="D"/>
- </f:facet>
- </rich:treeNode>
- ...
-</rich:tree>
-...
-]]></programlisting>
- <para>As it has been mentioned <link linkend="treeNode">above</link>, <emphasis role="bold"><property><rich:treeNode></property></emphasis> defines a template for nodes
- rendering in a tree. Thus, during XML document rendering (a web.xml application) as a tree,
- the following nodes output (passed via <code>var="data"</code> on a tree) happens:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree ... faceNode="simpleNode" ... value="#{bean.data}" var="data">
- <rich:treeNode type="simpleNode">
- <h:outputText value="context-param:"/>
- <h:inputText value="#{data.name}"/>
- </rich:treeNode>
-</rich:tree>
-...
-]]></programlisting>
- <figure>
- <title>Nodes output</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeNode2.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- <para>Hence,<emphasis role="bold"><property><h:outputText /></property></emphasis> tag outputs the <code>"context-param"</code> string and
- then the <emphasis role="bold"><property><h:inputText /></property></emphasis> outputs the <code>data.name</code> element of this node.
- </para>
- <para>Different nodes for rendering could be defined depending on some conditions on the tree
- level. Each condition represents some rendering template. To get more information on various
- <property>treeNodesAdaptorAdaptor</property> definition for nodes, <link linkend="tree">see the tree
- component chapter</link>.</para>
- <para>Switching between expanded/collapsed modes is also managed on the tree level and defined
- in <link linkend="tree">the corresponding section</link>.</para>
- <para>Default nodes of the tree level as well as the ones defined with the
- <property>treeNodesAdaptorAdaptor</property> component could send Ajax requests when selected with the
- mouse, it's managed with the <emphasis>
- <property>"ajaxSubmitSelection"</property>
- </emphasis> attribute (true/false).</para>
- <para>
- Information about the <emphasis><property>"process"</property></emphasis> attribute usage you can find <link linkend="process">" Decide what to process " </link> guide section.
- </para>
- </section>
- <section>
- <title>Built-in Drag and Drop</title>
- <para>The main information on Drag and Drop operations is given in <link linkend="tree">the
- corresponding paragraph</link> of the <property>tree</property> component chapter.
- It's only necessary to mention that each node could also be a Drag element as well as
- a Drop container, i.e. the container and the element have all attributes, listeners and ways
- of behavior similar to the ones of the <emphasis role="bold">
- <property><rich:dragSupport ></property>
- </emphasis> and <emphasis role="bold">
- <property><rich:dropSupport ></property>
- </emphasis> components simultaneously.</para>
- </section>
- <section>
- <title>Events Handling</title>
- <para>Just as Drag and Drop operations it corresponds to the one described on <link
- linkend="tree">the tree component level</link> for a default Node.</para>
- </section>
-
- <section>
- <title>Facets</title>
- <table>
- <title>Facets</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Facet name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>icon</entry>
- <entry>Redefines the icon for node. Related attribute is "icon"</entry>
- </row>
- <row>
- <entry>iconCollapsed</entry>
- <entry>Redefines the icon for collapsed node. Related attribute is "iconCollapsed"</entry>
- </row>
- <row>
- <entry>iconExpanded</entry>
- <entry>Redefines the icon for expanded node. Related attribute is "iconExpanded"</entry>
- </row>
- <row>
- <entry>iconLeaf</entry>
- <entry>Redefines the icon for component leaves. Related attribute is "iconLeaf"</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Look-and-Feel Customization</title>
-
- <para>For skinnability implementation, the components use a <emphasis>
- <property>style class redefinition method.</property>
- </emphasis> Default style classes are mapped on <emphasis>
- <property>skin parameters.</property>
- </emphasis></para>
-
- <para>There are two ways to redefine the appearance of all <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> components at once:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redefine the corresponding skin parameters</para>
- </listitem>
-
- <listitem>
- <para>Add to your style sheets <emphasis>
- <property>style classes</property>
- </emphasis> used by a <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> component</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="SPRofTN">
- <title>Skin Parameters Redefinition</title>
- <table>
- <title>Skin parameters for a node element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>panelTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>preferableDataSizeFont</entry>
- <entry>font-size</entry>
- </row>
- <row>
- <entry>preferableDataFamilyFont</entry>
- <entry>font-family</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters for a selected element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>headerBackgroundColor</entry>
- <entry>border-color</entry>
- </row>
- <row>
- <entry>panelTextColor</entry>
- <entry>color</entry>
- </row>
- <row>
- <entry>selectControlColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <table>
- <title>Skin parameters for a mouseovered element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Skin parameters</entry>
- <entry>CSS properties</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>selectControlColor</entry>
- <entry>color</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <para>On the screenshot there are classes names that define styles for component elements.</para>
-
- <figure>
- <title>Classes names</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeNode_cn.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <table>
- <title>Classes names that define a node element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-tree-node</entry>
- <entry>Defines styles for a tree node</entry>
- </row>
-
- <row>
- <entry>rich-tree-node-handle</entry>
- <entry>Defines styles for a tree node handle</entry>
- </row>
-
- <row>
- <entry>rich-tree-node-handleicon</entry>
- <entry>Defines styles for a tree node handle icon</entry>
- </row>
-
- <row>
- <entry>rich-tree-node-children</entry>
- <entry>Defines styles for all tree node subnodes</entry>
- </row>
- <row>
- <entry>rich-tree-node-text</entry>
- <entry>Defines styles for a tree node text</entry>
- </row>
- <row>
- <entry>rich-tree-node-icon</entry>
- <entry>Defines styles for a tree node icon</entry>
- </row>
- <row>
- <entry>rich-tree-h-ic-img</entry>
- <entry>Defines styles for an image of a tree node</entry>
- </row>
- <row>
- <entry>rich-tree-node-icon-leaf</entry>
- <entry>Defines styles for a tree node icon leaf</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <table>
- <title>Classes names that define states for a node element</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
-
- <row>
- <entry>rich-tree-node-selected</entry>
- <entry>Defines styles for a selected tree node </entry>
- </row>
- <row>
- <entry>rich-tree-node-highlighted</entry>
- <entry>Defines styles for a highlighted tree node </entry>
- </row>
-
- <row>
- <entry>rich-tree-node-handleicon-collapsed</entry>
- <entry>Defines styles for a collapsed tree node handleicon </entry>
- </row>
- <row>
- <entry>rich-tree-node-handleicon-expanded</entry>
- <entry>Defines styles for a expanded tree node handleicon</entry>
- </row>
-
- </tbody>
- </tgroup>
- </table>
-
- <para>In order to redefine the style for all <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> components on a page using CSS, it's enough to create classes with the
- same names and define the necessary properties in them.</para>
-
- <para>For instance, if you need to change the size of a tree node image, you should redefine the <code>.rich-tree-h-ic-img</code> class properties:</para>
- <programlisting role="CSS"><![CDATA[...
-.rich-tree-h-ic-img{
- width:30px;
- height:30px;
-}
-...]]></programlisting>
-
- <para>To change the style of particular <emphasis role="bold">
- <property><rich:treeNode></property>
- </emphasis> components define your own style classes in the corresponding <emphasis
- role="bold">
- <property><rich:treeNode></property>
- </emphasis>attributes.</para>
- <para>It is also possible to change look and feel of specific <emphasis role="bold"><property><rich:treeNode></property>
- </emphasis> with the help of defining for them <emphasis>
- <property>"selectedClass"</property>
- </emphasis> and <emphasis>
- <property>"highlightedClass"</property>
- </emphasis> attributes by their specific classes.</para>
- </section>
-
- <section>
- <title>Relevant Resources Links</title>
- <para>How to Expand/Collapse Tree Nodes from code see in this<ulink
- url="http://labs.jboss.com/wiki/ExpandCollapsetreeNodesAdaptor">wiki article</ulink>. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>rich:treeNodesAdaptor</keyword>
- </keywordset>
- <releaseinfo>3.1.0</releaseinfo>
- </sectioninfo>
- <section>
- <title>Description</title>
- <para>
- The <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> provides the possibility to define data models
- and create representations for them.
- </para>
- <figure>
- <title>Expanded tree with <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeNodesAdaptor_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Allows to define combined data models</para></listitem>
- <listitem><para>Possibility to define nodes for processing via attributes</para></listitem>
- </itemizedlist>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,132 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>treeNodesAdaptor</keyword>
- <keyword>rich:treeNodesAdaptor</keyword>
- <keyword>HtmltreeNodesAdaptor</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.TreeNodesAdaptor</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>org.richfaces.component.html.HtmlTreeNodesAdaptor</entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.TreeNodesAdaptor</entry>
- </row>
- <!--
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.EffectRenderer</entry>
- </row>
- -->
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.TreeNodesAdaptorTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <!--para>
- In order to create the simplest variant of <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> on a page use the
- following syntax:
- </para-->
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:treeNodesAdaptor var="issue" nodes="#{model.issues}">
- <rich:treeNode>
- <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
- </rich:treeNode>
- ...
- <!-- Others nodes -->
- ...
-</rich:treeNodesAdaptor>
-...]]></programlisting>
- </section>
-
- <section>
- <title>Creating the Component Dynamically Using Java</title>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlTreeNodesAdaptor;
-...
-HtmlTreeNodesAdaptor myTreeNodesAdaptor = new HtmlTreeNodesAdaptor();
-...
-]]></programlisting>
- </section>
-
- <section>
- <title>Details of Usage</title>
- <para>
- The <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> component
- has a <emphasis><property>"nodes"</property></emphasis> attribute that defines a collection of elements to iterate through.
- </para>
- <para>
- Collections are allowed to include lists, arrays, maps, XML NodeList and NamedNodeMap either as a single object.
- </para>
- <para>
- The <emphasis><property>"var"</property></emphasis> attribute is used to access to the current collection element.
- </para>
- <para>
- The <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> component can be nested without any limitations.
- See the following example.
- </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
- <rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
- <rich:treeNode>
- <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
- </rich:treeNode>
- <rich:treeNodesAdaptor id="srcDir" var="srcDir" nodes="#{project.srcDirs}">
- <rich:treeNode>
- <h:commandLink action="#{srcDir.click}" value="Source directory: #{srcDir.name}" />
- </rich:treeNode>
- <rich:treeNodesAdaptor id="pkg" var="pkg" nodes="#{srcDir.packages}">
- <rich:treeNode>
- <h:commandLink action="#{pkg.click}" value="Package: #{pkg.name}" />
- </rich:treeNode>
- <rich:treeNodesAdaptor id="class" var="class" nodes="#{pkg.classes}">
- <rich:treeNode>
- <h:commandLink action="#{class.click}" value="Class: #{class.name}" />
- </rich:treeNode>
- </rich:treeNodesAdaptor>
- </rich:treeNodesAdaptor>
- </rich:treeNodesAdaptor>
- </rich:treeNodesAdaptor>
-</rich:tree>
-...]]></programlisting>
-
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?..."
- >On the component LiveDemo page</ulink> you can see the example of <emphasis role="bold"><property><rich:treeNodesAdaptor ></property></emphasis>
- usage and sources for the given example. </para>
- </section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.desc.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.desc.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.desc.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section>
-<sectioninfo>
-<keywordset>
- <keyword>rich:virtualEarth</keyword>
-</keywordset>
-<releaseinfo>3.1.0</releaseinfo>
-</sectioninfo>
-<section>
-<title>Description</title>
- <para>The component presents the Microsoft <property>Virtual Earth map</property> in the JSF applications.</para>
- <figure>
- <title><emphasis role="bold"><property><rich:virtualEarth></property></emphasis> component</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/virtualEarth_init.png"/>
- </imageobject>
- </mediaobject>
- </figure>
- </section>
- <section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem><para>Presents the Microsoft <property>Virtual Earth map</property> functionality</para></listitem>
- <listitem><para>Highly customizable via attributes</para></listitem>
- <listitem><para>No developers JavaScript writing is needed to use it on a pages</para></listitem>
- </itemizedlist>
-</section>
-</section>
Deleted: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/virtualEarth.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,283 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<section>
- <sectioninfo>
- <keywordset>
- <keyword>map</keyword>
- <keyword>Virtual Earth</keyword>
- </keywordset>
- </sectioninfo>
-
- <table>
- <title>Component identification parameters</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>component-type</entry>
- <entry>org.richfaces.VirtualEarth</entry>
- </row>
- <row>
- <entry>component-class</entry>
- <entry>
- org.richfaces.component.html.HtmlVirtualEarth
- </entry>
- </row>
- <row>
- <entry>component-family</entry>
- <entry>org.richfaces.VirtualEarth</entry>
- </row>
- <row>
- <entry>renderer-type</entry>
- <entry>org.richfaces.VirtualEarthRenderer</entry>
- </row>
- <row>
- <entry>tag-class</entry>
- <entry>org.richfaces.taglib.VirtualEarthTag</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <section>
- <title>Creating the Component with a Page Tag</title>
- <para>
- To create the simplest variant on a page use the following
- syntax:
- </para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:virtualEarth lat="..." lng="..."/>
-...
-]]></programlisting>
- </section>
- <section>
- <title>Creating the Component Dynamically Using Java</title>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="JAVA"><![CDATA[import org.richfaces.component.html.HtmlVirtualEarth;
-...
-HtmlVirtualEarth myMap = new HtmlVirtualEarth();
-...
-]]></programlisting>
- </section>
- <section>
- <title>Details of Usage</title>
-
- <para>
- Here are the main settings of initial rendering performed
- with a component
- <property>map</property>
- that are accessible with the following attributes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>
- <property>"zoom"</property>
- </emphasis>
- defines an approximation size (boundary values 1-18)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"lat"</property>
- </emphasis>
- specifies an initial latitude coordinate in degrees,
- as a number between -90 and +90
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"lng"</property>
- </emphasis>
- specifies an initial longitude coordinate in
- degrees, as a number between -180 and +180
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>
- <property>"dashboardSize"</property>
- </emphasis>
- specifies a type of a rendered map (Normal, Small,
- Tiny)
- </para>
- </listitem>
- </itemizedlist>
- <para>
- For example, the city of Paris is shown after rendering with
- the following initial settings:
- <code>lat = "48.833"</code>
- ,
- <code>lng = "2.40"</code>
- and
- <code>zoom = "11"</code>
- .
- </para>
- <figure>
- <title>
- <emphasis role="bold">
- <property><rich:virtualEarth></property>
- </emphasis>
- initial rendering
- </title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/virtualEarth2.png" />
- </imageobject>
- </mediaobject>
- </figure>
- <para>Code for this example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
- <programlisting role="XML"><![CDATA[...
-<rich:virtualEarth style="width:800px;" id="vm" lat="48.833" lng="2.40"
- dashboardSize="Normal" zoom="11" mapStyle="Hybrid" var="map" />
-...
-]]></programlisting>
-
- <para>
- To set all these parameters and perform some activity (Zoom
- In/Out etc.) is possible with your JavaScript, i.e. declare
- a name of an object on a
- <property>map</property>
- in the
- <emphasis>
- <property>"var"</property>
- </emphasis>
- attribute and then call the object directly with API
- <emphasis>
- <property>Microsoft Virtual Earth map</property>
- .
- </emphasis>
- </para>
- <para>
- For example, to approximate a map for
- <code>var = "map"</code>
- declared inside the component, call
- <code>map.ZoomIn()</code>
- on an event.
- </para>
- <para>
- Moreover, to add e.g. some JavaScript effects, events
- defined on it are used.
- </para>
- <itemizedlist>
- <listitem>
- <para><emphasis><property>"onmouseover"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onclick"</property></emphasis></para>
- </listitem>
- <listitem>
- <para><emphasis><property>"onmouseout"</property></emphasis></para>
- </listitem>
- <listitem>
- <para>etc.</para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>
- Virtual Earth does not support XHTML format of the page.
- Thus, if you use Facelets and JSF 1.2, do not forget to
- put the following tags somewhere on the page:
- </para>
- <programlisting role="XML"><![CDATA[...
-<f:view contentType="text/html">...</f:view>
-...
-]]></programlisting>
- </note>
-
- </section>
- <section>
- <title>Look-and-Feel Customization</title>
- <para>
- <emphasis role="bold">
- <property><rich:virtualEarth></property>
- </emphasis>
- component isn't tied to skin parameters, as there is no
- additional elements on it, except the ones provided with
- <emphasis>
- <property>Virtual Earth map</property>
- .
- </emphasis>
- </para>
- </section>
-
- <section>
- <title>Definition of Custom Style Classes</title>
- <table>
- <title>
- Classes names that define a component appearance
- </title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class name</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>rich-virtualEarth</entry>
- <entry>
- Defines styles for a wrapper <div>
- element of a component
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- In order to redefine styles for all
- <emphasis role="bold">
- <property><rich:virtualEarth></property>
- </emphasis>
- components on a page using CSS, it's enough to create
- class with the same name and define necessary properties in
- it.
- </para>
-
- <para>
- To change styles of particular
- <emphasis role="bold">
- <property><rich:virtualEarth></property>
- </emphasis>
- components, define your own style class in the corresponding
- <emphasis role="bold">
- <property><rich:virtualEarth></property>
- </emphasis>
- attribute.
- </para>
- </section>
- <section>
- <title>Relevant Resources Links</title>
- <para>
- <ulink
- url="http://msdn2.microsoft.com/en-us/library/bb429619.aspx">
- Here
- </ulink>
- you can found additional information about Microsoft
- <property>Virtual Earth map</property>.
- </para>
- <para>
- Some additional information about usage of component can be found
- <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/virtualEarth.jsf?c=vi...">on its LiveDemo page</ulink>.</para>
- </section>
-
-</section>
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/master.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/master.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/master.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.docbook.org/xml/4.3CR3/docbookx.dtd" [
+
+
<!ENTITY rfcintro SYSTEM "modules/RFCintro.xml">
<!ENTITY rfctechreqs SYSTEM "modules/RFCtechreqs.xml">
<!ENTITY rfcGettingStarted SYSTEM "modules/RFCGettingStarted.xml">
@@ -11,131 +13,132 @@
<!ENTITY rfcidesupport SYSTEM "modules/RFCidesupport.xml">
<!ENTITY rfclinks SYSTEM "modules/RFClinks.xml">
- <!ENTITY a4j_actionparam SYSTEM "../../../target/generated/a4j_actionparam.xml">
- <!ENTITY a4j_form SYSTEM "../../../target/generated/a4j_form.xml">
- <!ENTITY a4j_region SYSTEM "../../../target/generated/a4j_region.xml">
- <!ENTITY a4j_support SYSTEM "../../../target/generated/a4j_support.xml">
- <!ENTITY a4j_commandButton SYSTEM "../../../target/generated/a4j_commandButton.xml">
- <!ENTITY a4j_commandLink SYSTEM "../../../target/generated/a4j_commandLink.xml">
- <!ENTITY a4j_jsFunction SYSTEM "../../../target/generated/a4j_jsFunction.xml">
- <!ENTITY a4j_poll SYSTEM "../../../target/generated/a4j_poll.xml">
- <!ENTITY a4j_push SYSTEM "../../../target/generated/a4j_push.xml">
- <!ENTITY a4j_queue SYSTEM "../../../target/generated/a4j_queue.xml">
- <!ENTITY a4j_status SYSTEM "../../../target/generated/a4j_status.xml">
- <!ENTITY a4j_ajaxListener SYSTEM "../../../target/generated/a4j_ajaxListener.xml">
+ <!ENTITY a4j_actionparam SYSTEM "included/a4j_actionparam.xml">
+ <!ENTITY a4j_form SYSTEM "included/a4j_form.xml">
+ <!ENTITY a4j_region SYSTEM "included/a4j_region.xml">
+ <!ENTITY a4j_support SYSTEM "included/a4j_support.xml">
+ <!ENTITY a4j_commandButton SYSTEM "included/a4j_commandButton.xml">
+ <!ENTITY a4j_commandLink SYSTEM "included/a4j_commandLink.xml">
+ <!ENTITY a4j_jsFunction SYSTEM "included/a4j_jsFunction.xml">
+ <!ENTITY a4j_poll SYSTEM "included/a4j_poll.xml">
+ <!ENTITY a4j_push SYSTEM "included/a4j_push.xml">
+ <!ENTITY a4j_queue SYSTEM "included/a4j_queue.xml">
+ <!ENTITY a4j_status SYSTEM "included/a4j_status.xml">
+ <!ENTITY a4j_ajaxListener SYSTEM "included/a4j_ajaxListener.xml">
- <!ENTITY a4j_loadBundle SYSTEM "../../../target/generated/a4j_loadBundle.xml">
- <!ENTITY a4j_loadScript SYSTEM "../../../target/generated/a4j_loadScript.xml">
- <!ENTITY a4j_loadStyle SYSTEM "../../../target/generated/a4j_loadStyle.xml">
- <!ENTITY a4j_keepAlive SYSTEM "../../../target/generated/a4j_keepAlive.xml">
+ <!ENTITY a4j_loadBundle SYSTEM "included/a4j_loadBundle.xml">
+ <!ENTITY a4j_loadScript SYSTEM "included/a4j_loadScript.xml">
+ <!ENTITY a4j_loadStyle SYSTEM "included/a4j_loadStyle.xml">
+ <!ENTITY a4j_keepAlive SYSTEM "included/a4j_keepAlive.xml">
- <!ENTITY rich_ajaxValidator SYSTEM "../../../target/generated/rich_ajaxValidator.xml">
- <!ENTITY rich_beanValidator SYSTEM "../../../target/generated/rich_beanValidator.xml">
- <!ENTITY rich_graphValidator SYSTEM "../../../target/generated/rich_graphValidator.xml">
+ <!ENTITY rich_ajaxValidator SYSTEM "included/rich_ajaxValidator.xml">
+ <!ENTITY rich_beanValidator SYSTEM "included/rich_beanValidator.xml">
+ <!ENTITY rich_graphValidator SYSTEM "included/rich_graphValidator.xml">
- <!ENTITY a4j_mediaOutput SYSTEM "../../../target/generated/a4j_mediaOutput.xml">
- <!ENTITY a4j_include SYSTEM "../../../target/generated/a4j_include.xml">
- <!ENTITY a4j_outputPanel SYSTEM "../../../target/generated/a4j_outputPanel.xml">
+ <!ENTITY a4j_mediaOutput SYSTEM "included/a4j_mediaOutput.xml">
+ <!ENTITY a4j_include SYSTEM "included/a4j_include.xml">
+ <!ENTITY a4j_outputPanel SYSTEM "included/a4j_outputPanel.xml">
- <!ENTITY a4j_page SYSTEM "../../../target/generated/a4j_page.xml">
- <!ENTITY a4j_portlet SYSTEM "../../../target/generated/a4j_portlet.xml">
- <!ENTITY a4j_htmlCommandLink SYSTEM "../../../target/generated/a4j_htmlCommandLink.xml">
- <!ENTITY a4j_log SYSTEM "../../../target/generated/a4j_log.xml">
+ <!ENTITY a4j_page SYSTEM "included/a4j_page.xml">
+ <!ENTITY a4j_portlet SYSTEM "included/a4j_portlet.xml">
+ <!ENTITY a4j_htmlCommandLink SYSTEM "included/a4j_htmlCommandLink.xml">
+ <!ENTITY a4j_log SYSTEM "included/a4j_log.xml">
- <!ENTITY rich_column SYSTEM "../../../target/generated/rich_column.xml">
- <!ENTITY rich_columnGroup SYSTEM "../../../target/generated/rich_columnGroup.xml">
- <!ENTITY rich_columns SYSTEM "../../../target/generated/rich_columns.xml">
- <!ENTITY rich_dataDefinitionList SYSTEM "../../../target/generated/rich_dataDefinitionList.xml">
- <!ENTITY rich_dataFilterSlider SYSTEM "../../../target/generated/rich_dataFilterSlider.xml">
- <!ENTITY rich_dataGrid SYSTEM "../../../target/generated/rich_dataGrid.xml">
- <!ENTITY rich_dataList SYSTEM "../../../target/generated/rich_dataList.xml">
- <!ENTITY rich_dataOrderedList SYSTEM "../../../target/generated/rich_dataOrderedList.xml">
- <!ENTITY rich_datascroller SYSTEM "../../../target/generated/rich_datascroller.xml">
- <!ENTITY rich_dataTable SYSTEM "../../../target/generated/rich_dataTable.xml">
- <!ENTITY rich_subTable SYSTEM "../../../target/generated/rich_subTable.xml">
- <!ENTITY rich_extendedDataTable SYSTEM "../../../target/generated/rich_extendedDataTable.xml">
- <!ENTITY a4j_repeat SYSTEM "../../../target/generated/a4j_repeat.xml">
- <!ENTITY rich_scrollableDataTable SYSTEM "../../../target/generated/rich_scrollableDataTable.xml">
+ <!ENTITY rich_column SYSTEM "included/rich_column.xml">
+ <!ENTITY rich_columnGroup SYSTEM "included/rich_columnGroup.xml">
+ <!ENTITY rich_columns SYSTEM "included/rich_columns.xml">
+ <!ENTITY rich_dataDefinitionList SYSTEM "included/rich_dataDefinitionList.xml">
+ <!ENTITY rich_dataFilterSlider SYSTEM "included/rich_dataFilterSlider.xml">
+ <!ENTITY rich_dataGrid SYSTEM "included/rich_dataGrid.xml">
+ <!ENTITY rich_dataList SYSTEM "included/rich_dataList.xml">
+ <!ENTITY rich_dataOrderedList SYSTEM "included/rich_dataOrderedList.xml">
+ <!ENTITY rich_datascroller SYSTEM "included/rich_datascroller.xml">
+ <!ENTITY rich_dataTable SYSTEM "included/rich_dataTable.xml">
+ <!ENTITY rich_subTable SYSTEM "included/rich_subTable.xml">
+ <!ENTITY rich_extendedDataTable SYSTEM "included/rich_extendedDataTable.xml">
+ <!ENTITY a4j_repeat SYSTEM "included/a4j_repeat.xml">
+ <!ENTITY rich_scrollableDataTable SYSTEM "included/rich_scrollableDataTable.xml">
- <!ENTITY rich_dragIndicator SYSTEM "../../../target/generated/rich_dragIndicator.xml">
- <!ENTITY rich_dragSupport SYSTEM "../../../target/generated/rich_dragSupport.xml">
- <!ENTITY rich_dndParam SYSTEM "../../../target/generated/rich_dndParam.xml">
- <!ENTITY rich_dropSupport SYSTEM "../../../target/generated/rich_dropSupport.xml">
- <!ENTITY rich_dropListener SYSTEM "../../../target/generated/rich_dropListener.xml">
- <!ENTITY rich_dragListener SYSTEM "../../../target/generated/rich_dragListener.xml">
+ <!ENTITY rich_dragIndicator SYSTEM "included/rich_dragIndicator.xml">
+ <!ENTITY rich_dragSupport SYSTEM "included/rich_dragSupport.xml">
+ <!ENTITY rich_dndParam SYSTEM "included/rich_dndParam.xml">
+ <!ENTITY rich_dropSupport SYSTEM "included/rich_dropSupport.xml">
+ <!ENTITY rich_dropListener SYSTEM "included/rich_dropListener.xml">
+ <!ENTITY rich_dragListener SYSTEM "included/rich_dragListener.xml">
- <!ENTITY rich_contextMenu SYSTEM "../../../target/generated/rich_contextMenu.xml">
- <!ENTITY rich_dropDownMenu SYSTEM "../../../target/generated/rich_dropDownMenu.xml">
- <!ENTITY rich_menuGroup SYSTEM "../../../target/generated/rich_menuGroup.xml">
- <!ENTITY rich_menuItem SYSTEM "../../../target/generated/rich_menuItem.xml">
- <!ENTITY rich_menuSeparator SYSTEM "../../../target/generated/rich_menuSeparator.xml">
+ <!ENTITY rich_contextMenu SYSTEM "included/rich_contextMenu.xml">
+ <!ENTITY rich_dropDownMenu SYSTEM "included/rich_dropDownMenu.xml">
+ <!ENTITY rich_menuGroup SYSTEM "included/rich_menuGroup.xml">
+ <!ENTITY rich_menuItem SYSTEM "included/rich_menuItem.xml">
+ <!ENTITY rich_menuSeparator SYSTEM "included/rich_menuSeparator.xml">
- <!ENTITY rich_recursiveTreeNodesAdaptor SYSTEM "../../../target/generated/rich_recursiveTreeNodesAdaptor.xml">
- <!ENTITY rich_tree SYSTEM "../../../target/generated/rich_tree.xml">
- <!ENTITY rich_treeNode SYSTEM "../../../target/generated/rich_treeNode.xml">
- <!ENTITY rich_treeNodesAdaptor SYSTEM "../../../target/generated/rich_treeNodesAdaptor.xml">
- <!ENTITY rich_changeExpandListener SYSTEM "../../../target/generated/rich_changeExpandListener.xml">
- <!ENTITY rich_nodeSelectListener SYSTEM "../../../target/generated/rich_nodeSelectListener.xml">
+ <!ENTITY rich_recursiveTreeNodesAdaptor SYSTEM "included/rich_recursiveTreeNodesAdaptor.xml">
+ <!ENTITY rich_tree SYSTEM "included/rich_tree.xml">
+ <!ENTITY rich_treeNode SYSTEM "included/rich_treeNode.xml">
+ <!ENTITY rich_treeNodesAdaptor SYSTEM "included/rich_treeNodesAdaptor.xml">
+ <!ENTITY rich_changeExpandListener SYSTEM "included/rich_changeExpandListener.xml">
+ <!ENTITY rich_nodeSelectListener SYSTEM "included/rich_nodeSelectListener.xml">
- <!ENTITY rich_modalPanel SYSTEM "../../../target/generated/rich_modalPanel.xml">
- <!ENTITY rich_paint2D SYSTEM "../../../target/generated/rich_paint2D.xml">
- <!ENTITY rich_panel SYSTEM "../../../target/generated/rich_panel.xml">
- <!ENTITY rich_panelBar SYSTEM "../../../target/generated/rich_panelBar.xml">
- <!ENTITY rich_panelBarItem SYSTEM "../../../target/generated/rich_panelBarItem.xml">
- <!ENTITY rich_panelMenu SYSTEM "../../../target/generated/rich_panelMenu.xml">
- <!ENTITY rich_panelMenuItem SYSTEM "../../../target/generated/rich_panelMenuItem.xml">
- <!ENTITY rich_panelMenuGroup SYSTEM "../../../target/generated/rich_panelMenuGroup.xml">
- <!ENTITY rich_progressBar SYSTEM "../../../target/generated/rich_progressBar.xml">
- <!ENTITY rich_separator SYSTEM "../../../target/generated/rich_separator.xml">
- <!ENTITY rich_simpleTogglePanel SYSTEM "../../../target/generated/rich_simpleTogglePanel.xml">
- <!ENTITY rich_spacer SYSTEM "../../../target/generated/rich_spacer.xml">
- <!ENTITY rich_tabPanel SYSTEM "../../../target/generated/rich_tabPanel.xml">
- <!ENTITY rich_tab SYSTEM "../../../target/generated/rich_tab.xml">
- <!ENTITY rich_togglePanel SYSTEM "../../../target/generated/rich_togglePanel.xml">
- <!ENTITY rich_toggleControl SYSTEM "../../../target/generated/rich_toggleControl.xml">
- <!ENTITY rich_toolBar SYSTEM "../../../target/generated/rich_toolBar.xml">
- <!ENTITY rich_toolBarGroup SYSTEM "../../../target/generated/rich_toolBarGroup.xml">
- <!ENTITY rich_toolTip SYSTEM "../../../target/generated/rich_toolTip.xml">
+ <!ENTITY rich_modalPanel SYSTEM "included/rich_modalPanel.xml">
+ <!ENTITY rich_paint2D SYSTEM "included/rich_paint2D.xml">
+ <!ENTITY rich_panel SYSTEM "included/rich_panel.xml">
+ <!ENTITY rich_panelBar SYSTEM "included/rich_panelBar.xml">
+ <!ENTITY rich_panelBarItem SYSTEM "included/rich_panelBarItem.xml">
+ <!ENTITY rich_panelMenu SYSTEM "included/rich_panelMenu.xml">
+ <!ENTITY rich_panelMenuItem SYSTEM "included/rich_panelMenuItem.xml">
+ <!ENTITY rich_panelMenuGroup SYSTEM "included/rich_panelMenuGroup.xml">
+ <!ENTITY rich_progressBar SYSTEM "included/rich_progressBar.xml">
+ <!ENTITY rich_separator SYSTEM "included/rich_separator.xml">
+ <!ENTITY rich_simpleTogglePanel SYSTEM "included/rich_simpleTogglePanel.xml">
+ <!ENTITY rich_spacer SYSTEM "included/rich_spacer.xml">
+ <!ENTITY rich_tabPanel SYSTEM "included/rich_tabPanel.xml">
+ <!ENTITY rich_tab SYSTEM "included/rich_tab.xml">
+ <!ENTITY rich_togglePanel SYSTEM "included/rich_togglePanel.xml">
+ <!ENTITY rich_toggleControl SYSTEM "included/rich_toggleControl.xml">
+ <!ENTITY rich_toolBar SYSTEM "included/rich_toolBar.xml">
+ <!ENTITY rich_toolBarGroup SYSTEM "included/rich_toolBarGroup.xml">
+ <!ENTITY rich_toolTip SYSTEM "included/rich_toolTip.xml">
- <!ENTITY rich_calendar SYSTEM "../../../target/generated/rich_calendar.xml">
- <!ENTITY rich_colorPicker SYSTEM "../../../target/generated/rich_colorPicker.xml">
- <!ENTITY rich_comboBox SYSTEM "../../../target/generated/rich_comboBox.xml">
- <!ENTITY rich_editor SYSTEM "../../../target/generated/rich_editor.xml">
- <!ENTITY rich_fileUpload SYSTEM "../../../target/generated/rich_fileUpload.xml">
- <!ENTITY rich_inplaceInput SYSTEM "../../../target/generated/rich_inplaceInput.xml">
- <!ENTITY rich_inplaceSelect SYSTEM "../../../target/generated/rich_inplaceSelect.xml">
- <!ENTITY rich_inputNumberSlider SYSTEM "../../../target/generated/rich_inputNumberSlider.xml">
- <!ENTITY rich_inputNumberSpinner SYSTEM "../../../target/generated/rich_inputNumberSpinner.xml">
- <!ENTITY rich_suggestionbox SYSTEM "../../../target/generated/rich_suggestionbox.xml">
+ <!ENTITY rich_calendar SYSTEM "included/rich_calendar.xml">
+ <!ENTITY rich_colorPicker SYSTEM "included/rich_colorPicker.xml">
+ <!ENTITY rich_comboBox SYSTEM "included/rich_comboBox.xml">
+ <!ENTITY rich_editor SYSTEM "included/rich_editor.xml">
+ <!ENTITY rich_fileUpload SYSTEM "included/rich_fileUpload.xml">
+ <!ENTITY rich_inplaceInput SYSTEM "included/rich_inplaceInput.xml">
+ <!ENTITY rich_inplaceSelect SYSTEM "included/rich_inplaceSelect.xml">
+ <!ENTITY rich_inputNumberSlider SYSTEM "included/rich_inputNumberSlider.xml">
+ <!ENTITY rich_inputNumberSpinner SYSTEM "included/rich_inputNumberSpinner.xml">
+ <!ENTITY rich_suggestionbox SYSTEM "included/rich_suggestionbox.xml">
- <!ENTITY rich_listShuttle SYSTEM "../../../target/generated/rich_listShuttle.xml">
- <!ENTITY rich_orderingList SYSTEM "../../../target/generated/rich_orderingList.xml">
- <!ENTITY rich_pickList SYSTEM "../../../target/generated/rich_pickList.xml">
+ <!ENTITY rich_listShuttle SYSTEM "included/rich_listShuttle.xml">
+ <!ENTITY rich_orderingList SYSTEM "included/rich_orderingList.xml">
+ <!ENTITY rich_pickList SYSTEM "included/rich_pickList.xml">
- <!ENTITY rich_page SYSTEM "../../../target/generated/rich_page.xml">
- <!ENTITY rich_layout SYSTEM "../../../target/generated/rich_layout.xml">
- <!ENTITY rich_layoutPanel SYSTEM "../../../target/generated/rich_layoutPanel.xml">
+ <!ENTITY rich_page SYSTEM "included/rich_page.xml">
+ <!ENTITY rich_layout SYSTEM "included/rich_layout.xml">
+ <!ENTITY rich_layoutPanel SYSTEM "included/rich_layoutPanel.xml">
- <!ENTITY rich_componentControl SYSTEM "../../../target/generated/rich_componentControl.xml">
- <!ENTITY rich_effect SYSTEM "../../../target/generated/rich_effect.xml">
- <!ENTITY rich_gmap SYSTEM "../../../target/generated/rich_gmap.xml">
- <!ENTITY rich_virtualEarth SYSTEM "../../../target/generated/rich_virtualEarth.xml">
- <!ENTITY rich_hotKey SYSTEM "../../../target/generated/rich_hotKey.xml">
- <!ENTITY rich_insert SYSTEM "../../../target/generated/rich_insert.xml">
- <!ENTITY rich_message SYSTEM "../../../target/generated/rich_message.xml">
- <!ENTITY rich_messages SYSTEM "../../../target/generated/rich_messages.xml">
- <!ENTITY rich_jQuery SYSTEM "../../../target/generated/rich_jQuery.xml">
+ <!ENTITY rich_componentControl SYSTEM "included/rich_componentControl.xml">
+ <!ENTITY rich_effect SYSTEM "included/rich_effect.xml">
+ <!ENTITY rich_gmap SYSTEM "included/rich_gmap.xml">
+ <!ENTITY rich_virtualEarth SYSTEM "included/rich_virtualEarth.xml">
+ <!ENTITY rich_hotKey SYSTEM "included/rich_hotKey.xml">
+ <!ENTITY rich_insert SYSTEM "included/rich_insert.xml">
+ <!ENTITY rich_message SYSTEM "included/rich_message.xml">
+ <!ENTITY rich_messages SYSTEM "included/rich_messages.xml">
+ <!ENTITY rich_jQuery SYSTEM "included/rich_jQuery.xml">
- <!ENTITY cdkguide "../../cdkguide/html_single/index.html">
- <!ENTITY devguide "../../devguide/html_single/index.html">
- <!ENTITY migrationguide "../../migrationguide/html_single/index.html">
- <!ENTITY photoalbumguide "../../realworld/html_single/index.html">
- <!ENTITY realworld "../../realworld/html_single/index.html">
- <!ENTITY tlddoc "../../tlddoc/index.html">
- <!ENTITY apidoc "../../apidoc/index.html">
- <!ENTITY apidoc_framework "../../apidoc_framework/index.html">
+ <!ENTITY cdkguide "http://docs.jboss.org/richfaces/3.3.1.GA/en/cdkguide/html_single/">
+ <!ENTITY devguide "http://docs.jboss.org/richfaces/3.3.1.GA/en/devguide/html_single/">
+ <!ENTITY migrationguide "http://docs.jboss.org/richfaces/3.3.1.GA/en/migrationguide/html_single/">
+ <!ENTITY photoalbumguide "http://docs.jboss.org/richfaces/3.3.1.GA/en/realworld/html_single/">
+ <!ENTITY realworld "http://docs.jboss.org/richfaces/3.3.1.GA/en/realworld/html_single/">
+ <!ENTITY tlddoc "http://docs.jboss.org/richfaces/3.3.1.GA/en/tlddoc/">
+ <!ENTITY apidoc "http://docs.jboss.org/richfaces/3.3.1.GA/en/apidoc/">
+ <!ENTITY apidoc_framework "http://docs.jboss.org/richfaces/3.3.1.GA/en/apidoc_framework/">
+
]>
<book>
<bookinfo>
@@ -169,11 +172,11 @@
</bookinfo>
<toc/>
- &rfcintro;
- &rfctechreqs;
+ &rfcintro;
+ &rfctechreqs;
&rfcGettingStarted;
&rfcSettings;
- &rfcarchitectover;
+ &rfcarchitectover;
<chapter role="NotInToc" id="RichFacesComponentsLibrary" xreflabel="RichFacesComponentsLibrary">
<?dbhtml filename="RichFacesComponentsLibrary.html"?>
Modified: branches/community/3.3.X/docs/userguide/pom.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/pom.xml 2009-08-18 15:41:09 UTC (rev 15206)
+++ branches/community/3.3.X/docs/userguide/pom.xml 2009-08-18 17:11:51 UTC (rev 15207)
@@ -111,541 +111,6 @@
<artifactItems>
<artifactItem>
<groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>core</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- beanValidator
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- calendar
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- editor
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- columns
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- extendedDataTable
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- fileUpload
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- progressBar
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- inplaceInput
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- inplaceSelect
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- hotKey
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- combobox
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- pickList
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- componentControl
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- contextMenu
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- dataFilterSlider
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- datascroller
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- dataTable
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- drag-drop
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- dropdown-menu
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>effect</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>gmap</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- virtualEarth
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- inputnumber-slider
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- inputnumber-spinner
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- insert
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- jQuery
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- listShuttle
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- menu-components
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>message</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- panelmenu
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- modal-panel
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- orderingList
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
-
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>paint2D</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>panel</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- panelbar
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- scrollableDataTable
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- simpleTogglePanel
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- separator
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>spacer</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- suggestionbox
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- tabPanel
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>
- togglePanel
- </artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>toolBar</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>tooltip</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>tree</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>treeModel</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>jQuery</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>layout</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
- org.richfaces.ui
- </groupId>
- <artifactId>colorPicker</artifactId>
- <version>
- ${project.version}
- </version>
- </artifactItem>
- <artifactItem>
- <groupId>
org.richfaces.docs.common-resources
</groupId>
<artifactId>
@@ -675,180 +140,6 @@
</executions>
</plugin>
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>1.0-beta-2</version>
- <executions>
- <execution>
- <id>transformTld</id>
- <phase>process-resources</phase>
- <goals>
- <goal>transform</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>net.sf.saxon</groupId>
- <artifactId>saxon</artifactId>
- <version>8.7</version>
- </dependency>
- <!--dependency>
- <groupId>org.apache.xmlgraphics</groupId>
- <artifactId>fop</artifactId>
- <version>0.95</version>
- </dependency-->
- </dependencies>
- <configuration>
- <transformationSets>
- <!--transformationSet>
- <dir>
- ${project.build.directory}/library/org/richfaces/renderkit/html/css
- </dir>
- <includes>
- <include>*.xcss</include>
- </includes>
- <excludes>
- <exclude>*.xml</exclude>
- </excludes>
- <outputDir>
- ${project.build.directory}${file.separator}generated${file.separator}xcss
- </outputDir>
- <stylesheet>
- ${project.build.directory}/common-resources/xslt/f.xsl
- </stylesheet>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>
- xml
- </targetExtension>
- </fileMapper>
- </fileMappers>
- <parameters>
- <parameter>
- <name>lang</name>
- <value>
- ..${file.separator}..${file.separator}..${file.separator}src${file.separator}main${file.separator}docbook
- </value>
- </parameter>
- <parameter>
- <name>title</name>
- <value>${project.name}</value>
- </parameter>
- <parameter>
- <name>separator</name>
- <value>${file.separator}</value>
- </parameter>
- </parameters>
- </transformationSet-->
- <transformationSet>
- <dir>
- ${project.build.directory}/library/META-INF
- </dir>
- <includes>
- <include>*.tld</include>
- </includes>
- <excludes>
- <exclude>a4j.*</exclude>
- </excludes>
- <outputDir>
- ${project.build.directory}${file.separator}generated
- </outputDir>
- <stylesheet>
- ${project.build.directory}${file.separator}common-resources${file.separator}xslt${file.separator}f.xsl
- </stylesheet>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>
- xml
- </targetExtension>
- </fileMapper>
- </fileMappers>
- <parameters>
- <parameter>
- <name>lang</name>
- <value>
- ..${file.separator}..${file.separator}..${file.separator}src${file.separator}main${file.separator}docbook
- </value>
- </parameter>
- <parameter>
- <name>title</name>
- <value>${project.name}</value>
- </parameter>
- <parameter>
- <name>separator</name>
- <value>${file.separator}</value>
- </parameter>
- <parameter>
- <name>prefix</name>
- <value>rich</value>
- </parameter>
- <parameter>
- <name>xcssPath</name>
- <value>..${file.separator}..${file.separator}generated${file.separator}xcss</value>
- </parameter>
- <parameter>
- <name>outputDir</name>
- <value>${project.build.directory}${file.separator}generated${file.separator}</value>
- </parameter>
- </parameters>
- </transformationSet>
- <transformationSet>
- <dir>
- ${project.build.directory}${file.separator}library${file.separator}META-INF
- </dir>
- <includes>
- <include>a4j.*</include>
- </includes>
- <excludes>
- <exclude>*.xml</exclude>
- </excludes>
- <outputDir>
- ${project.build.directory}${file.separator}generated${file.separator}
- </outputDir>
- <stylesheet>
- ${project.build.directory}${file.separator}common-resources${file.separator}xslt${file.separator}f.xsl
- </stylesheet>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>
- xml
- </targetExtension>
- </fileMapper>
- </fileMappers>
- <parameters>
- <parameter>
- <name>lang</name>
- <value>
- ..${file.separator}..${file.separator}..${file.separator}src${file.separator}main${file.separator}docbook
- </value>
- </parameter>
- <parameter>
- <name>title</name>
- <value>${project.name}</value>
- </parameter>
- <parameter>
- <name>separator</name>
- <value>${file.separator}</value>
- </parameter>
- <parameter>
- <name>prefix</name>
- <value>a4j</value>
- </parameter>
- <parameter>
- <name>xcssPath</name>
- <value>..${file.separator}..${file.separator}generated${file.separator}xcss</value>
- </parameter>
- <parameter>
- <name>outputDir</name>
- <value>${project.build.directory}${file.separator}generated${file.separator}</value>
- </parameter>
- </parameters>
- </transformationSet>
- </transformationSets>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.jboss.maven.plugins</groupId>
<artifactId>maven-jdocbook-plugin</artifactId>
<version>2.1.0-200803311251UTC-MPJDOCBOOK-8</version>
@@ -967,16 +258,6 @@
<xmlTransformerType>
saxon
</xmlTransformerType>
- <!--
- <transformerParameters>
- <property>
- <name>custom.titlepage.img</name>
- <value>
- ${basedir}/src/main/resources/shared/images/hibernate_logo_a.png
- </value>
- </property>
- </transformerParameters>
- -->
<docbookVersion>1.72.0</docbookVersion>
</options>
</configuration>
@@ -985,21 +266,7 @@
</plugins>
</pluginManagement>
</build>
-
- <!-- report plugin is currently hosed
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugin</groupId>
- <artifactId>jboss-docbook-plugin</artifactId>
- </plugin>
- </plugins>
- </reporting>
- -->
-
-
<modules>
<module>en</module>
</modules>
-
</project>
14 years, 10 months
JBoss Rich Faces SVN: r15206 - in branches/community/3.3.X/examples/photoalbum: source/ejb/sql/short and 25 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: Alex.Kolonitsky
Date: 2009-08-18 11:41:09 -0400 (Tue, 18 Aug 2009)
New Revision: 15206
Added:
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small80.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_medium.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small120.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small160.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small200.jpg
branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small80.jpg
Modified:
branches/community/3.3.X/examples/photoalbum/source/ejb/sql/full/import.sql
branches/community/3.3.X/examples/photoalbum/source/ejb/sql/short/import.sql
branches/community/3.3.X/examples/photoalbum/source/web/src/main/webapp/includes/help/slideshow.xhtml
branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/RealWorldHelper.java
branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/AddUseCasesTest.java
branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DeleteUseCasesTest.java
branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DnDUseCasesTest.java
branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/SearchTest.java
Log:
Fix broken photoalbum tests
https://jira.jboss.org/jira/browse/RFPL-49
Modified: branches/community/3.3.X/examples/photoalbum/source/ejb/sql/full/import.sql
===================================================================
--- branches/community/3.3.X/examples/photoalbum/source/ejb/sql/full/import.sql 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/source/ejb/sql/full/import.sql 2009-08-18 15:41:09 UTC (rev 15206)
@@ -2,12 +2,23 @@
INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (2, 'Nick', 'Curtis', 'nkurtis(a)iba.com', 'Viking', '8cb2237d0679ca88db6464eac60da96345513964', '1978-01-08', 1, false, true);
INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (3, 'John', 'Smith', 'jsmith(a)jboss.com', 'Noname', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, true);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (10, 'John', 'Smith', 'jsmith_10(a)jboss.com', 'user_for_add', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (11, 'John', 'Smith', 'jsmith_11(a)jboss.com', 'user_for_del', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (12, 'John', 'Smith', 'jsmith_12(a)jboss.com', 'user_for_dnd', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (1, 'Nature', 'Nature pictures', 1, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (2, 'Sport & Cars', 'Sport & Cars pictures', 1, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (3, 'Portrait', 'Human faces', 2, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (4, 'Monuments', 'Monuments pictures', 3, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (5, 'Water', 'Water pictures', 3, '2009-12-18', true);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (100, 'MyShelf 100', 'MyShelf', 10, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (101, 'MyShelf 101', 'MyShelf', 10, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (110, 'MyShelf 110', 'MyShelf', 11, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (111, 'MyShelf 111', 'MyShelf', 11, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (120, 'MyShelf 120', 'MyShelf', 12, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (121, 'MyShelf 121', 'MyShelf', 12, '2009-12-18', false);
+
---------------------------------------------------------------------
-- ALBUM - Animals"
---------------------------------------------------------------------
@@ -563,3 +574,193 @@
INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (256, '1985-01-08', 'Gorgeous! Lovely color!',120, 1);
UPDATE Album set coveringImage_id=120 where id = 6;
+---------------------------------------------------------------------
+---------------------------------------------------------------------
+-- TEST DATA
+---------------------------------------------------------------------
+---------------------------------------------------------------------
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 100
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (100, 'MyAlbum 100', 'MyAlbum pictures', 100, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10006, 'MyAlbum_100');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (100027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 100, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10006, 100027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',100027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',100027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100054, '1985-01-08', 'Perfecft!',100027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100055, '1985-01-08', 'Beautiful colours. Nice close up. ',100027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (100029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 100, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10006, 100029);
+UPDATE Album set coveringImage_id=100027 where id = 1000;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 101
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (101, 'MyAlbum 101', 'MyAlbum pictures', 100, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10106, 'MyAlbum_101');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (101027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 101, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10106, 101027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',101027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',101027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101054, '1985-01-08', 'Perfecft!',101027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101055, '1985-01-08', 'Beautiful colours. Nice close up. ',101027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (101029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 101, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10106, 101029);
+UPDATE Album set coveringImage_id=101027 where id = 1010;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 102
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (102, 'MyAlbum 102', 'MyAlbum pictures', 101, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10206, 'MyAlbum_102');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (102027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 102, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10206, 102027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',102027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',102027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102054, '1985-01-08', 'Perfecft!',102027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102055, '1985-01-08', 'Beautiful colours. Nice close up. ',102027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (102029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 102, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10206, 102029);
+UPDATE Album set coveringImage_id=102027 where id = 1020;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 103
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (103, 'MyAlbum 103', 'MyAlbum pictures', 101, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10306, 'MyAlbum_103');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (103027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 103, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10306, 103027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',103027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',103027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103054, '1985-01-08', 'Perfecft!',103027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103055, '1985-01-08', 'Beautiful colours. Nice close up. ',103027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (103029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 103, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10306, 103029);
+UPDATE Album set coveringImage_id=103027 where id = 1030;
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 110
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (110, 'MyAlbum 110', 'MyAlbum pictures', 110, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11006, 'MyAlbum_110');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (110027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 110, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11006, 110027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',110027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',110027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110054, '1985-01-08', 'Perfecft!',110027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110055, '1985-01-08', 'Beautiful colours. Nice close up. ',110027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (110029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 110, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11006, 110029);
+UPDATE Album set coveringImage_id=110027 where id = 1100;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 111
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (111, 'MyAlbum 111', 'MyAlbum pictures', 110, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11106, 'MyAlbum_111');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (111027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 111, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11106, 111027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',111027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',111027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111054, '1985-01-08', 'Perfecft!',111027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111055, '1985-01-08', 'Beautiful colours. Nice close up. ',111027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (111029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 111, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11106, 111029);
+UPDATE Album set coveringImage_id=111027 where id = 1110;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 112
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (112, 'MyAlbum 112', 'MyAlbum pictures', 111, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11206, 'MyAlbum_112');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (112027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 112, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11206, 112027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',112027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',112027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112054, '1985-01-08', 'Perfecft!',112027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112055, '1985-01-08', 'Beautiful colours. Nice close up. ',112027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (112029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 112, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11206, 112029);
+UPDATE Album set coveringImage_id=112027 where id = 1120;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 113
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (113, 'MyAlbum 113', 'MyAlbum pictures', 111, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11306, 'MyAlbum_113');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (113027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 113, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11306, 113027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',113027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',113027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113054, '1985-01-08', 'Perfecft!',113027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113055, '1985-01-08', 'Beautiful colours. Nice close up. ',113027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (113029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 113, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11306, 113029);
+UPDATE Album set coveringImage_id=113027 where id = 1130;
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 120
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (120, 'MyAlbum 120', 'MyAlbum pictures', 120, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12006, 'MyAlbum_120');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (120027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 120, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12006, 120027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',120027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',120027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120054, '1985-01-08', 'Perfecft!',120027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120055, '1985-01-08', 'Beautiful colours. Nice close up. ',120027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (120029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 120, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12006, 120029);
+UPDATE Album set coveringImage_id=120027 where id = 1200;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 121
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (121, 'MyAlbum 121', 'MyAlbum pictures', 120, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12106, 'MyAlbum_121');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (121027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 121, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12106, 121027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',121027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',121027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121054, '1985-01-08', 'Perfecft!',121027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121055, '1985-01-08', 'Beautiful colours. Nice close up. ',121027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (121029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 121, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12106, 121029);
+UPDATE Album set coveringImage_id=121027 where id = 1210;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 122
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (122, 'MyAlbum 122', 'MyAlbum pictures', 121, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12206, 'MyAlbum_122');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (122027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 122, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12206, 122027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',122027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',122027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122054, '1985-01-08', 'Perfecft!',122027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122055, '1985-01-08', 'Beautiful colours. Nice close up. ',122027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (122029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 122, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12206, 122029);
+UPDATE Album set coveringImage_id=122027 where id = 1220;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 123
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (123, 'MyAlbum 123', 'MyAlbum pictures', 121, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12306, 'MyAlbum_123');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (123027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 123, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12306, 123027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',123027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',123027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123054, '1985-01-08', 'Perfecft!',123027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123055, '1985-01-08', 'Beautiful colours. Nice close up. ',123027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (123029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 123, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12306, 123029);
+UPDATE Album set coveringImage_id=123027 where id = 1230;
+
+
Modified: branches/community/3.3.X/examples/photoalbum/source/ejb/sql/short/import.sql
===================================================================
--- branches/community/3.3.X/examples/photoalbum/source/ejb/sql/short/import.sql 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/source/ejb/sql/short/import.sql 2009-08-18 15:41:09 UTC (rev 15206)
@@ -1,13 +1,24 @@
-INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (1, 'Andrey', 'Markhel', 'amarkhel(a)exadel.com', 'amarkhel', '8cb2237d0679ca88db6464eac60da96345513964', '1985-01-08', 0, false, true);
-INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (2, 'Nick', 'Curtis', 'nkurtis(a)iba.com', 'Viking', '8cb2237d0679ca88db6464eac60da96345513964', '1978-01-08', 1, false, true);
-INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (3, 'John', 'Smith', 'jsmith(a)jboss.com', 'Noname', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, true);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (1, 'Andrey', 'Markhel', 'amarkhel(a)exadel.com', 'amarkhel', '8cb2237d0679ca88db6464eac60da96345513964', '1985-01-08', 0, false, true);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (2, 'Nick', 'Curtis', 'nkurtis(a)iba.com', 'Viking', '8cb2237d0679ca88db6464eac60da96345513964', '1978-01-08', 1, false, true);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (3, 'John', 'Smith', 'jsmith(a)jboss.com', 'Noname', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, true);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (10, 'John', 'Smith', 'jsmith_10(a)jboss.com', 'user_for_add', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (11, 'John', 'Smith', 'jsmith_11(a)jboss.com', 'user_for_del', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+INSERT INTO User(id, firstname, secondname, email, login, passwordHash, birthdate, sex, hasAvatar, preDefined) VALUES (12, 'John', 'Smith', 'jsmith_12(a)jboss.com', 'user_for_dnd', '8cb2237d0679ca88db6464eac60da96345513964', '1970-01-08', 1, false, false);
+
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (1, 'Nature', 'Nature pictures', 1, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (2, 'Sport & Cars', 'Sport & Cars pictures', 1, '2009-12-18', true);
-INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (3, 'Portrait', 'Human faces', 2, '2009-12-18', true);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (3, 'Portrait', 'Human faces', 2, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (4, 'Monuments', 'Monuments pictures', 3, '2009-12-18', true);
INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (5, 'Water', 'Water pictures', 3, '2009-12-18', true);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (100, 'MyShelf 100', 'MyShelf', 10, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (101, 'MyShelf 101', 'MyShelf', 10, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (110, 'MyShelf 110', 'MyShelf', 11, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (111, 'MyShelf 111', 'MyShelf', 11, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (120, 'MyShelf 120', 'MyShelf', 12, '2009-12-18', false);
+INSERT INTO Shelf(id, name, description, owner_id, created, shared) VALUES (121, 'MyShelf 121', 'MyShelf', 12, '2009-12-18', false);
+
---------------------------------------------------------------------
-- ALBUM - Animals"
---------------------------------------------------------------------
@@ -192,3 +203,194 @@
INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (61, '1985-01-08', 'Fantastic job. Great light and color! Great shot!',32, 2);
UPDATE Album set coveringImage_id=32 where id = 6;
+
+---------------------------------------------------------------------
+---------------------------------------------------------------------
+-- TEST DATA
+---------------------------------------------------------------------
+---------------------------------------------------------------------
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 100
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (100, 'MyAlbum 100', 'MyAlbum pictures', 100, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10006, 'MyAlbum_100');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (100027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 100, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10006, 100027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',100027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',100027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100054, '1985-01-08', 'Perfecft!',100027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (100055, '1985-01-08', 'Beautiful colours. Nice close up. ',100027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (100029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 100, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10006, 100029);
+UPDATE Album set coveringImage_id=100027 where id = 1000;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 101
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (101, 'MyAlbum 101', 'MyAlbum pictures', 100, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10106, 'MyAlbum_101');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (101027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 101, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10106, 101027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',101027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',101027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101054, '1985-01-08', 'Perfecft!',101027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (101055, '1985-01-08', 'Beautiful colours. Nice close up. ',101027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (101029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 101, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10106, 101029);
+UPDATE Album set coveringImage_id=101027 where id = 1010;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 102
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (102, 'MyAlbum 102', 'MyAlbum pictures', 101, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10206, 'MyAlbum_102');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (102027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 102, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10206, 102027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',102027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',102027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102054, '1985-01-08', 'Perfecft!',102027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (102055, '1985-01-08', 'Beautiful colours. Nice close up. ',102027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (102029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 102, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10206, 102029);
+UPDATE Album set coveringImage_id=102027 where id = 1020;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 103
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (103, 'MyAlbum 103', 'MyAlbum pictures', 101, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (10306, 'MyAlbum_103');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (103027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 103, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10306, 103027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',103027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',103027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103054, '1985-01-08', 'Perfecft!',103027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (103055, '1985-01-08', 'Beautiful colours. Nice close up. ',103027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (103029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 103, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(10306, 103029);
+UPDATE Album set coveringImage_id=103027 where id = 1030;
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 110
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (110, 'MyAlbum 110', 'MyAlbum pictures', 110, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11006, 'MyAlbum_110');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (110027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 110, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11006, 110027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',110027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',110027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110054, '1985-01-08', 'Perfecft!',110027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (110055, '1985-01-08', 'Beautiful colours. Nice close up. ',110027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (110029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 110, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11006, 110029);
+UPDATE Album set coveringImage_id=110027 where id = 1100;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 111
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (111, 'MyAlbum 111', 'MyAlbum pictures', 110, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11106, 'MyAlbum_111');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (111027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 111, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11106, 111027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',111027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',111027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111054, '1985-01-08', 'Perfecft!',111027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (111055, '1985-01-08', 'Beautiful colours. Nice close up. ',111027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (111029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 111, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11106, 111029);
+UPDATE Album set coveringImage_id=111027 where id = 1110;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 112
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (112, 'MyAlbum 112', 'MyAlbum pictures', 111, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11206, 'MyAlbum_112');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (112027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 112, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11206, 112027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',112027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',112027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112054, '1985-01-08', 'Perfecft!',112027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (112055, '1985-01-08', 'Beautiful colours. Nice close up. ',112027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (112029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 112, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11206, 112029);
+UPDATE Album set coveringImage_id=112027 where id = 1120;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 113
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (113, 'MyAlbum 113', 'MyAlbum pictures', 111, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (11306, 'MyAlbum_113');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (113027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 113, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11306, 113027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',113027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',113027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113054, '1985-01-08', 'Perfecft!',113027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (113055, '1985-01-08', 'Beautiful colours. Nice close up. ',113027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (113029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 113, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(11306, 113029);
+UPDATE Album set coveringImage_id=113027 where id = 1130;
+
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 120
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (120, 'MyAlbum 120', 'MyAlbum pictures', 120, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12006, 'MyAlbum_120');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (120027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 120, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12006, 120027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',120027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',120027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120054, '1985-01-08', 'Perfecft!',120027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (120055, '1985-01-08', 'Beautiful colours. Nice close up. ',120027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (120029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 120, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12006, 120029);
+UPDATE Album set coveringImage_id=120027 where id = 1200;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 121
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (121, 'MyAlbum 121', 'MyAlbum pictures', 120, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12106, 'MyAlbum_121');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (121027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 121, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12106, 121027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',121027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',121027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121054, '1985-01-08', 'Perfecft!',121027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (121055, '1985-01-08', 'Beautiful colours. Nice close up. ',121027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (121029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 121, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12106, 121029);
+UPDATE Album set coveringImage_id=121027 where id = 1210;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 122
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (122, 'MyAlbum 122', 'MyAlbum pictures', 121, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12206, 'MyAlbum_122');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (122027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 122, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12206, 122027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',122027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',122027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122054, '1985-01-08', 'Perfecft!',122027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (122055, '1985-01-08', 'Beautiful colours. Nice close up. ',122027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (122029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 122, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12206, 122029);
+UPDATE Album set coveringImage_id=122027 where id = 1220;
+---------------------------------------------------------------------
+-- ALBUM - MyShelf - 123
+---------------------------------------------------------------------
+INSERT INTO Album(id, name, description, shelf_id, created) VALUES (123, 'MyAlbum 123', 'MyAlbum pictures', 121, '2009-12-18');
+INSERT INTO MetaTag(id, tag) VALUES (12306, 'MyAlbum_123');
+
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (123027, '117215467_5cccef9aaa_b.jpg', '117215467_5cccef9aaa_b.jpg', 'Water - 117215467_5cccef9aaa_b.jpg image', '2009-12-18', 123, 'Sony CyberShot DSC-T77', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12306, 123027);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123052, '1985-01-08', '|Wonderful| coloured flower .... *excellent* macro .... -nice- details!!!',123027, 2);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123053, '1985-01-08', 'love every thing about this picture, really beautiful... :))',123027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123054, '1985-01-08', 'Perfecft!',123027, 3);
+ INSERT INTO Comment(id, date, message, image_id, author_id) VALUES (123055, '1985-01-08', 'Beautiful colours. Nice close up. ',123027, 1);
+INSERT INTO Image(id, name, path, description, created, album_id, cameraModel, width, size, height, uploaded, allowComments, showMetaInfo) VALUES (123029, '205579493_baf0f850d1_o.jpg', '205579493_baf0f850d1_o.jpg', 'Water - 205579493_baf0f850d1_o.jpg image', '2009-12-18', 123, 'Nikon D60', 1024, 1917, 768, '2009-12-01', true, true);
+ INSERT INTO Image_MetaTag(IMAGETAGS_ID, IMAGES_ID) VALUES(12306, 123029);
+UPDATE Album set coveringImage_id=123027 where id = 1230;
+
+
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/100/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/100/101/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/102/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_add/101/103/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/110/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/110/111/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/112/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_del/111/113/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/120/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/120/121/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/122/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/117215467_5cccef9aaa_b_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_medium.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_medium.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small120.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small120.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small160.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small160.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small200.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small200.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small80.jpg
===================================================================
(Binary files differ)
Property changes on: branches/community/3.3.X/examples/photoalbum/source/web/src/main/images/short/Upload/user_for_dnd/121/123/205579493_baf0f850d1_o_small80.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/community/3.3.X/examples/photoalbum/source/web/src/main/webapp/includes/help/slideshow.xhtml
===================================================================
(Binary files differ)
Modified: branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/RealWorldHelper.java
===================================================================
--- branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/RealWorldHelper.java 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/RealWorldHelper.java 2009-08-18 15:41:09 UTC (rev 15206)
@@ -66,7 +66,7 @@
}
public static interface ToolBarArea {
- String PATH = "//*[@class='dr-toolbar-int rich-toolbar-item main-menu-toolbar-content']";
+ String PATH = "//*[contains(@class, 'main-menu-toolbar-content')]";
String VIEW_SHELFS_PATH = PATH + "/div[2]";
String VIEW_ALBUMS_PATH = PATH + "/div[3]";
String VIEW_IMAGES_PATH = PATH + "/div[4]";
@@ -172,8 +172,8 @@
String SEARCH_BUTTON = "//*[@class='search-find-button']";
String SEARCH_OPTION = "//*[@class='search-option-link']";
- String INACTIVE_TAB = "//*[@class='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-inact rich-tab-inactive bold']";
- String ACTIVE_TAB = "//*[@class='dr-tbpnl-tb rich-tab-header dr-tbpnl-tb-act rich-tab-active bold']";
+ String INACTIVE_TAB = "//*[contains(@class, 'rich-tab-inactive bold')]";
+ String ACTIVE_TAB = "//*[contains(@class, 'rich-tab-active bold')]";
String SEARCH_CRITERIA_KEYWORDS = "//*[@class='search-keyword']";
String SEARCH_CRITERIA_OBJECTS = "//*[@class='search-criteria'][1]";
@@ -187,13 +187,16 @@
String OBJETCS_TAGS = "//*[@class='search-options-div2']//span[contains(. , 'Tags')]/input";
}
- }
- public static void login(Selenium selenium) {
- login(selenium, UserInfoConstants.LOGIN_NAME, UserInfoConstants.LOGIN_PASSWORD);
- }
-
- public static void login(Selenium selenium, String name, String password) {
+ }
+
+ public static void login(Selenium selenium) {
+ login(selenium, UserInfoConstants.LOGIN_NAME, UserInfoConstants.LOGIN_PASSWORD);
+ }
+ public static void login(Selenium selenium, String login) {
+ login(selenium, login, UserInfoConstants.LOGIN_PASSWORD);
+ }
+ public static void login(Selenium selenium, String name, String password) {
if (isLogined(selenium)) {
logout(selenium);
}
@@ -203,26 +206,26 @@
}catch (Exception e) {
Assert.fail("Test failed caused by: " + e);
}
-
+
Assert.assertTrue(selenium.isVisible(HtmlConstants.LoginPanel.usernameId), "Input for username in not visible");
Assert.assertTrue(selenium.isVisible(HtmlConstants.LoginPanel.passwordId), "Input for password in not visible");
-
+
String type = selenium.getAttribute("//*[@id='"+HtmlConstants.LoginPanel.passwordId+"']/@type");
if (!"password".equals(type)) {
Assert.fail("Password input should be of 'password' type");
}
-
+
selenium.type(HtmlConstants.LoginPanel.usernameId, name);
selenium.type(HtmlConstants.LoginPanel.passwordId, password);
-
+
selenium.click(HtmlConstants.LoginPanel.loginButtonPath);
waitForAjaxCompletion(selenium);
-
- if (!isLogined(selenium, UserInfoConstants.LOGIN_NAME)) {
- Assert.fail("Authentication was not succesfull. Logged user text should contain typed login name");
- }
+
+// if (!isLogined(selenium, UserInfoConstants.LOGIN_NAME)) {
+// Assert.fail("Authentication was not succesfull. Logged user text should contain typed login name");
+// }
}
-
+
public static void logout(Selenium selenium) {
selenium.click(HtmlConstants.LogInOutArea.LOGOUT_PATH);
selenium.waitForPageToLoad(String.valueOf(TIMEOUT));
@@ -232,7 +235,6 @@
public static void testUserProfile(Selenium selenium) {
testUserProfile(selenium, null);
}
-
public static void testUserProfile(Selenium selenium, String name) {
Assert.assertTrue(selenium.isVisible(HtmlConstants.UserProfileArea.NAME_PATH));
if (name != null) {
@@ -270,11 +272,9 @@
public static void testShelfArea(Selenium selenium) {
testShelfArea(selenium, null, null);
}
-
public static void testShelfArea(Selenium selenium, String shelfName) {
testShelfArea(selenium, shelfName, null);
}
-
public static void testShelfArea(Selenium selenium, String shelfName, String description) {
Assert.assertTrue(selenium.isVisible(HtmlConstants.ShelfArea.HEADER_PATH));
if (shelfName != null) {
@@ -337,7 +337,6 @@
public static void openAlbumFromPreview(Selenium selenium) {
openAlbumFromPreview(selenium, selenium.getText(HtmlConstants.AlbumArea.PREVIEW_PATH + HtmlConstants.AlbumArea.PREVIEW_NAME_PATH_SUFFIX));
}
-
public static void openAlbumFromPreview(Selenium selenium, String albumName) {
boolean presented = false;
int xpathCount = selenium.getXpathCount(HtmlConstants.AlbumArea.PREVIEW_PATH).intValue();
@@ -361,11 +360,9 @@
public static void testAlbumArea(Selenium selenium) {
testAlbumArea(selenium, null, null);
}
-
public static void testAlbumArea(Selenium selenium, String albumName) {
testAlbumArea(selenium, albumName, null);
}
-
public static void testAlbumArea(Selenium selenium, String albumName, String description) {
Assert.assertTrue(selenium.isVisible(HtmlConstants.AlbumArea.HEADER_PATH));
if (albumName != null) {
@@ -404,6 +401,7 @@
public static void addAlbum(Selenium selenium, String albumName) {
selenium.click(HtmlConstants.ToolBarArea.ADD_ALBUM_PATH);
waitForAjaxCompletion(selenium);
+
selenium.type(HtmlConstants.AddAlbumPanel.NAME_ID, albumName);
selenium.click(HtmlConstants.AddAlbumPanel.SAVE_PATH);
waitForAjaxCompletion(selenium);
@@ -432,8 +430,7 @@
public static void openImageFromPreview(Selenium selenium) {
openImageFromPreview(selenium, selenium.getText(HtmlConstants.ImageArea.PREVIEW_PATH + HtmlConstants.ImageArea.PREVIEW_NAME_PATH_SUFFIX));
}
-
- public static void openImageFromPreview(Selenium selenium, String imageName) {
+ public static void openImageFromPreview(Selenium selenium, String imageName) {
boolean presented = false;
int xpathCount = selenium.getXpathCount(HtmlConstants.ImageArea.PREVIEW_PATH).intValue();
for (int i = 1; i <= xpathCount && !presented; i++) {
@@ -461,11 +458,9 @@
public static void testImageArea(Selenium selenium) {
testImageArea(selenium, null, null);
}
-
public static void testImageArea(Selenium selenium, String imageName) {
testImageArea(selenium, imageName, null);
}
-
public static void testImageArea(Selenium selenium, String imageName, String description) {
Assert.assertTrue(selenium.isVisible(HtmlConstants.ImageArea.HEADER_PATH));
if (imageName != null) {
@@ -516,7 +511,6 @@
public static boolean isLogined(Selenium selenium) {
return isLogined(selenium, null);
}
-
public static boolean isLogined(Selenium selenium, String name) {
boolean logined = !selenium.getXpathCount(HtmlConstants.LogInOutArea.USER_INFO_PATH).equals(0);
if (logined && name != null) {
Modified: branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/AddUseCasesTest.java
===================================================================
--- branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/AddUseCasesTest.java 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/AddUseCasesTest.java 2009-08-18 15:41:09 UTC (rev 15206)
@@ -20,11 +20,13 @@
public void testAddAlbum() {
String albumName = "_album";
renderPage();
- RealWorldHelper.login(selenium);
+
+ RealWorldHelper.login(selenium, "user_for_add");
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
waitForAjaxCompletion();
Assert.assertFalse(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
- RealWorldHelper.addAlbum(selenium, albumName);
+
+ RealWorldHelper.addAlbum(selenium, albumName);
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
waitForAjaxCompletion();
Assert.assertTrue(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
@@ -34,11 +36,13 @@
public void testAddShelf() {
String shelfName = "_shelf";
renderPage();
- RealWorldHelper.login(selenium);
+
+ RealWorldHelper.login(selenium, "user_for_add");
selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
Assert.assertFalse(RealWorldHelper.isShelfPresentOnPage(selenium, shelfName));
- RealWorldHelper.addShelf(selenium, shelfName);
+
+ RealWorldHelper.addShelf(selenium, shelfName);
selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
Assert.assertTrue(RealWorldHelper.isShelfPresentOnPage(selenium, shelfName));
Modified: branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DeleteUseCasesTest.java
===================================================================
--- branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DeleteUseCasesTest.java 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DeleteUseCasesTest.java 2009-08-18 15:41:09 UTC (rev 15206)
@@ -15,28 +15,37 @@
*
*/
public class DeleteUseCasesTest extends SeleniumTestBase {
-
- @Test
+
+ @Test
+ public void testDelete() {
+ testDeleteImage();
+ testDeleteAlbum();
+ testDeleteShelf();
+ }
+
public void testDeleteImage() {
renderPage();
- RealWorldHelper.login(selenium);
+ RealWorldHelper.login(selenium, "user_for_del");
selenium.click(HtmlConstants.ToolBarArea.VIEW_IMAGES_PATH);
waitForAjaxCompletion();
- String imageName = selenium.getText(HtmlConstants.ImageArea.PREVIEW_PATH + HtmlConstants.ImageArea.PREVIEW_NAME_PATH_SUFFIX);
+
+ String imageName = selenium.getText(HtmlConstants.ImageArea.PREVIEW_PATH + HtmlConstants.ImageArea.PREVIEW_NAME_PATH_SUFFIX);
+ String xpath = "//*[@class='preview_box_photo_120']/*[@class='photo_name' and . = '" + imageName + "']";
+ int count = selenium.getXpathCount(xpath).intValue();
RealWorldHelper.openImageFromPreview(selenium);
RealWorldHelper.deleteCurrentImage(selenium);
selenium.click(HtmlConstants.ToolBarArea.VIEW_IMAGES_PATH);
waitForAjaxCompletion();
- Assert.assertFalse(RealWorldHelper.isImagePresentOnPage(selenium, imageName));
+ Assert.assertTrue(count > selenium.getXpathCount(xpath).intValue());
}
- @Test
public void testDeleteAlbum() {
renderPage();
- RealWorldHelper.login(selenium);
+ RealWorldHelper.login(selenium, "user_for_del");
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
waitForAjaxCompletion();
- String albumName = selenium.getText(HtmlConstants.AlbumArea.PREVIEW_PATH + HtmlConstants.AlbumArea.PREVIEW_NAME_PATH_SUFFIX);
+
+ String albumName = selenium.getText(HtmlConstants.AlbumArea.PREVIEW_PATH + HtmlConstants.AlbumArea.PREVIEW_NAME_PATH_SUFFIX);
RealWorldHelper.openAlbumFromPreview(selenium);
RealWorldHelper.deleteCurrentAlbum(selenium);
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
@@ -44,11 +53,11 @@
Assert.assertFalse(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
}
- @Test
public void testDeleteShelf() {
renderPage();
- RealWorldHelper.login(selenium);
- String shelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_NAME_PATH);
+ RealWorldHelper.login(selenium, "user_for_del");
+
+ String shelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_NAME_PATH);
RealWorldHelper.deleteCurrentShelf(selenium);
Assert.assertFalse(RealWorldHelper.isShelfPresentOnPage(selenium, shelfName));
}
Modified: branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DnDUseCasesTest.java
===================================================================
--- branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DnDUseCasesTest.java 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/DnDUseCasesTest.java 2009-08-18 15:41:09 UTC (rev 15206)
@@ -18,7 +18,7 @@
@Test
public void testDnDAlbumFromTree() {
renderPage();
- RealWorldHelper.login(selenium);
+ RealWorldHelper.login(selenium, "user_for_add");
String toShelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_PATH + "[2]" + HtmlConstants.ShelfArea.HEADER_NAME_PATH_SUFFIX);
String fromShelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_PATH + "[3]" + HtmlConstants.ShelfArea.HEADER_NAME_PATH_SUFFIX);
RealWorldHelper.openShelf(selenium, fromShelfName);
@@ -28,11 +28,13 @@
String albumTextPath = RealWorldHelper.getAlbumTextPathInTree(selenium, albumName);
selenium.dragAndDropToObject(albumTextPath, shelfTextPath);
waitForAjaxCompletion();
- selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
+
+ selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openShelf(selenium, fromShelfName);
Assert.assertFalse(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
- selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
+
+ selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openShelf(selenium, toShelfName);
Assert.assertTrue(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
@@ -41,7 +43,7 @@
@Test
public void testDnDAlbumFromPreview() {
renderPage();
- RealWorldHelper.login(selenium);
+ RealWorldHelper.login(selenium, "user_for_add");
String fromShelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_PATH + "[2]" + HtmlConstants.ShelfArea.HEADER_NAME_PATH_SUFFIX);
String toShelfName = selenium.getText(HtmlConstants.ShelfArea.HEADER_PATH + "[3]" + HtmlConstants.ShelfArea.HEADER_NAME_PATH_SUFFIX);
RealWorldHelper.openShelf(selenium, fromShelfName);
@@ -49,11 +51,13 @@
String shelfTextPath = RealWorldHelper.getShelfTextPathInTree(selenium, toShelfName);
selenium.dragAndDropToObject(HtmlConstants.AlbumArea.PREVIEW_PATH + HtmlConstants.AlbumArea.PREVIEW_DRAG_PATH_SUFFIX, shelfTextPath);
waitForAjaxCompletion();
- selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
+
+ selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openShelf(selenium, fromShelfName);
Assert.assertFalse(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
- selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
+
+ selenium.click(HtmlConstants.ToolBarArea.VIEW_SHELFS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openShelf(selenium, toShelfName);
Assert.assertTrue(RealWorldHelper.isAlbumPresentOnPage(selenium, albumName));
@@ -62,7 +66,7 @@
@Test
public void testDnDImage() {
renderPage();
- RealWorldHelper.login(selenium);
+ RealWorldHelper.login(selenium, "user_for_dnd");
RealWorldHelper.openShelf(selenium);
String fromAlbumName = selenium.getText(HtmlConstants.AlbumArea.PREVIEW_PATH + HtmlConstants.AlbumArea.PREVIEW_NAME_PATH_SUFFIX);
String toAlbumName = selenium.getText(HtmlConstants.AlbumArea.PREVIEW_PATH + "[2]" + HtmlConstants.AlbumArea.PREVIEW_NAME_PATH_SUFFIX);
@@ -71,10 +75,12 @@
String albumTextPath = RealWorldHelper.getAlbumTextPathInTree(selenium, toAlbumName);
selenium.dragAndDropToObject(HtmlConstants.ImageArea.PREVIEW_PATH + HtmlConstants.ImageArea.PREVIEW_DRAG_PATH_SUFFIX, albumTextPath);
waitForAjaxCompletion();
+
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openAlbumFromPreview(selenium, fromAlbumName);
Assert.assertFalse(RealWorldHelper.isImagePresentOnPage(selenium, imageName));
+
selenium.click(HtmlConstants.ToolBarArea.VIEW_ALBUMS_PATH);
waitForAjaxCompletion();
RealWorldHelper.openAlbumFromPreview(selenium, toAlbumName);
Modified: branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/SearchTest.java
===================================================================
--- branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/SearchTest.java 2009-08-18 15:41:03 UTC (rev 15205)
+++ branches/community/3.3.X/examples/photoalbum/tests/src/test/java/org/richfaces/photoalbum/testng/SearchTest.java 2009-08-18 15:41:09 UTC (rev 15206)
@@ -87,7 +87,7 @@
checkResult(SPORT, 0, 0, OBJECT_TAG);
- Assert.assertEquals(1, selenium.getXpathCount("//*[@class='rich-tabpanel-content bold']"));
+ Assert.assertEquals(1, selenium.getXpathCount("//*[contains(@class, 'rich-tabpanel-content bold')]"));
}
14 years, 10 months