JBoss Rich Faces SVN: r3506 - trunk/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: vkorluzhenko
Date: 2007-10-24 11:42:43 -0400 (Wed, 24 Oct 2007)
New Revision: 3506
Modified:
trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
Log:
http://jira.jboss.com/jira/browse/RF-1042 - added description for attributes
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2007-10-24 13:40:52 UTC (rev 3505)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2007-10-24 15:42:43 UTC (rev 3506)
@@ -215,10 +215,10 @@
</section>
<section id="AjaxRequestOptimization">
- <?dbhtml filename="AjaxRequestOptimization"?>
+ <?dbhtml filename="AjaxRequestOptimization.html"?>
<title>Ajax Request Optimization</title>
<section id="Re-Rendering">
- <?dbhtml filename="Re-Rendering"?>
+ <?dbhtml filename="Re-Rendering.html"?>
<title>Re-Rendering</title>
<para>Ajax attributes are common for Ajax components such as <emphasis role="bold">
<property><a4j:support></property>
@@ -312,7 +312,8 @@
update a page, because the place for update is unknown. You need to point to one of the
parent components that has no <emphasis>
<property>"rendered"</property>
- </emphasis> attribute. As an alternative, you can wrap the component with <emphasis role="bold">
+ </emphasis> attribute. As an alternative, you can wrap the component with <emphasis
+ role="bold">
<property><a4j:outputPanel></property>
</emphasis> layout=<property>"none"</property>.</para>
@@ -339,13 +340,243 @@
</emphasis>
<emphasis>
<property>"ajaxRendered" </property>
- </emphasis> attribute. limitToList = <property>"false"</property> means
- to update only the area(s) that mentioned in the
- <emphasis/>"reRender"<property/> attribute explicitly. All output panels
- with ajaxRendered=<property>"true"</property> will be ignored.</para>
+ </emphasis> attribute. "limitToList" =
+ <property>"false"</property> means to update only the area(s) that
+ mentioned in the <emphasis/>"reRender"<property/> attribute explicitly.
+ All output panels with
+ "ajaxRendered"=<property>"true"</property> will be
+ ignored.</para>
</section>
-
-
+
+ <section id="QueueandTrafficFloodProtection">
+ <?dbhtml filename="QueueandTrafficFloodProtection.html"?>
+ <title>Queue and Traffic Flood Protection</title>
+ <para><emphasis>
+ <property>"eventsQueue"</property>
+ </emphasis> attribute defines the name of the queue that will be used to order upcoming
+ Ajax requests. By default, RichFaces does not queue Ajax requests. If events are produced
+ simultaneously, they will come to the server simultaneously. JSF implementations
+ (especially, the very first ones) does not guaranty that the request that comes first will
+ be served or passed into the JSF lifecycle first. The order how the server side data will
+ be modified in case of simultaneous request might be unpredictable. Usage of eventsQueue
+ attribute allows to avoid possible mess. Define the queue name explicitly, if you expect
+ intensive Ajax traffic in your application.</para>
+ <para>The next request posted in the same queue will wait until the previos one is not
+ processed and Ajax Response is returned back if the <emphasis>
+ <property>"eventsQueue"</property>
+ </emphasis> attribute is defined. In addition, Richfaces starts to remove from the queue
+ "similar" requests. "Similar'"requests are the
+ requests produced by the same event. For example, according to the following code, only
+ the newest request will be sent to the server if a user types very fast and has typed the
+ several characters already before the previous Ajax Response is back.</para>
+
+ <programlisting role="XML"><![CDATA[...
+ <h:inputText value="#{userBean.name}">
+ <a4j:support event="onkeyup" eventsQueue="foo" reRender="bar" />
+ </h:inputText>
+...
+]]></programlisting>
+
+ <para><emphasis>
+ <property>"requestDelay"</property>
+ </emphasis> attribute defines the time (in ms) that the request will be wait in the queue
+ before it is ready to send. When the delay time is over, the request will be sent to the
+ server or removed if the newest "similar" request is in a queue already
+ .</para>
+ <para><emphasis>
+ <property>"ignoreDupResponses"</property>
+ </emphasis> attribute orders to ignore the Ajax Response produced by the request if the
+ newest "similar" request is in a queue already.
+ "ignoreDupResponses"=<property>"true"</property>
+ does not cancel the request while it is processed on the server, but just allows to avoid
+ unnecessary updates on the client side if the response loses the actuality.</para>
+ <para>Defining the <emphasis>
+ <property>"eventsQueue"</property>
+ </emphasis> along with <emphasis>
+ <property>"requestDelay"</property>
+ </emphasis> allows to protect against unnecessary traffic flood and synchronizes Ajax
+ requests order. If you have several sources of Ajax requests, you can define the same
+ queue name there. This might be very helpful if you have Ajax components that invoke
+ request asynchronously from the ones produced by events from users. For example, <emphasis
+ role="bold">
+ <property><a4j:poll></property>
+ </emphasis> or <emphasis role="bold">
+ <property><a4j:push></property>
+ </emphasis>. In case the requests from such components modify the same data, the
+ synchronization might be very helpful.</para>
+
+ <para>More information can be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105766"
+ >RichFaces Users Forum</ulink>.</para>
+ </section>
+
+ <section id="DataProcessingOptions">
+ <?dbhtml filename="DataProcessingOptions.html"?>
+ <title>Data Processing Options</title>
+ <para>RichFaces uses form based approach for Ajax request sending. This means each time,
+ when a user click an Ajax button or <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> produces an asynchronous request, the data from the closest JSF form is
+ submitted with the XMLHTTPRequest object. The form data contains the values from the form
+ input element and auxiliary information such as state saving data.</para>
+ <para>When <emphasis>
+ <property>"ajaxSingle"</property>
+ </emphasis> attribute value is <property>"true"</property>, it orders to
+ include only a value of the current component (along with <emphasis role="bold">
+ <property><f:param></property>
+ </emphasis> or <emphasis role="bold">
+ <property><a4j:action></property>
+ </emphasis> param values if any) to the request map. In case of <emphasis role="bold">
+ <property>a4j:support</property>
+ </emphasis>, it will be a value of the parent component.</para>
+ <para>Note, that
+ "ajaxSingle"=<property>"true"</property> reduces the
+ upcoming traffic, but does not prevent decoding other input components on the server side.
+ Some JSF components, such as <emphasis role="bold">
+ <property><h:selectOneMenu></property>
+ </emphasis> do recognize the missing data in the request map value as a null value and try
+ to pass the validation process with a failed result. Thus, use <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> to limit a part of the component tree that will be processed on the server
+ side when it is required.</para>
+ <para><emphasis>
+ <property>"immediate"</property>
+ </emphasis> attribute has the same purpose as any other non-JSF component. The default <emphasis>
+ <property>"ActionListener"</property>
+ </emphasis> should be executed immediately (i.e. during the Apply Request Values phase of
+ a request processing lifecycle), rather than waiting until the Invoke Application phase.
+ Using immediate=<property>"true"</property> is one of the ways to have
+ some data model values updated when other cannot be updated because of a problem with
+ passing the Validation phase successfully. This might be important inside the <emphasis
+ role="bold">
+ <property><h:dataTable></property>
+ </emphasis> like components where using <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> is impossible due to the <emphasis role="bold">
+ <property><h:dataTable></property>
+ </emphasis> component architecture.</para>
+
+ <para><emphasis>
+ <property>"bypassUpdates"</property>
+ </emphasis> attribute allows to bypass the Update Model phase. It might be useful if you
+ need to check user input against the available validator, but not to update the model with
+ those data. Note, that an action will be invoked at the end of the Validation phase only
+ if the Validation phase is passed successfully. The listeners of the Application phase
+ will not be invoked in any case.</para>
+ </section>
+
+ <section id="ActionandNavigation">
+ <?dbhtml filename="ActionandNavigation.html"?>
+ <title>Action and Navigation</title>
+ <para>Ajax component is similar to any other non-Ajax JSF component like <emphasis
+ role="bold">
+ <property><h:commandButton></property>
+ </emphasis>. It allows to submit the form. You can use <emphasis>
+ <property>"action"</property>
+ </emphasis> and <emphasis>
+ <property>"actionListener"</property>
+ </emphasis> attribute to invoke the action method and define the action event.</para>
+ <para><emphasis>
+ <property>"action"</property>
+ </emphasis> method must return null if you want to have an Ajax Response with a partual
+ page update. This is regular mode called "Ajax request generates Ajax Response". In case
+ of action does not return null, but the action outcome that matches one of navigation
+ rules, RichFaces starts to work in "Ajax request generates Non-Ajax Response" mode. This
+ mode might be helpful in two major cases:</para>
+ <itemizedlist>
+ <listitem>RichFaces allows to organize a page flow inside the <emphasis role="bold">
+ <property><a4j:include></property>
+ </emphasis> component. This is a typical scenario for Wizard like behavior. The new
+ content is rendered inside the <emphasis role="bold">
+ <property><a4j:include></property>
+ </emphasis> area. The content is taken from the navigation rule of the faces
+ configuration file (usually, the faces-config.xml). Note, that the content of the
+ "wizard" is not isolated from the rest of the page. The included page should not have
+ own <emphasis role="bold">
+ <property><f:view></property>
+ </emphasis> (it does not matter if you use facelets). You need to have an Ajax component
+ inside the <emphasis role="bold">
+ <property><a4j:include></property>
+ </emphasis> to navigate between the wizard pages. Otherwize, the whole page update will
+ be performed.</listitem>
+ <listitem>If you want to involve the server side validators and navigate to the next page
+ only if the Validation phase is passed successfully, you can replace <emphasis
+ role="bold">
+ <property><h:commandButton></property>
+ </emphasis> with <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> and point to the action method that navigates to the next page. If
+ Validation process fails, the partial page update will occur and a user will see an
+ error message. Otherwize, the application proceeds to the next page. Make sure, you
+ define <redirect/> option for the navigation rule to avoid memory
+ leaks.</listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="JavascriptInteractions">
+ <?dbhtml filename="JavascriptInteractions.html"?>
+ <title>JavaScript Interactions</title>
+ <para>RichFaces allows writing Ajax-enabled JSF application without writing any Javascript
+ code. However, you can still invoke the javascript code if you need. There are several
+ ajax attributes that helps to do it.</para>
+ <para><emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> attribute allows to invoke JavaScript code before an Ajax request is sent. If <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> returns <property>"false"</property>, the Ajax request is
+ canceled. The code of <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> is inserted before the RichFaces Ajax call. Hence, the <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis> should not has a "return" statement if you want the Ajax
+ request to be sent. If you are going to invoke a JavaScript function that returns
+ <property>"true"</property> or
+ <property>"false"</property>, use the conditional statement to return
+ something only when you need to cancel the request. For example: </para>
+ <programlisting role="XML"><![CDATA[...
+ onsubmit="if (mynosendfunct()==false){return false}"
+...
+]]></programlisting>
+
+ <para><emphasis>
+ <property>"onclick"</property>
+ </emphasis> attribute is similar to the <emphasis>
+ <property>"onsubmit"</property>
+ </emphasis>, but for clickable components such as <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> and <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis>. If it returns <property>"false"</property>, the Ajax
+ request is canceled also.</para>
+ <para><emphasis>
+ <property>"oncomplete"</property>
+ </emphasis> attribute allows to invoke the JavaScript code right after the Ajax Response
+ is returned back and the DOM tree of the browser is updated. Richfaces registers the code
+ for further invocation of XMLHTTP request object before an Ajax request is sent. This
+ means the code will not be changed during processing of the request on the server if you
+ use JSF EL value binding. Also, you cannot use "this'" inside the code,
+ because it will not point the component where Ajax request was initiated.</para>
+
+ <para><emphasis>
+ <property>"data"</property>
+ </emphasis> attribute allows to get the additional data from the server during an Ajax
+ call. You can use JSF EL to point the property of the managed bean and its value will be
+ serialized in JSON format and be available on the client side. You can refer to it using
+ the <emphasis>
+ <property>"data"</property>
+ </emphasis> variable. For example:</para>
+ <programlisting role="XML"><![CDATA[...
+ <a4j:commandButton value="Update" data="#{userBean.name}" oncomplete="showTheName(data.name)" />
+...
+]]></programlisting>
+
+ <para>Richfaces allows to serialize not only primitive types into JSON format, but also
+ complex types including arrays and collections. The beans should be serializable to be
+ refered with <emphasis>
+ <property>"data"</property>
+ </emphasis>.</para>
+ </section>
+
</section>
<section id="DecideWhatToSend">
16 years, 11 months
JBoss Rich Faces SVN: r3505 - in trunk/ui/scrollableDataTable/src/main: templates/org/richfaces and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: konstantin.mishin
Date: 2007-10-24 09:40:52 -0400 (Wed, 24 Oct 2007)
New Revision: 3505
Modified:
trunk/ui/scrollableDataTable/src/main/java/org/richfaces/renderkit/html/ScrollableDataTableBaseRenderer.java
trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table-footer-cell.jspx
trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx
Log:
RF-1159
Modified: trunk/ui/scrollableDataTable/src/main/java/org/richfaces/renderkit/html/ScrollableDataTableBaseRenderer.java
===================================================================
--- trunk/ui/scrollableDataTable/src/main/java/org/richfaces/renderkit/html/ScrollableDataTableBaseRenderer.java 2007-10-24 13:24:11 UTC (rev 3504)
+++ trunk/ui/scrollableDataTable/src/main/java/org/richfaces/renderkit/html/ScrollableDataTableBaseRenderer.java 2007-10-24 13:40:52 UTC (rev 3505)
@@ -289,7 +289,10 @@
ColumnWalker.iterateOverColumns(context, grid, cellRenderer, writer, state);
if(!state.isFrozenPart()){
writer.startElement("td", grid);
- getUtils().writeAttribute(writer, "class","dr-sdt-bc rich-sdt-row " + state.getColumnClass(state.getCellIndex()));
+ getUtils().writeAttribute(writer, "class","dr-sdt-bc rich-sdt-column-cell " + state.getColumnClass(state.getCellIndex()));
+ writer.startElement(HTML.DIV_ELEM, grid);
+ getUtils().writeAttribute(writer, "class","dr-sdt-bcbody");
+ writer.endElement(HTML.DIV_ELEM);
writer.endElement("td");
}
writer.endElement(HTML.TR_ELEMENT);
Modified: trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table-footer-cell.jspx
===================================================================
--- trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table-footer-cell.jspx 2007-10-24 13:24:11 UTC (rev 3504)
+++ trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table-footer-cell.jspx 2007-10-24 13:40:52 UTC (rev 3505)
@@ -12,11 +12,9 @@
>
<th class="dr-sdt-fc rich-sdt-footer-cell #{footerColumnClass} #{footerColumnSortClass} #{component.attributes['footerClass']}">
- <span id="#{client_id}:fc_#{cell_index}" class="dr-sdt-fcbody1">
- <span class="dr-sdt-fcbody">
- <vcp:body/>
- </span>
- </span>
+ <div id="#{client_id}:fc_#{cell_index}" class="dr-sdt-fcbody1">
+ <vcp:body/>
+ </div>
</th>
</f:root>
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx
===================================================================
--- trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx 2007-10-24 13:24:11 UTC (rev 3504)
+++ trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx 2007-10-24 13:40:52 UTC (rev 3505)
@@ -128,7 +128,9 @@
renderHeaders(context, component, false);
]]>
</jsp:scriptlet>
- <th></th>
+ <th class="dr-sdt-hc rich-sdt-header-cell">
+ <div class="dr-sdt-hcbody" />
+ </th>
</tr>
</thead>
</table>
@@ -222,7 +224,9 @@
renderFooters(context, component,false);
]]>
</jsp:scriptlet>
- <th></th>
+ <th class="dr-sdt-fc rich-sdt-footer-cell">
+ <div class="dr-sdt-fcbody1" />
+ </th>
</tr>
</tfoot>
</table>
16 years, 11 months
JBoss Rich Faces SVN: r3504 - trunk/cdk/generator/src/main/resources/META-INF/templates12.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-10-24 09:24:11 -0400 (Wed, 24 Oct 2007)
New Revision: 3504
Modified:
trunk/cdk/generator/src/main/resources/META-INF/templates12/taglib.vm
Log:
fixed wrong tld definition
Modified: trunk/cdk/generator/src/main/resources/META-INF/templates12/taglib.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/taglib.vm 2007-10-24 13:04:13 UTC (rev 3503)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/taglib.vm 2007-10-24 13:24:11 UTC (rev 3504)
@@ -3,25 +3,36 @@
#macro(tagAttributes $source)
#foreach( $prop in ${source.properties} )
#if( !${prop.hidden} && !${prop.disabled} )
- <attribute>
- <name>${prop.name}</name>
- #if(${prop.required})
- <required>true</required>
- #end
- <rtexprvalue>false</rtexprvalue>
- <description>${prop.xmlEncodedDescription}</description>
- </attribute>
+ <attribute>
+ <description>${prop.xmlEncodedDescription}</description>
+ <name>${prop.name}</name>
+ #if(${prop.required})
+ <required>true</required>
+ #end
+ #if(${prop.el})
+ #if( !$prop.isInstanceof("javax.faces.el.MethodBinding") && !$prop.isInstanceof("javax.el.MethodExpression") )
+ <deferred-value>
+ <type>${prop.classname}</type>
+ </deferred-value>
+ #else
+ <deferred-method>
+ <method-signature>${prop.returntype} ${prop.name}(${prop.methodargs})</method-signature>
+ </deferred-method>
+ #end
+ #else
+ <rtexprvalue>false</rtexprvalue>
+ #end
+ </attribute>
#if( $prop.alias )
- <attribute>
- <name>${prop.alias}</name>
- <rtexprvalue>false</rtexprvalue>
- <description>Alias for ${prop.name} : ${prop.xmlEncodedDescription}</description>
- </attribute>
+ <attribute>
+ <name>${prop.alias}</name>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Alias for ${prop.name} : ${prop.xmlEncodedDescription}</description>
+ </attribute>
#end
#end
#end
#end
-
##Create tag for dedicated object in config
#macro(tag $source)
#if($source.tag)
16 years, 11 months
JBoss Rich Faces SVN: r3503 - branches/3.1.x/test-applications/facelets/src/main/webapp/WEB-INF.
by richfaces-svn-commits@lists.jboss.org
Author: viktor_volkov
Date: 2007-10-24 09:04:13 -0400 (Wed, 24 Oct 2007)
New Revision: 3503
Modified:
branches/3.1.x/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
Log:
adding faces-config-RichPanelsBean.xml
Modified: branches/3.1.x/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/3.1.x/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2007-10-24 10:48:52 UTC (rev 3502)
+++ branches/3.1.x/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2007-10-24 13:04:13 UTC (rev 3503)
@@ -33,7 +33,7 @@
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
- <param-value>/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-DradAbdDrop.xml,/WEB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth!
.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-SelectOneMenuPage.xml,/WEB-INF/faces-config-RichTest.xml</param-value>
+ <param-value>/WEB-INF/faces-config-RichPanelsBean.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-DradAbdDrop.xml,/WEB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Messa!
ge.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-SelectOneMenuPage.xml,/WEB-INF/faces-config-RichTest.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
16 years, 11 months
JBoss Rich Faces SVN: r3502 - trunk/docs/userguide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2007-10-24 06:48:52 -0400 (Wed, 24 Oct 2007)
New Revision: 3502
Added:
trunk/docs/userguide/en/src/main/resources/images/tree3.png
trunk/docs/userguide/en/src/main/resources/images/tree4.png
Log:
http://jira.jboss.com/jira/browse/RF-1137 - adding screenshorts
Added: trunk/docs/userguide/en/src/main/resources/images/tree3.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/tree3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/userguide/en/src/main/resources/images/tree4.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/tree4.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 11 months
JBoss Rich Faces SVN: r3501 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2007-10-24 06:45:33 -0400 (Wed, 24 Oct 2007)
New Revision: 3501
Modified:
trunk/docs/userguide/en/src/main/docbook/included/effect.xml
Log:
http://jira.jboss.com/jira/browse/RF-1050 - updating the component
Modified: trunk/docs/userguide/en/src/main/docbook/included/effect.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/effect.xml 2007-10-24 10:42:34 UTC (rev 3500)
+++ trunk/docs/userguide/en/src/main/docbook/included/effect.xml 2007-10-24 10:45:33 UTC (rev 3501)
@@ -175,12 +175,11 @@
</emphasis> attribute.</listitem>
</itemizedlist>
</para>
-
- <para>
- You can use a set of effects directly without defining the <emphasis role="bold">
+
+ <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>
+ </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>
@@ -188,19 +187,21 @@
<a4j:loadScript src="resource://scriptaculous/effect.js" />
...
]]></programlisting>
- <para>
- If you do use the <emphasis role="bold">
+ <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>
-
+ </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>Relevant Resources Links</title>
<para>
<ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/effect.jsf?c=effect"
- >Here</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:effect></property></emphasis> usage. </para>
+ >Here</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
16 years, 11 months
JBoss Rich Faces SVN: r3500 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2007-10-24 06:42:34 -0400 (Wed, 24 Oct 2007)
New Revision: 3500
Modified:
trunk/docs/userguide/en/src/main/docbook/included/tree.xml
Log:
http://jira.jboss.com/jira/browse/RF-1137 - rewriting the component
Modified: trunk/docs/userguide/en/src/main/docbook/included/tree.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/tree.xml 2007-10-24 10:41:20 UTC (rev 3499)
+++ trunk/docs/userguide/en/src/main/docbook/included/tree.xml 2007-10-24 10:42:34 UTC (rev 3500)
@@ -89,10 +89,10 @@
</section>
<section>
<title>Details of Usage</title>
- <para>As it has been mentioned above the tree component allows rendering any tree-like structure
- of data.</para>
- <para>A bean property is passed into a tree <property>"value"</property>
- attribute. The property keeps a structure of an<ulink
+ <para>As it has been mentioned <link linked="tree">above</link> the tree component allows
+ rendering any tree-like structure of data.</para>
+ <para>A bean property is passed into a tree <emphasis><property>"value"</property></emphasis>
+ attribute. The property keeps a structure of an <ulink
url="http://labs.jboss.com/file-access/default/members/jbossrichfaces/freezone..."
>org.richfaces.component.TreeNode</ulink> type.</para>
<para>There is a default class TreeNodeImpl which is used for treeNode interface implementation.
@@ -101,19 +101,19 @@
<para><emphasis role="bold">
<property><rich:treeNode></property>
</emphasis> has getValue method which is available in a request scope variable with name that
- is defined by <property>"var"</property> attribute of tree component. </para>
-
+ is defined by <emphasis><property>"var"</property></emphasis> attribute of tree component. </para>
+
<para>For particular visual representation of data <emphasis role="bold">
<property><rich:tree></property>
</emphasis> selects by type one of the children treeNode components. The type is defined with
- the <property>"nodeFace"</property> attribute that contains value of
- <property>"type"</property> attribute for treeNode. An example of
- definition is placed below: </para>
-
+ the <emphasis><property>"nodeFace"</property></emphasis> attribute that contains value of
+ <emphasis><property>"type"</property></emphasis> attribute for treeNode. An example of
+ definition is placed below: </para>
+
<para>
<emphasis role="bold">Example:</emphasis>
</para>
-
+
<programlisting role="JAVA"><![CDATA[...
<h:form>
<rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
@@ -130,10 +130,9 @@
</h:form>
...
]]></programlisting>
-
- <para>This is a result:
- </para>
-
+
+ <para>This is a result: </para>
+
<figure>
<title>Expanded tree with child elements of different types</title>
<mediaobject>
@@ -142,57 +141,105 @@
</imageobject>
</mediaobject>
</figure>
-
- <para>For data output, named <property>tree</property> nodes elements are used. Each element,
- for example depending on its definition, could be rendered with markup defined in one of
- <property>tree</property> nodes. It's defined with the <emphasis>
+
+ <para>In case when <emphasis>
<property>"nodeFace"</property>
- </emphasis> attribute that contains treeNode name for elements rendering. It's not
- necessary to define <emphasis>
- <property>"nodeFace"</property>
- </emphasis> attribute. In case when <emphasis>
- <property>"nodeFace"</property>
- </emphasis> is undefined the first node inside the tree will be use by default (attributes <emphasis>
- <property>"rendered</property>
- </emphasis> and <emphasis>
+ </emphasis> attribute isn't defined or defined but its value isn&t equal to
+ any type of all children treeNode components or this value is equal to some type, but the
+ value of <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute for this treeNode is not defined then default treeNode is used. </para>
+
+ <para> Default treeNode is the first node (with not defined <emphasis>
<property>"type"</property>
- </emphasis> for this node should not be defined). </para>
+ </emphasis> attribute and defined <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute) from all children nodes of tree component. If such treeNode
+ wasn't found, following default interior presentation is used: </para>
<para>
<emphasis role="bold">Example:</emphasis>
</para>
- <programlisting role="JAVA"><![CDATA[nodeFace="#{data.name != 'param-value' ? 'input' : 'text'}"
+
+ <programlisting role="JAVA"><![CDATA[<h: outputText value="#{varAttributeName}">
]]></programlisting>
- <para>On the screenshot there are examples of nodes defined with different templates on the
- following conditions.</para>
+
+ <para> varAttributeName is a value for <emphasis>
+ <property>"var"</property>
+ </emphasis> attribute. </para>
+
+ <para> It&s possible to define several treeNode components with equal values of <emphasis>
+ <property>"type"</property>
+ </emphasis> attribute and different values of <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attribute. It provides the possibility to define different markup for the same
+ treeNode components type. An example is placed below. </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="JAVA"><![CDATA[...
+ <h:form>
+ <rich:tree style="width:300px" value="#{library.data}" var="item" nodeFace="#{item.type}">
+ <rich:treeNode type="artist" iconLeaf="/images/tree/singer.gif" icon="/images/tree/singer.gif"
+rendered=”#{item.exist}”>
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ <rich:treeNode type="artist" iconLeaf="/images/tree/singer.gif" icon="/images/tree/singer_absent.gif"
+rendered=”#{not item.exist}”>
+ <h:outputText value="#{item.name}" />
+ </rich:treeNode>
+ …
+ </rich:tree>
+</h:form>
+...
+ ]]></programlisting>
+
+ <para> The example represents definition of two different treeNode components. The first
+ specifies the album that's available for sale, the other specifies the album that is
+ not available. The result is shown on the following screenshot: </para>
+
<figure>
- <title>Different nodes of tree</title>
+ <title> Using the <emphasis>
+ <property>"type"</property>
+ </emphasis> and the <emphasis>
+ <property>"rendered"</property>
+ </emphasis> attributes</title>
<mediaobject>
<imageobject>
- <imagedata fileref="images/tree2.gif"/>
+ <imagedata fileref="images/tree4.png"/>
</imageobject>
</mediaobject>
</figure>
- <para>Switching on nodes opening/closing (expanded/collapsed) could be implemented in three
- modes. It could be specified in the <emphasis>
+
+ <para> You can define an EL-expression for <emphasis>
+ <property>"nodeFace"</property>
+ </emphasis> attribute. See an example: </para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="JAVA"><![CDATA[nodeFace="#{data.name != 'param-value' ? 'artist' : 'album'}"
+ ]]></programlisting>
+
+ <para> Switching on treeNode could be performed in three modes. Modes could be specified with <emphasis>
<property>"switchType"</property>
</emphasis> attribute. </para>
+
<itemizedlist>
- <listitem>AJAX - request onto the server is used for switching </listitem>
- <listitem>Server - custom requests onto the server are used for switching</listitem>
- <listitem>Client - all data is uploaded onto the server, the switching is implemented with a
- client script</listitem>
+ <listitem>Ajax - Ajax submission is used for switching </listitem>
+ <listitem>Server - regular form submition request is used</listitem>
+ <listitem>Client - switching is done as a whole on a client, server iteration is
+ absent</listitem>
</itemizedlist>
- <para>Common selecting allows also to activate Ajax requests with the <emphasis>
+
+ <para>If <emphasis>
<property>"ajaxSubmitSelection"</property>
- </emphasis> attribute (true/false).</para>
- <para>To set a model saving during requests, use the <emphasis>
- <property>"preserveModel"</property>
- </emphasis>attribute with state, request (default) and none values. The attribute is used for
- cashing data between requests in a state or request. The <emphasis>
- <property>"treeDataLocator"</property>
- </emphasis> attribute defines a class providing an access to cashed data according to the ids
- saved in state/request on recovery or cashing data saving the Id on caching.</para>
+ </emphasis> attribute value set to <emphasis>
+ <property>"true"</property>
+ </emphasis> than any change in selection initiates Ajax request to server.</para>
<para> The <emphasis>
<property>"icon"</property>
@@ -204,42 +251,60 @@
<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>
+ facets contents are used as icons. By default the width of a rendered facet area is 16px. </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
<programlisting role="JAVA"><![CDATA[...
<rich:tree ....>
...
<f:facet name="icon">
- <hutputText value="A"/>
+ <h:graphicImage value="/images/tree/singer.gif "/>
</f:facet>
<f:facet name="iconCollapsed">
- <hutputText value="B"/>
- </f:facet>
+ <h:graphicImage value="/images/tree/singer.gif " />
+ </f:facet>
<f:facet name="iconExpanded">
- <hutputText value="C"/>
+ <h:graphicImage value="/images/tree/singer.gif " />
</f:facet>
<f:facet name="iconLeaf">
- <hutputText value="D"/>
+ <h:graphicImage value="/images/tree/song.gif " />
</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 tree. There is
+ possibility to use common attributes such as <emphasis>
+ <property>"ajaxSubmitSelection"</property>
+ </emphasis>, for instance. </para>
+
</section>
<section>
<title>Built-In Drag and Drop</title>
<para>The tree component functionality provides a built-in support for Drag and Drop operations.
- The main usage principles are the same as for Rich Faces Drag and Drop wrapper components.
+ The main usage principles are the same as for RichFaces DnD wrapper components.
Hence, to get additional information on the topic, read the corresponding chapters:<link
linkend="dndParam">"rich:dndParam"</link>
<link linkend="dragSupport">"rich:dragSupport"</link>
<link linkend="dragIndicator">"rich:dragIndicator"</link>
<link linkend="dropSupport">"rich:dropSupport"</link>
- <property>Tree nodes</property> could be drag or drop elements, so tree has both attributes
+ <property>Tree nodes</property> could be Drag, Drop or DnD elements, so tree has both attributes
groups.</para>
<table>
- <title>Drag attributes description</title>
+ <title>Drag attributes group</title>
<tgroup cols="2">
<thead>
<row>
@@ -261,7 +326,7 @@
</tgroup>
</table>
<table>
- <title>Drop attributes description</title>
+ <title>Drop attributes group</title>
<tgroup cols="2">
<thead>
<row>
@@ -293,9 +358,12 @@
<listitem>nodeSelectListener is called during request sending on a node selecting event (if
request sending on this event is defined)</listitem>
<listitem>dropListener processes Drop event</listitem>
+ <listitem>dragListener processes Drug event</listitem>
<listitem>changeExpandListener processes expand/collapse event of a tree node</listitem>
</itemizedlist>
- <para>Moreover, to add e.g. some JavaScript effects, client events defined on it are used:</para>
+
+ <para>Listener methods can be defined using the <link linked="treeNode">following attributes</link> or using nested tags.</para>
+ <para>Client event attributes are:</para>
<itemizedlist>
<listitem>onexpand - expands a node event</listitem>
<listitem>oncollapse - collapses a node event</listitem>
@@ -305,7 +373,15 @@
<listitem>ondragenter - drags an element appearing on a tree event</listitem>
</itemizedlist>
- <para> Also standart HTML event attributes like "onclick", "onmousedown", "onmouseover" and etc.
+ <para>They can be used to add some JavaScript effects.</para>
+
+ <para> Also standart HTML event attributes like<emphasis>
+ <property>"onclick"</property>
+ </emphasis>, <emphasis>
+ <property>"onmousedown"</property>
+ </emphasis>, <emphasis>
+ <property>"onmouseover"</property>
+ </emphasis> and etc.
could be used. Event handlers of a tree component capture events occured on any tree part. But
event handlers of treeNode capture events occured on treeNode only, except for children
events. </para>
16 years, 11 months
JBoss Rich Faces SVN: r3499 - trunk/docs/userguide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: ochikvina
Date: 2007-10-24 06:41:20 -0400 (Wed, 24 Oct 2007)
New Revision: 3499
Modified:
trunk/docs/userguide/en/src/main/resources/images/tree1.gif
trunk/docs/userguide/en/src/main/resources/images/tree2.gif
Log:
http://jira.jboss.com/jira/browse/RF-1137 - adding screenshot
Modified: trunk/docs/userguide/en/src/main/resources/images/tree1.gif
===================================================================
(Binary files differ)
Modified: trunk/docs/userguide/en/src/main/resources/images/tree2.gif
===================================================================
(Binary files differ)
16 years, 11 months
JBoss Rich Faces SVN: r3498 - trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2007-10-24 06:25:42 -0400 (Wed, 24 Oct 2007)
New Revision: 3498
Modified:
trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/ActionParamTag.java
Log:
changed type of _assignTo from String to ValueExpression
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/ActionParamTag.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/ActionParamTag.java 2007-10-24 10:13:13 UTC (rev 3497)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/ActionParamTag.java 2007-10-24 10:25:42 UTC (rev 3498)
@@ -62,7 +62,7 @@
// UIParameter attributes
// value already implemented in UIComponentTagBase
private ValueExpression _name;
- private String _assignTo;
+ private ValueExpression _assignTo;
private String _converter;
private String _noEscape;
@@ -88,9 +88,9 @@
FacesContext facesContext = FacesContext.getCurrentInstance();
Application application = facesContext.getApplication();
if (_assignTo != null) {
- if (!UIComponentTag.isValueReference(_assignTo)) throw new IllegalArgumentException(Messages.getMessage(Messages.NO_VALUE_REFERENCE_ERROR_2, _assignTo));
+ if (!UIComponentTag.isValueReference(_assignTo.getExpressionString())) throw new IllegalArgumentException(Messages.getMessage(Messages.NO_VALUE_REFERENCE_ERROR_2, _assignTo));
UIActionParameter al = (UIActionParameter)component;
- al.setAssignToBinding(application.createValueBinding(_assignTo));
+ al.setAssignToBinding(application.createValueBinding(_assignTo.getExpressionString()));
if (_converter != null)
{
Converter converter = application.createConverter(_converter);
@@ -127,7 +127,7 @@
/**
* @param property The property to set.
*/
- public void setAssignTo(String property)
+ public void setAssignTo(ValueExpression property)
{
this._assignTo = property;
}
16 years, 11 months
JBoss Rich Faces SVN: r3497 - trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-10-24 06:13:13 -0400 (Wed, 24 Oct 2007)
New Revision: 3497
Modified:
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
Log:
don't encode parameters if name == null
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-10-24 10:12:27 UTC (rev 3496)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-10-24 10:13:13 UTC (rev 3497)
@@ -26,7 +26,9 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.logging.Logger;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
@@ -72,18 +74,17 @@
UIParameter param = (UIParameter)child;
String name = param.getName();
- if (null == name) {
- throw new IllegalArgumentException(Messages.getMessage(
- Messages.UNNAMED_PARAMETER_ERROR, component.getClientId(context)));
+ if (name != null) {
+
+ Object value = param.getValue();
+ buff.append("_params[");
+ buff.append(ScriptUtils.toScript(name));
+ buff.append("] = ");
+ buff.append(ScriptUtils.toScript(value));
+ buff.append(";");
+ params.add(buff.toString());
+
}
-
- Object value = param.getValue();
- buff.append("_params[");
- buff.append(ScriptUtils.toScript(name));
- buff.append("] = ");
- buff.append(ScriptUtils.toScript(value));
- buff.append(";");
- params.add(buff.toString());
}
}
16 years, 11 months