JBoss Rich Faces SVN: r2015 - in trunk/sandbox/ui/scrollable-grid/src/main: java/org/richfaces/renderkit/html/iconimages and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-08-02 11:37:39 -0400 (Thu, 02 Aug 2007)
New Revision: 2015
Added:
trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/
trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconBasic.java
trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortAsc.java
trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortDesc.java
trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSplit.java
Modified:
trunk/sandbox/ui/scrollable-grid/src/main/resources/org/richfaces/renderkit/html/css/grid.xcss
Log:
Skin based generated images for scrollable grid added.
Added: trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconBasic.java
===================================================================
--- trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconBasic.java (rev 0)
+++ trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconBasic.java 2007-08-02 15:37:39 UTC (rev 2015)
@@ -0,0 +1,63 @@
+package org.richfaces.renderkit.html.iconimages;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.util.Date;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.resource.GifRenderer;
+import org.ajax4jsf.resource.InternetResourceBuilder;
+import org.ajax4jsf.resource.Java2Dresource;
+import org.ajax4jsf.resource.ResourceContext;
+import org.ajax4jsf.util.HtmlColor;
+import org.richfaces.skin.Skin;
+import org.richfaces.skin.SkinFactory;
+
+public abstract class ScrollableGridIconBasic extends Java2Dresource {
+
+ public ScrollableGridIconBasic() {
+ setRenderer(new GifRenderer());
+ setLastModified(new Date(InternetResourceBuilder.getInstance().getStartTime()));
+ }
+
+ public abstract Dimension calculateDimensions();
+
+ public Dimension getDimensions(FacesContext facesContext, Object data) {
+ return calculateDimensions();
+ }
+ protected Dimension getDimensions(ResourceContext resourceContext) {
+ return calculateDimensions();
+ }
+
+ protected Object getDataToStore(FacesContext context, Object data) {
+ Skin skin = SkinFactory.getInstance().getSkin(context);
+ Skin defaultSkin = SkinFactory.getInstance().getDefaultSkin(context);
+
+ Object [] stored = new Object[2];
+
+ Color col = null;
+
+ if (data!=null){
+ col = HtmlColor.decode(data.toString());
+ } else {
+ String skinParameter = "headerTextColor";
+ String headerTextColor = (String) skin.getParameter(context, skinParameter);
+ if (null == headerTextColor || "".equals(headerTextColor))
+ headerTextColor = (String) defaultSkin.getParameter(context, skinParameter);
+ col = HtmlColor.decode(headerTextColor);
+ }
+
+ stored[0] = col;
+
+ String skinParameter = "headerBackgroundColor";
+ String headerBackgroundColor = (String) skin.getParameter(context, skinParameter);
+ if (null == headerBackgroundColor || "".equals(headerBackgroundColor))
+ headerBackgroundColor = (String) defaultSkin.getParameter(context, skinParameter);
+ col = HtmlColor.decode(headerBackgroundColor);
+
+ stored[1] = col;
+
+ return stored;
+ }
+}
Added: trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortAsc.java
===================================================================
--- trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortAsc.java (rev 0)
+++ trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortAsc.java 2007-08-02 15:37:39 UTC (rev 2015)
@@ -0,0 +1,33 @@
+package org.richfaces.renderkit.html.iconimages;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.geom.GeneralPath;
+
+import org.ajax4jsf.resource.ResourceContext;
+
+public class ScrollableGridIconSortAsc extends ScrollableGridIconBasic {
+
+ public Dimension calculateDimensions() {
+ return new Dimension(13, 4);
+ }
+
+ protected void paint(ResourceContext context, Graphics2D g2d) {
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+ g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
+ GeneralPath path = new GeneralPath();
+
+ path.moveTo(1,4);
+ path.lineTo(4,0);
+ path.lineTo(8,4);
+ path.closePath();
+ Object [] data = (Object[]) restoreData(context);
+ Color col = (Color)data[0];
+
+ g2d.setColor(col);
+ g2d.fill(path);
+ }
+}
Added: trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortDesc.java
===================================================================
--- trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortDesc.java (rev 0)
+++ trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSortDesc.java 2007-08-02 15:37:39 UTC (rev 2015)
@@ -0,0 +1,33 @@
+package org.richfaces.renderkit.html.iconimages;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.geom.GeneralPath;
+
+import org.ajax4jsf.resource.ResourceContext;
+
+public class ScrollableGridIconSortDesc extends ScrollableGridIconBasic {
+
+ public Dimension calculateDimensions() {
+ return new Dimension(13, 4);
+ }
+
+ protected void paint(ResourceContext context, Graphics2D g2d) {
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+ g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
+ GeneralPath path = new GeneralPath();
+
+ path.moveTo(1,0);
+ path.lineTo(4,4);
+ path.lineTo(8,0);
+ path.closePath();
+ Object [] data = (Object[]) restoreData(context);
+ Color col = (Color)data[0];
+
+ g2d.setColor(col);
+ g2d.fill(path);
+ }
+}
Added: trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSplit.java
===================================================================
--- trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSplit.java (rev 0)
+++ trunk/sandbox/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/iconimages/ScrollableGridIconSplit.java 2007-08-02 15:37:39 UTC (rev 2015)
@@ -0,0 +1,31 @@
+package org.richfaces.renderkit.html.iconimages;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+
+import org.ajax4jsf.resource.ResourceContext;
+
+public class ScrollableGridIconSplit extends ScrollableGridIconBasic {
+
+ public Dimension calculateDimensions() {
+ return new Dimension(2, 13);
+ }
+
+ protected void paint(ResourceContext context, Graphics2D g2d) {
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
+ g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
+
+ Object [] data = (Object[]) restoreData(context);
+ Color col1 = (Color)data[0];
+ Color col2 = (Color)data[1];
+
+ g2d.setColor(col2);
+ g2d.drawLine(0, 0, 0, 12);
+ g2d.setColor(col1);
+ g2d.drawLine(1, 0, 1, 12);
+ }
+
+}
Modified: trunk/sandbox/ui/scrollable-grid/src/main/resources/org/richfaces/renderkit/html/css/grid.xcss
===================================================================
--- trunk/sandbox/ui/scrollable-grid/src/main/resources/org/richfaces/renderkit/html/css/grid.xcss 2007-08-02 15:35:04 UTC (rev 2014)
+++ trunk/sandbox/ui/scrollable-grid/src/main/resources/org/richfaces/renderkit/html/css/grid.xcss 2007-08-02 15:37:39 UTC (rev 2015)
@@ -309,17 +309,17 @@
</u:selector>
<u:selector name=".dr-sgrid-sort-asc">
<u:style name="background-image">
- <f:resource f:key="/org/richfaces/renderkit/html/images/sort_asc.gif"/>
+ <f:resource f:key="org.richfaces.renderkit.html.iconimages.ScrollableGridIconSortAsc"/>
</u:style>
</u:selector>
<u:selector name=".dr-sgrid-sort-desc">
<u:style name="background-image">
- <f:resource f:key="/org/richfaces/renderkit/html/images/sort_desc.gif"/>
+ <f:resource f:key="org.richfaces.renderkit.html.iconimages.ScrollableGridIconSortDesc"/>
</u:style>
</u:selector>
<u:selector name=".dr-sgrid-hsep">
<u:style name="background-image">
- <f:resource f:key="/org/richfaces/renderkit/html/images/grid-split.gif"/>
+ <f:resource f:key="org.richfaces.renderkit.html.iconimages.ScrollableGridIconSplit"/>
</u:style>
</u:selector>
</f:template>
16 years, 9 months
JBoss Rich Faces SVN: r2014 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: vkorluzhenko
Date: 2007-08-02 11:35:04 -0400 (Thu, 02 Aug 2007)
New Revision: 2014
Added:
trunk/docs/userguide/en/src/main/docbook/included/panelMenu.xml
Log:
http://jira.jboss.com/jira/browse/RF-445
Added: trunk/docs/userguide/en/src/main/docbook/included/panelMenu.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/panelMenu.xml (rev 0)
+++ trunk/docs/userguide/en/src/main/docbook/included/panelMenu.xml 2007-08-02 15:35:04 UTC (rev 2014)
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section>
+ <sectioninfo>
+ <keywordset>
+ <keyword>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.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 the page use the following syntax:</para>
+
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="xml">...
+ <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">...
+ org.richfaces.component.html.HtmlpanelMenu mypanelMenu = new org.richfaces.component.html.HtmlpanelMenu();
+...</programlisting>
+ </section>
+
+ <section>
+ <title>Details of Usage</title>
+
+ <para>All attributes are not required.</para>
+ <para>Use "event" 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 "mode" attribute for all
+ panelMenu items except ones where this attribute was redefined. By default all items send
+ traditional request. </para>
+ <para>The "expandMode" attribute defines the submission modes for all
+ collapsing/expanding panelMenu groups except ones where this attribute was redefined. </para>
+ <para>The "mode" and "expandMode" attributes could be used
+ with three possible parameters.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Server (default)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The common submission of the form is performed and a page is completely refreshed.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ajax</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>An Ajax form submission is performed additionally specified elements in the
+ "reRender" attribute are reRendered.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>None</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>"Action" and "ActionListener" attributes are ignored.
+ Items don't fire any submits itself. Behavior is fully defined by the components
+ nested to items. Groups expand on the client side.</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> As the <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> component doesn't provide its own form, use it between
+ <h:form> and </h:form> tags.</note>
+
+ <para>The "expandSingle" attribute is defined for expanding more than one
+ submenu on the same level. The default value is "false". 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 "expandSingle" attribute</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelMenu1.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The "selectedChild" 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>
+ </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>As this component is just a wrapper for its children its provide the only "rich-panel-menu"
+ class for wrapper div element. To redefine appearance of particular panel menus, it's possible
+ to define your own CSS class. And then just define it in the components class attribute. </para>
+
+ </section>
+
+</section>
16 years, 9 months
JBoss Rich Faces SVN: r2013 - in trunk/docs/userguide/en/src/main/docbook: included and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: vkorluzhenko
Date: 2007-08-02 11:34:27 -0400 (Thu, 02 Aug 2007)
New Revision: 2013
Modified:
trunk/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml
trunk/docs/userguide/en/src/main/docbook/master.xml
Log:
http://jira.jboss.com/jira/browse/RF-445
Modified: trunk/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml 2007-08-02 14:58:19 UTC (rev 2012)
+++ trunk/docs/userguide/en/src/main/docbook/included/panelMenu.desc.xml 2007-08-02 15:34:27 UTC (rev 2013)
@@ -1,33 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<section>
-<sectioninfo>
-<keywordset>
-<keyword>panelMenu</keyword>
-</keywordset>
-</sectioninfo>
-<section>
- <para>A collapsible vertical menu. The color scheme is based on skin parameters, but might differ
- from a skin basing on the values of the <emphasis ><property>"backgpoundType"</property></emphasis> and
- <emphasis ><property>"backgroundTypeTopLevel"</property></emphasis> attributes.
- The component can include two types of child components: panelMenuNode and PanelMenuItem.</para>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/panelmenu.gif"/>
- </imageobject>
- </mediaobject>
+ <sectioninfo>
+ <keywordset>
+ <keyword>panelMenu</keyword>
+ </keywordset>
+ </sectioninfo>
+ <section>
+ <para>The <emphasis role="bold">
+ <property><rich:panelMenu></property>
+ </emphasis> component is used to define an inline vertical menu on the page.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/panelmenu.png"/>
+ </imageobject>
+ </mediaobject>
</section>
<section>
- <title>Key Features</title>
- <itemizedlist>
- <listitem>Skinnable panel and child items </listitem>
- <listitem>3D look and feel with easily customizable depth and borders</listitem>
- <listitem>Multi-level tree-like menu based on nodes and items</listitem>
- <listitem>Template for child menu items</listitem>
- <listitem>Single/many expand options</listitem>
- <listitem>Bulleting templates including custom icons attached to any side</listitem>
- <listitem>Custom content for menu items</listitem>
- <listitem>Built-in AJAX support using
- <emphasis role="bold"><property><Ajax:PanelMenuItems></property></emphasis></listitem>
- </itemizedlist>
+ <title>Key Features</title>
+ <itemizedlist>
+ <listitem>Highly customizable look and feel</listitem>
+ <listitem>Different submission modes</listitem>
+ <listitem>Collapsing/expanding sublevels with optional request sending</listitem>
+ <listitem>Custom and predefined icons support</listitem>
+ <listitem>Disablement support</listitem>
+ </itemizedlist>
+ </section>
</section>
-</section>
\ No newline at end of file
Modified: trunk/docs/userguide/en/src/main/docbook/master.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/master.xml 2007-08-02 14:58:19 UTC (rev 2012)
+++ trunk/docs/userguide/en/src/main/docbook/master.xml 2007-08-02 15:34:27 UTC (rev 2013)
@@ -17,7 +17,7 @@
<!ENTITY dataTable_table SYSTEM "../../../target/generated/dataTable.xml">
<!ENTITY dnd_table SYSTEM "../../../target/generated/dnd.xml">
<!ENTITY gmap_table SYSTEM "../../../target/generated/gmap.xml">
-<!ENTITY virtualEarth_table SYSTEM "../../../target/generated/virtualEarth.xml">
+<!ENTITY virtualEarth_table SYSTEM "../../../target/generated/virtualEarth.xml">
<!ENTITY inputNumberSlider_table SYSTEM "../../../target/generated/inputnumber-slider.xml">
<!ENTITY inputNumberSpinner_table SYSTEM "../../../target/generated/inputnumber-spinner.xml">
<!ENTITY modalPanel_table SYSTEM "../../../target/generated/modal-panel.xml">
@@ -34,7 +34,10 @@
<!ENTITY tree_table SYSTEM "../../../target/generated/tree.xml">
<!ENTITY dropDownMenu_table SYSTEM "../../../target/generated/dropdown-menu.xml">
<!ENTITY menuComponents_table SYSTEM "../../../target/generated/menu-components.xml">
+<!ENTITY panelMenu_table SYSTEM "../../../target/generated/panelmenu.xml">
+
+
<!ENTITY rfcidesupport SYSTEM "modules/RFCidesupport.xml">
<!ENTITY rfclinks SYSTEM "modules/RFClinks.xml">
<!ENTITY rfcFAQ SYSTEM "modules/RFCfaq.xml">
@@ -69,7 +72,7 @@
<title>The RichFaces Components</title>
<para>The library encompasses ready-made components built based on the <emphasis role="italic"><property>Ajax4jsf Component Factory</property></emphasis>. To find out more about the Component Factory, go to the
<ulink url="http://www.jboss.org/projects/jbossajax4jsf">Ajax4jsf project</ulink>.</para>
-<!--
+<!--
&richfaces_table;
-->
&dataFilterSlider_table;
@@ -77,7 +80,7 @@
&dataTable_table;
&dnd_table;
&gmap_table;
-&virtualEarth_table;
+&virtualEarth_table;
&inputNumberSlider_table;
&inputNumberSpinner_table;
&modalPanel_table;
@@ -94,6 +97,7 @@
&tree_table;
&dropDownMenu_table;
&menuComponents_table;
+&panelMenu_table;
</chapter>
&rfcidesupport;
16 years, 9 months
JBoss Rich Faces SVN: r2012 - trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/css.
by richfaces-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-08-02 10:58:19 -0400 (Thu, 02 Aug 2007)
New Revision: 2012
Modified:
trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/css/tabPanel.xcss
Log:
#RF-512
Modified: trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/css/tabPanel.xcss
===================================================================
--- trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/css/tabPanel.xcss 2007-08-02 13:49:34 UTC (rev 2011)
+++ trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/css/tabPanel.xcss 2007-08-02 14:58:19 UTC (rev 2012)
@@ -156,13 +156,6 @@
<u:style name="font-family" skin="generalFamilyFont"/>
</u:selector>
- <u:selector name=".dr-tbpnl-tb-sel">
- <u:style name="background-image">
- <f:resource f:key="org.richfaces.renderkit.images.TabGradientB" />
- </u:style>
- <u:style name="color" skin="selectControlColor" />
- </u:selector>
-
<u:selector name=".dr-tbpnl-tb-dsbl">
<u:style name="background-color" skin="tabBackgroundColor" />
<u:style name="background-image">
@@ -206,4 +199,12 @@
<f:resource f:key="org.richfaces.renderkit.images.TabStripeImage"/>
</u:style>
</u:selector>
+
+ <u:selector name=".dr-tbpnl-tb-sel">
+ <u:style name="background-image">
+ <f:resource f:key="org.richfaces.renderkit.images.TabGradientB" />
+ </u:style>
+ <u:style name="border-color" skin="selectControlColor" />
+ </u:selector>
+
</f:template>
\ No newline at end of file
16 years, 9 months
JBoss Rich Faces SVN: r2011 - trunk/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: smukhina
Date: 2007-08-02 09:49:34 -0400 (Thu, 02 Aug 2007)
New Revision: 2011
Added:
trunk/docs/userguide/en/src/main/docbook/modules/a4jUGskinnability.xml
Log:
http://jira.jboss.com/jira/browse/RF-522
Guides chapters merging
Added: trunk/docs/userguide/en/src/main/docbook/modules/a4jUGskinnability.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/a4jUGskinnability.xml (rev 0)
+++ trunk/docs/userguide/en/src/main/docbook/modules/a4jUGskinnability.xml 2007-08-02 13:49:34 UTC (rev 2011)
@@ -0,0 +1,79 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<chapter id="Built-inSkinnabilityInAjax4jsf" xreflabel="Built-inSkinnabilityInAjax4jsf">
+ <?dbhtml filename="Built-inSkinnabilityInAjax4jsf.html"?>
+
+ <chapterinfo>
+ <keywordset>
+ <keyword>Skinnability</keyword>
+
+ <keyword>skins</keyword>
+
+ <keyword>custom skin</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Built-in skinnability in Ajax4jsf</title>
+ <para>Ajax4jsf gives an opportunity to incorporate <property>skinnability</property> into UI
+ design. With this framework you can easily use named skin parameters in
+ properties files to control the appearance of the skins that are applied
+ consistently to a whole set of components. You can look at examples of
+ predefined skins at:</para>
+ <simplelist>
+ <member>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/">http://livedemo.exadel.com/richfaces-demo/</ulink>
+ </member>
+ </simplelist>
+ <para>
+ You may simply control the look-and-feel of your application by using the <property>skinnability</property> service
+ of the Ajax4jsf framework. With the means of this service you can define the same style for rendering
+ standard JSF components and custom JSF components built with the help of Ajax4jsf.
+ </para>
+ <para>To find out more on <property>skinnability</property> possibilities, follow these
+ steps:</para>
+ <itemizedlist>
+ <listitem>
+ Create a custom render kit and register it in the faces-config.xml
+ like this:
+ <programlisting role="XML"><![CDATA[<render-kit>
+ <render-kit-id>NEW_SKIN</render-kit-id>
+ <render-kit-class>
+ org.ajax4jsf.framework.renderer.ChameleonRenderKitImpl
+ </render-kit-class>
+</render-kit>]]></programlisting>
+ </listitem>
+ <listitem>
+ Then you need to create and register custom renderers for the
+ component based on the look-and-feel predefined variables:
+ <programlisting role="XML"><![CDATA[<renderer>
+ <component-family>javax.faces.Command</component-family>
+ <renderer-type>javax.faces.Link</renderer-type>
+ <renderer-class>
+ newskin.HtmlCommandLinkRenderer
+ </renderer-class>
+</renderer>]]></programlisting>
+ </listitem>
+ <listitem>
+ Finally, you need to place a properties file with skin parameters
+ into the class path root. There are two requirements for the properties
+ file:
+ <itemizedlist>
+ <listitem>
+ The file must be named <emphasis role="bold"><property><skinName></property></emphasis>.skin.properties, in this case, it would be called
+ <filename>newskin.skin.properties</filename>.
+ </listitem>
+ <listitem>
+ The first line in this file should be render.kit=
+ <emphasis role="bold"><property><render-kit-id></property>,</emphasis> in this case, it would be called
+ render.kit=NEW_SKIN.
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ <para>Extra information on custom renderers creation can be found
+ at:</para>
+ <simplelist>
+ <member>
+ <ulink url="http://java.sun.com/javaee/javaserverfaces/reference/docs/index.html">http://java.sun.com/javaee/javaserverfaces/reference/docs/index.html</ulink>
+ </member>
+ </simplelist>
+</chapter>
16 years, 9 months
JBoss Rich Faces SVN: r2010 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config.
by richfaces-svn-commits@lists.jboss.org
Author: maksimkaszynski
Date: 2007-08-02 09:47:42 -0400 (Thu, 02 Aug 2007)
New Revision: 2010
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
Log:
rolled back to previous version - newer one failed build
Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-08-02 13:42:50 UTC (rev 2009)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-08-02 13:47:42 UTC (rev 2010)
@@ -381,7 +381,7 @@
// Set this config as root.
digester.push(this);
try {
- digester.parse(configFile);
+ digester.parse(configFile.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
throw new ParsingException("I/O error on parsing config file ", e);
16 years, 9 months
JBoss Rich Faces SVN: r2009 - in trunk/docs/resources: styles/en/Images and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: afedosik
Date: 2007-08-02 09:42:50 -0400 (Thu, 02 Aug 2007)
New Revision: 2009
Added:
trunk/docs/resources/styles/en/Images/
trunk/docs/resources/styles/en/Images/bg_table.gif
trunk/docs/resources/styles/en/Images/ico_important.gif
trunk/docs/resources/styles/en/Images/ico_note.gif
trunk/docs/resources/support/lib/highlight.jar
trunk/docs/resources/support/lib/java2html.jar
trunk/docs/resources/support/lib/jhighlight-1.0.jar
Modified:
trunk/docs/resources/styles/en/html.css
trunk/docs/resources/support/docbook-xsl/html/verbatim.xsl
Log:
http://jira.jboss.com/jira/browse/EXIN-388 automatic code highlighting and css added
Added: trunk/docs/resources/styles/en/Images/bg_table.gif
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/styles/en/Images/bg_table.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/resources/styles/en/Images/ico_important.gif
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/styles/en/Images/ico_important.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/resources/styles/en/Images/ico_note.gif
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/styles/en/Images/ico_note.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/docs/resources/styles/en/html.css
===================================================================
--- trunk/docs/resources/styles/en/html.css 2007-08-02 13:40:15 UTC (rev 2008)
+++ trunk/docs/resources/styles/en/html.css 2007-08-02 13:42:50 UTC (rev 2009)
@@ -1,122 +1,335 @@
- * {
- font-family: "Verdana", "Arial", "Helvetica";
- font-size: 14px;
- }
-
- A {
- color: #0000CC;
- }
-
- A:active {
- color: #0000CC;
- }
-
- A:visited {
- color: #0000CC;
- }
-
- P, OL, UL, LI, DL, DT, DD, BLOCKQUOTE {
- color: #000000;
- }
-
- TD, TH, SPAN {
- color: #000000;
- }
-
- BLOCKQUOTE {
- margin-right: 0px;
- }
-
-
- H1, H2, H3, H4, H5, H6 {
- color: #003399;
- font-weight: 500;
- margin-top: 10px;
- padding-top: 5px;
- }
-
- H1 { font-size: 150%; }
- H2 { font-size: 140%; }
- H3 { font-size: 110%; font-weight: bold; }
- H4 { font-size: 110%; font-weight: bold;}
- H5 { font-size: 100%; font-style: italic; }
- H6 { font-size: 100%; font-style: italic; }
-
- TABLE {
- border-collapse: collapse;
- border-spacing: 0;
- border: 1px dashed #CCCCCC;
- empty-cells: hide;
- width: 100%
- }
-
- TD {
- padding: 4pt;
- }
-
-
- TT {
- font-size: 90%;
- font-style: monospace;
- color: #111111;
- }
-
- PRE {
- font-size: 100%;
- padding: 5px;
- border-style: solid;
- border-width: 1px;
- border-color: #CCCCCC;
- background-color: #F4F4F4;
- }
-
- HR {
- width: 100%;
- height: 1px;
- background-color: #CCCCCC;
- border-width: 0px;
- padding: 0px;
- color: #CCCCCC;
- }
-
- .variablelist {
- padding-top: 10;
- padding-bottom: 10;
- margin: 0;
- }
-
- .itemizedlist {
- padding-top: 0;
- padding-bottom: 0;
- margin: 0;
- list-style-type: disc;
-
- }
-
- .orderedlist{
- padding-top: 0;
- padding-bottom: 0;
- margin: 0;
- }
-
- .term {
- font-weight: bold;
- }
-
- .note
- {
- padding-bottom: 5px;
- padding-left: 5px;
- padding-right: 5px;
- background-color: #FFFFCC;
- }
-
- .warning
- {
- padding-bottom: 5px;
- padding-left: 5px;
- padding-right: 5px;
- background-color: #FBDADA;
- }
-
-
+* {
+ LINE-HEIGHT: 20px; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+DIV.navheader TABLE, DIV.navheader TABLE td, DIV.navfooter TABLE, DIV.navfooter TABLE td{
+ BORDER-RIGHT: 0px; BORDER-TOP: 0px; MARGIN: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px; FONT-SIZE: 11px; padding : 0px;
+}
+A {
+ COLOR: #2a7bd4; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+A:hover {
+ COLOR: #003399; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+A:visited {
+ COLOR: #888888; FONT-FAMILY: verdana, helvetica, sans-serif
+}
+P {
+ FONT-SIZE: 12px; COLOR: #000000; margin : 5px 0px 5px 0px;
+}
+OL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+UL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+LI {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DL {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DT {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+DD {
+ FONT-SIZE: 12px; COLOR: #000000; margin-top : 5px; margin-bottom : 5px;
+}
+BLOCKQUOTE {
+ FONT-SIZE: 12px; COLOR: #000000
+}
+TD {
+ COLOR: #000000
+}
+TH {
+ COLOR: #000000
+}
+SPAN {
+ COLOR: #000000
+}
+SPAN.property {
+ COLOR: #008cca;
+}
+SPAN.italic {
+ FONT-STYLE: italic;
+}
+
+BLOCKQUOTE {
+ MARGIN-RIGHT: 0px
+}
+
+P.title {
+ MARGIN-BOTTOM: 5px;
+ MARGIN-top: 20px;
+}
+
+div.book div.chapter .title {
+ text-align: left;
+}
+
+
+div.book .title {
+ text-align: center;
+}
+
+.mediaobject{
+ padding : 5px 10px 5px 35px;
+}
+H1 {
+ MARGIN: 0px; FONT-SIZE: 22px; COLOR: #ff6600; PADDING: 45px 0px 10px 0px;
+}
+H2 {
+ MARGIN: 0px; FONT-SIZE: 18px; COLOR: #2a7bd4; PADDING: 25px 0px 10px 0px;
+}
+H3 {
+ MARGIN: 0px; FONT-SIZE: 15px; COLOR: #000000; PADDING: 20px 0px 10px 0px;
+}
+H4 {
+ MARGIN: 0px; FONT-SIZE: 12px; COLOR: #000000; PADDING: 15px 0px 10px 0px;
+}
+H5 {
+ MARGIN: 0px; FONT-SIZE: 12px; COLOR: #000000; PADDING: 15px 0px 10px 0px;
+}
+H6 {
+ MARGIN: 0px; FONT-SIZE: 11px; COLOR: #000000; PADDING: 5px 0px 0px 0px;
+}
+
+div.book div.section div.mediaobject{
+text-align:left;
+}
+
+
+div.book div.mediaobject{
+text-align:center;
+}
+
+div.mediaobject, div.mediaobject img *{
+text-align:left;
+
+}
+
+DIV.note{
+ BORDER: #CECECE 1px solid; PADDING: 3px 10px 10px 50px; line-height : 14px; MARGIN: 10px 0px 10px 0px; FONT-SIZE: 11px; WIDTH: 500px; BACKGROUND-COLOR: #FFFDD3;
+ background-image : url('Images/ico_note.gif'); background-repeat : no-repeat; background-position :top left;
+}
+
+DIV.note *{
+ line-height : 14px;
+}
+
+.note P {
+ MARGIN-TOP: 0px; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+.important P {
+ MARGIN-TOP: 0px; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
+}
+DIV.important {
+ BORDER: #CECECE 1px solid; PADDING: 3px 10px 10px 50px; line-height : 14px; MARGIN: 10px 0px 10px 0px; FONT-SIZE: 11px; WIDTH: 500px; BACKGROUND-COLOR: #CFE3FF;
+ background-image : url('Images/ico_important.gif'); background-repeat : no-repeat; background-position :top left;
+}
+
+DIV.important *{
+ line-height : 14px;
+}
+
+.important pre.XML {
+PADDING: 1px 1px 1px 10px;
+
+}
+
+
+TABLE {
+ BORDER: #cccccc 1px solid; FONT-SIZE: 11px; BORDER-COLLAPSE: collapse; border-spacing: 0; empty-cells: hide; margin-bottom : 10px;
+}
+
+table *{
+ line-height : 14px;
+}
+
+
+.table TH {
+ WHITE-SPACE: nowrap; BACKGROUND-COLOR: #EEF5FF; TEXT-ALIGN: center; BORDER-BOTTOM: #CAE1FF 2px solid; PADDING: 2px 8px 2px 8px;
+ background-image : url('Images/bg_table.gif'); background-repeat : repeat-x; background-position :top left;
+}
+TD {
+ PADDING: 4px 8px 4px 8px; BORDER-BOTTOM: #cccccc 1px dotted; BORDER-right: #cccccc 1px dotted;
+}
+P.copyright {
+ TEXT-ALIGN: center
+}
+TT {
+ FONT-SIZE: 90%; COLOR: #000000; FONT-FAMILY: "Courier New", Courier, monospace
+}
+DL {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+DT {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+DD {
+ MARGIN-BOTTOM: 6px; MARGIN-LEFT: 8px
+}
+PRE {
+ BORDER: #cccccc 1px solid; PADDING: 5px 15px 5px 25px; FONT-SIZE: 11px; BACKGROUND-COLOR: #f5f5f5;
+}
+HR {
+ BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; WIDTH: 100%; COLOR: #cccccc; PADDING-TOP: 0px; HEIGHT: 1px; BACKGROUND-COLOR: #cccccc; BORDER-RIGHT-WIDTH: 0px
+}
+.variablelist {
+ PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-TOP: 10px
+}
+.itemizedlist {
+ FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;TEXT-ALIGN: justify
+}
+.term {
+ FONT-WEIGHT: bold
+}
+PRE.JAVA {
+ LINE-HEIGHT: 0px
+}
+PRE.XML {
+ LINE-HEIGHT: 0px
+}
+PRE.JSP {
+ LINE-HEIGHT: 0px
+}
+PRE.XHTML {
+ LINE-HEIGHT: 0px
+}
+.java_type {
+ COLOR: #008cca
+}
+.java_keyword {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0)
+}
+.java_javadoc_comment {
+ COLOR: rgb(147,147,147); FONT-STYLE: italic; BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_comment {
+ COLOR: rgb(147,147,147); BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_operator {
+ COLOR: #003399
+}
+.java_plain {
+ COLOR: rgb(0,0,0)
+}
+.java_literal {
+ COLOR: #ff6600
+}
+PRE CODE {
+ FONT-SIZE: 12px; COLOR: rgb(0,0,0); FONT-FAMILY: monospace; WHITE-SPACE: nowrap
+}
+.java_javadoc_tag {
+ FONT-WEIGHT: bold; COLOR: rgb(147,147,147); FONT-STYLE: italic; BACKGROUND-COLOR: rgb(247,247,247)
+}
+.java_separator {
+ COLOR: #008cca
+}
+.xml_plain {
+ COLOR: rgb(0,0,0)
+}
+.xml_tag_name {
+ COLOR: #008cca
+}
+.xml_comment {
+ COLOR: rgb(147,147,147); BACKGROUND-COLOR: rgb(247,247,247)
+}
+.xml_tag_symbols {
+ COLOR: #008cca
+}
+.xml_rife_tag {
+ COLOR: rgb(0,0,0); BACKGROUND-COLOR: rgb(228,230,160)
+}
+.xml_attribute_value {
+ COLOR: #ff6600
+}
+.xml_attribute_name {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0)
+}
+.xml_char_data {
+ COLOR: rgb(0,0,0)
+}
+.xml_rife_name {
+ COLOR: #008cca; BACKGROUND-COLOR: rgb(228,230,160)
+}
+.xml_processing_instruction {
+ FONT-WEIGHT: bold; COLOR: rgb(0,0,0); FONT-STYLE: italic
+}
+TD.java {
+ VERTICAL-ALIGN: top; LINE-HEIGHT: 10px
+}
+TD.java-ln {
+ VERTICAL-ALIGN: top; LINE-HEIGHT: 10px
+}
+TT.java {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+TT.java-ln {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+PRE.java {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+PRE.java-ln {
+ MARGIN-BOTTOM: 0em; LINE-HEIGHT: 10px
+}
+TD.java-ln {
+ LINE-HEIGHT: 10px; TEXT-ALIGN: right
+}
+TT.java-ln {
+ COLOR: #888888; LINE-HEIGHT: 10px
+}
+PRE.java-ln {
+ COLOR: #888888; LINE-HEIGHT: 10px
+}
+SPAN.java0 {
+ FONT-SIZE: 8pt; COLOR: #ffffff; LINE-HEIGHT: 10px
+}
+SPAN.java1 {
+ FONT-SIZE: 8pt; COLOR: #808080
+}
+SPAN.java2 {
+ FONT-SIZE: 8pt; COLOR: #3f7f5f; LINE-HEIGHT: 10px
+}
+SPAN.java3 {
+ FONT-SIZE: 8pt; COLOR: #3f7f5f; LINE-HEIGHT: 10px
+}
+SPAN.java4 {
+ FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #ff6600; LINE-HEIGHT: 10px
+}
+SPAN.java5 {
+ FONT-SIZE: 8pt; COLOR: #2a00ff; LINE-HEIGHT: 10px
+}
+SPAN.java6 {
+ FONT-SIZE: 8pt; COLOR: #990000; LINE-HEIGHT: 10px
+}
+SPAN.java7 {
+ FONT-SIZE: 8pt; COLOR: #990000; LINE-HEIGHT: 10px
+}
+SPAN.java8 {
+ FONT-SIZE: 8pt; COLOR: #000000; LINE-HEIGHT: 10px
+}
+SPAN.java9 {
+ FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #ff6600; LINE-HEIGHT: 10px
+}
+SPAN.java10 {
+ FONT-SIZE: 8pt; COLOR: #000000; LINE-HEIGHT: 10px
+}
+SPAN.java11 {
+ FONT-SIZE: 8pt; COLOR: #7f9fbf; LINE-HEIGHT: 10px
+}
+SPAN.java12 {
+ FONT-SIZE: 8pt; COLOR: #7f7f9f; LINE-HEIGHT: 10px
+}
+SPAN.java13 {
+ FONT-SIZE: 8pt; COLOR: #3f3fbf; LINE-HEIGHT: 10px
+}
+SPAN.java14 {
+ FONT-SIZE: 8pt; COLOR: #3f5fbf; LINE-HEIGHT: 10px
+}
+SPAN.java15 {
+ FONT-SIZE: 8pt; COLOR: #ff6100; LINE-HEIGHT: 10px
+}
+SPAN.java16 {
+ FONT-SIZE: 8pt; COLOR: #646464; LINE-HEIGHT: 10px
+}
Modified: trunk/docs/resources/support/docbook-xsl/html/verbatim.xsl
===================================================================
--- trunk/docs/resources/support/docbook-xsl/html/verbatim.xsl 2007-08-02 13:40:15 UTC (rev 2008)
+++ trunk/docs/resources/support/docbook-xsl/html/verbatim.xsl 2007-08-02 13:42:50 UTC (rev 2009)
@@ -67,6 +67,18 @@
</xsl:choose>
</xsl:template>
+ <xsl:template match="programlisting[@role='XML']|programlisting[@role='JAVA']|programlisting[@role='XHTML']|programlisting[@role='JSP']">
+ <xsl:variable name="kidz">
+ <xsl:apply-templates></xsl:apply-templates>
+ </xsl:variable>
+ <pre class="{@role}">
+ <xsl:value-of
+ select="javahl:highlight(string($kidz), attribute::role)"
+ xmlns:javahl="java:com.exadel.docbook.colorer.HighLighter"
+ disable-output-escaping="yes"/>
+ </pre>
+ </xsl:template>
+
<xsl:template match="literallayout">
<xsl:param name="suppress-numbers" select="'0'"/>
Added: trunk/docs/resources/support/lib/highlight.jar
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/support/lib/highlight.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/resources/support/lib/java2html.jar
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/support/lib/java2html.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/resources/support/lib/jhighlight-1.0.jar
===================================================================
(Binary files differ)
Property changes on: trunk/docs/resources/support/lib/jhighlight-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 9 months
JBoss Rich Faces SVN: r2008 - in trunk/ui/panelmenu/src/main: resources/org/richfaces/renderkit/html/css and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-08-02 09:40:15 -0400 (Thu, 02 Aug 2007)
New Revision: 2008
Modified:
trunk/ui/panelmenu/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
trunk/ui/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss
Log:
dr-pmenu-top-group-div css-class fixed for top group div element
Modified: trunk/ui/panelmenu/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java
===================================================================
--- trunk/ui/panelmenu/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2007-08-02 13:30:00 UTC (rev 2007)
+++ trunk/ui/panelmenu/src/main/java/org/richfaces/renderkit/html/PanelMenuGroupRenderer.java 2007-08-02 13:40:15 UTC (rev 2008)
@@ -270,7 +270,7 @@
public String getDivClass(FacesContext context, UIComponent component) {
String result = "";
if (isTopLevel(component))
- result = "dr-pmenu-group-div";
+ result = "dr-pmenu-top-group-div";
return result;
}
Modified: trunk/ui/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss
===================================================================
--- trunk/ui/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss 2007-08-02 13:30:00 UTC (rev 2007)
+++ trunk/ui/panelmenu/src/main/resources/org/richfaces/renderkit/html/css/panelMenu.xcss 2007-08-02 13:40:15 UTC (rev 2008)
@@ -27,7 +27,7 @@
margin-top: 1px;
}
- .dr-pmenu-group-div {
+ .dr-pmenu-top-group-div {
border: 1px solid;
margin-bottom: 3px;
padding: 1px;
@@ -67,7 +67,7 @@
<u:style name="border-top-color" skin="panelBorderColor"/>
</u:selector>
- <u:selector name=".dr-pmenu-group-div" >
+ <u:selector name=".dr-pmenu-top-group-div" >
<u:style name="border-color" skin="panelBorderColor"/>
</u:selector>
16 years, 9 months
JBoss Rich Faces SVN: r2007 - in trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp: pages and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: sergeyhalipov
Date: 2007-08-02 09:30:00 -0400 (Thu, 02 Aug 2007)
New Revision: 2007
Modified:
trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/faces-config.xml
trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/web.xml
trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml
Log:
Added ability to choose skin to scrollable grid demo.
Modified: trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/faces-config.xml 2007-08-02 13:29:43 UTC (rev 2006)
+++ trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/faces-config.xml 2007-08-02 13:30:00 UTC (rev 2007)
@@ -259,7 +259,12 @@
<managed-bean-name>modelBuilder</managed-bean-name>
<managed-bean-class>org.richfaces.demo.datagrid.bean.TestGridDataModelBuilder</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
- </managed-bean>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>skinBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.SkinBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
<lifecycle>
<phase-listener>org.richfaces.demo.benchmark.PhaseDemarcationNotifier</phase-listener>
Modified: trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/web.xml 2007-08-02 13:29:43 UTC (rev 2006)
+++ trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/WEB-INF/web.xml 2007-08-02 13:30:00 UTC (rev 2007)
@@ -19,6 +19,10 @@
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.SKIN</param-name>
+ <param-value>#{skinBean.skin}</param-value>
</context-param>
<filter>
<display-name>Request Metrics</display-name>
Modified: trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml
===================================================================
--- trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml 2007-08-02 13:29:43 UTC (rev 2006)
+++ trunk/sandbox/samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml 2007-08-02 13:30:00 UTC (rev 2007)
@@ -24,7 +24,11 @@
<body>
- <f:view>
+ <f:view>
+ <h:form>
+ <h:selectOneRadio binding="#{skinBean.component}" />
+ <h:commandLink action="#{skinBean.change}" value="set skin" />
+ </h:form>
<h:form>
<sg:scrollable-grid value="#{dataModel2}"
16 years, 9 months
JBoss Rich Faces SVN: r2006 - in trunk/docs/userguide/en/src/main: resources/images and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: smukhina
Date: 2007-08-02 09:29:43 -0400 (Thu, 02 Aug 2007)
New Revision: 2006
Added:
trunk/docs/userguide/en/src/main/resources/images/newpic1.jpg
trunk/docs/userguide/en/src/main/resources/images/newpic2.jpg
trunk/docs/userguide/en/src/main/resources/images/newpic3.jpg
trunk/docs/userguide/en/src/main/resources/images/newpic4.jpg
Modified:
trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml
trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
trunk/docs/userguide/en/src/main/docbook/modules/RFCfaq.xml
trunk/docs/userguide/en/src/main/docbook/modules/RFClinks.xml
trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml
Log:
http://jira.jboss.com/jira/browse/RF-522
Guides chapters merging
Modified: trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml 2007-08-02 13:16:21 UTC (rev 2005)
+++ trunk/docs/userguide/en/src/main/docbook/modules/AUGWADParams.xml 2007-08-02 13:29:43 UTC (rev 2006)
@@ -105,6 +105,13 @@
(skin name) or a property of a org.ajax4jsf.framework.skin type.
Skin in last case, this instance is used as a current skin</entry>
</row>
+ <row>
+ <entry>org.ajax4jsf.COMPRESS_SCRIPT</entry>
+ <entry>true</entry>
+ <entry>This parameter could be used to increase the flexibility of Ajax4jsf usage. It doesn't allow A4J to reformat JavaScript files (makes it impossible to debug)
+ </entry>
+ </row>
+
</tbody>
</tgroup>
</table></para>
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2007-08-02 13:16:21 UTC (rev 2005)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCarchitectover.xml 2007-08-02 13:29:43 UTC (rev 2006)
@@ -22,12 +22,324 @@
<para>RichFaces is based on the Ajax4jsf framework, so
<property>AJAX</property> request support is performed with this
- framework. This support is explained in the Architecture Overview section of the Ajax4jsf Developers Guide found under the
- <property><ulink
- url="http://labs.jboss.com/portal/jbossajax4jsf">Ajax4jsf</ulink></property>
- project. In this section, we will focus on skinnability.</para>
+ framework.</para>
+
+<section>
+ <title>Basic concepts of the Ajax4jsf Framework</title>
+ <section id="introToBasics">
+ <?dbhtml filename="introToBasics.html"?>
+ <title>Introduction</title>
+ <para>The framework is implemented as a component library which adds AJAX capability into existing
+ pages, so you don't need to write any JavaScript code or to replace existing
+ components with new AJAX widgets. <property>Ajax4jsf</property> enables page-wide AJAX support instead of the
+ traditional component-wide support. So, you can define the event on the page that
+ invokes an AJAX request and the areas of the page that should be synchronized with the JSF
+ Component Tree after the AJAX request changes the data on the server according to the
+ events fired on the client.</para>
+ <para>Next Figure shows how it works:</para>
+ <figure>
+ <title>Request Processing flow</title>
+ </figure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/newpic1.jpg"/>
+ </imageobject>
+ </mediaobject>
+ <para><property>Ajax4jsf</property> allows to define (by means of JSF tags) different parts of a JSF page you
+ wish to update with an AJAX request and provide a few options to send AJAX requests to
+ the server. Also JSF page doesn't change from a "regular" JSF
+ page and you don't need to write any JavaScript or XMLHttpRequest objects by hands, everything is done automatically.</para>
</section>
+ <section id="ArchitectureOverview1">
+ <?dbhtml filename="ArchitectureOverview.html"?>
+ <title>Architecture Overview</title>
+ <para>Next figure lists several important elements of the <property>Ajax4jsf</property> framework</para>
+ <figure>
+ <title>Ajax4jsf component structure</title>
+ </figure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/newpic2.jpg"/>
+ </imageobject>
+ </mediaobject>
+ <formalpara>
+ <title>Ajax Filter.</title>
+ <para>To get all benefits of <property>Ajax4jsf</property>, you should register an AJAX Filter in web.xml
+ file of your application.The AJAX Filter recognizes multiple request types. The sequence diagram on Figure 3
+ shows the difference in processing of a "regular" JSF request and an AJAX request.</para>
+ </formalpara>
+ <para>In the first case the whole JSF tree will be encoded,
+ in the second one option it depends on the "size" of the AJAX region (you can define AJAX region
+ by using the <emphasis role="bold"><property><a4j:region></property></emphasis>). As you can see, in the second case the filter parses
+ the content of an AJAX response before sending it to the client side.</para>
+ <para>Have a look at the next picture to understand these two ways:</para>
+ <figure>
+ <title>Request Processing sequence diagram</title>
+ </figure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/newpic3.jpg"/>
+ </imageobject>
+ </mediaobject>
+ <para>In both cases, the information about required static or dynamic resources that your application
+ requests is registered in the ResourseBuilder class.</para>
+ <para>When a request for a resource comes (Figure 4), the AJAX filter checks the Resource Cache
+ for this resource and if it is there, the resource is sent to the client. Otherwise,
+ the filter searches for the resource among those that are registered by the
+ ResourceBuilder. If the resource is registered, the AJAX filter will send a request to the
+ ResourceBuilder to create (deliver) the resource.</para>
+ <para>Next Figure shows the ways of resource request processing.</para>
+ <figure>
+ <title>Resource request sequence diagram</title>
+ </figure>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/newpic4.jpg"/>
+ </imageobject>
+ </mediaobject>
+ <formalpara>
+ <title>AJAX Action Components</title>
+ <para>
+ There are four AJAX Action Components: AjaxCommandButton, AjaxCommandLink, AjaxPoll and AjaxSupport.
+ You can use them to send AJAX requests from the client side.
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>AJAX Containers</title>
+ <para>
+ AjaxContainer is an interface that describes an area on your JSF page that should be decoded
+ during an AJAX request. AjaxViewRoot and AjaxRegion are implementations of this interface.
+ </para>
+ </formalpara>
+ <formalpara>
+ <title>JavaScript Engine</title>
+ <para><property> Ajax4jsf</property> JavaScript Engine runs on the client-side. It knows how to update different areas
+ on your JSF page based on the information from the Ajax response. Do
+ not use this JavaScript code directly, as it is available automatically.
+ </para>
+ </formalpara>
+ </section>
+ <section id="LimitationsAndRules">
+ <?dbhtml filename="LimitationAndRules.html"?>
+ <title>Limitations and Rules</title>
+ <para>In order to create AJAX4JSF applications properly, keep the following points in mind:</para>
+ <itemizedlist>
+ <listitem>
+ The AJAX framework should not append or delete, but only replace elements on the page. For successful updates, an element with the same ID as in the response must exist on the page. If you'd like to append any code to a page, put in a placeholder for it (any empty element). For the same reason, it's recommended to place messages in the<emphasis >
+ <property>"AjaxOutput"</property>
+ </emphasis> component (as no messages is also a message).
+ </listitem>
+ <listitem>
+ Don't use <emphasis role="bold">
+ <property><f:verbatim></property>
+ </emphasis> for self-rendered containers, since this component is transient and not saved in the tree.
+ </listitem>
+ <listitem>
+ AJAX requests are made by XMLHttpRequest functions in XML format, but this XML bypasses most validations and the corrections that might be made in a browser. So, create only a strict standards-compliant code for HTML and XHTML, without skipping any required elements or attributes. Any necessary XML corrections are automatically made by the XML filter on the server, but lot's of unexpected effects can be produced by an incorrect HTML code.
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section id="HowTo...">
+ <?dbhtml filename="HowTo.html"?>
+ <title>How To...</title>
+ <section id="SendAnAJAXRequest">
+ <?dbhtml filename="SendAnAJAXRequest.html"?>
+ <title>Send an AJAX request</title>
+ <para>There are different ways to send AJAX requests from your JSF page. You may use
+ <emphasis role="bold"><property><a4j:commandButton></property></emphasis>, <emphasis role="bold">
+ <property><a4j:commandLink></property>, <emphasis role="bold"><property><a4j:poll></property></emphasis>
+ </emphasis> or <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> tags.
+ </para>
+ <para>All these tags hide the usual JavaScript activities that are required for an XMHttpRequest
+ object building and an AJAX request sending. Also, they allow you to decide which components of
+ your JSF page are to be re-rendered as a result of the AJAX response (you can list the
+ IDs of these components in the "reRender" attribute).
+ </para>
+ <para>
+ <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> and <emphasis role="bold">
+ <property><a4j:commandLink></property>
+ </emphasis> tags are used to send an AJAX
+ request on "onclick" JavaScript event.
+ </para>
+ <para>
+ <emphasis role="bold">
+ <property><a4j:poll></property>
+ </emphasis> tag is used to send an AJAX
+ request periodically using a timer.
+ </para>
+ <para>The <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> tag allows you to add AJAX functionality to standard JSF components
+ and send AJAX request onto a chosen JavaScript event: "onkeyup", "onmouseover",
+ etc.
+ </para>
+ <para>Most important attributes of components that provide AJAX request calling features are:</para>
+ <itemizedlist>
+ <listitem>
+ <emphasis >
+ <property>"reRender"</property>
+ </emphasis>attribute as it was mentioned <link linkend="SendAnAJAXRequest">before</link> specifies components to be reRendered
+ after AJAX response. The attribute can be specified using EL expression and formed dynamicaly on the
+ server side (see <ulink url="index.html#FAQ">FAQ chapter</ulink>).
+ </listitem>
+ <listitem>
+ <emphasis >
+ <property>"RequestDelay"</property>
+ </emphasis> attribute is used for a requests frequency regulation.
+ </listitem>
+ </itemizedlist>
+ <programlisting role="XML"><![CDATA[<h:inputText size="50" value="#{bean.text}">
+ <a4j:support event="onkeyup" RequestDelay="3"/>
+</h:inputText>]]></programlisting>
+ <para>So every next request from the frequent keyboard events will be delayed
+ on 3 ms to reduce the number of requests.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <emphasis >
+ <property>"EventsQueue"</property>
+ </emphasis> is a queue that stores the next request.
+ </listitem>
+ <listitem>
+ <emphasis >
+ <property>"LimitToList"</property>
+ </emphasis> attribute is used to regulate updatable regions. Setting
+ it to true limits the updatable areas only to ones specified in a
+ reRender list, in other case all Output Panels of the region are updated.
+ </listitem>
+ <listitem> <emphasis >
+ <property>"ajaxSingle"</property>
+ </emphasis> attributes specify regions to be sent with a request,
+ if "false" it is a full region, in other case it's is only a control caused
+ event.
+</listitem>
+ </itemizedlist>
+ </section>
+ <section id="DecideWhatToSend">
+ <?dbhtml filename="DecideWhatToSend.html"?>
+ <title>Decide What to Send</title>
+ <para>You may describe a region on the page you wish to send to the server, in this way you can
+ control what part of the JSF View is decoded on the server side when you send an
+ AJAX request.
+ </para>
+ <para>The easiest way to describe an AJAX region on your JSF page is to do nothing,
+ because the content between the <emphasis role="bold">
+ <property><f:view></property>
+ </emphasis> and <emphasis role="bold">
+ <property></f:view></property>
+ </emphasis> tags is considered
+ the default AJAX region.
+ </para>
+ <para>You may define multiple AJAX regions on the JSF page (they can even be nested) by using
+ the <emphasis role="bold">
+ <property><a4j:region></property>
+ </emphasis> tag.
+ </para>
+ <para>If you wish to render the content of an AJAX response outside of the active region then
+ the value of the "renderRegionOnly" attribute should be set to "false". Otherwise, your
+ AJAX updates are limited to elements of the active region.
+ </para>
+ </section>
+ <section id="DecideWhatToChange">
+ <?dbhtml filename="DecideWhatToChange.html"?>
+ <title>Decide What to Change</title>
+ <para>Using IDs in the "reRender" attribute to define "AJAX zones" for update works fine in
+ many cases.
+ </para>
+ <para>But you can not use this approach if your page contains, e.g. a <emphasis role="bold"><property><f:verbatim></property></emphasis>
+ tag and you wish to update its content on an AJAX response.
+ </para>
+ <para>The problem with the <emphasis role="bold">
+ <property><f:verbatim/></property>
+ </emphasis> tag as described above is related to the
+ value of the transientFlag of JSF components. If the value of this flag is true, the
+ component must not participate in state saving or restoring of process.
+ </para>
+ <para>In order to provide a solution to this kind of problems, Ajax4jsf uses the concept of
+ an output panel that is defined by the <emphasis role="bold">
+ <property><a4j:outputPanel></property>
+ </emphasis> tag. If you put a <emphasis role="bold"><property><f:verbatim></property></emphasis>
+ tag inside of the output panel, then the content of the <emphasis role="bold">
+ <property><f:verbatim/></property>
+ </emphasis> tag and content of
+ other panel's child tags could be updated on AJAX response. There are two ways to
+ control this:
+ <itemizedlist>
+ <listitem>
+ By setting the "ajaxRendered" attribute value to "true".
+</listitem>
+ <listitem>
+ By setting the "reRender" attribute value of an Action Component to the output panel ID.
+</listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ </section>
+ <section id="RequestErrorsAndSessionExpirationHandling">
+ <?dbhtml filename="RequestErrorsAndSessionExpirationHandling.html"?>
+ <title>Request Errors and Session Expiration Handling</title>
+ <para>Ajax4jsf allows to redefine standard handlers responsible for processing of different exceptional situations. It helps to define own JavaScript, which is executed when this situations occur.</para>
+ <section id="RequestErrorsHandling">
+ <?dbhtml filename="RequestErrorsHandling.html"?>
+ <title>Request Errors Handling</title>
+ <para>To execute your own code on the client in case of an error during AJAX request, it's necessary to redefine the standard "A4J.AJAX.onError " method:</para>
+ <programlisting role="JAVA"><![CDATA[A4J.AJAX.onError = function(req,status,message) {
+ // Custom Developer Code
+};]]></programlisting>
+ <para>The function defined this way accepts as parameters:</para>
+ <itemizedlist>
+ <listitem>req - a params string of a request that calls an error</listitem>
+ <listitem>status - the number of an error returned by the server</listitem>
+ <listitem>message - a default message for the given error</listitem>
+ </itemizedlist>
+ <para>Thus, it's possible to create your own handler that is called on timeouts, inner server errors, and etc.</para>
+ </section>
+ <section id="SessionExpiredHandling">
+ <?dbhtml filename="SessionExpiredHandling.html"?>
+ <title>Session Expired Handling</title>
+ <para>Beginning with Ajax4jsf version 1.0.5 it's possible to redefine also the <emphasis >
+ <property>"onExpired"</property>
+ </emphasis> framework method that is called on the <emphasis >
+ <property>"Session Expiration"</property>
+ </emphasis> event.</para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="JAVA"><![CDATA[A4J.AJAX.onExpired = function(loc,expiredMsg){
+ // Custom Developer Code
+};
+]]></programlisting>
+
+<para>Here the function receives in params:</para>
+ <itemizedlist>
+ <listitem>loc - URL of the current page (on demand can be updated) </listitem>
+ <listitem>expiredMsg - a default message on <emphasis >
+ <property>"Session Expiration"</property>
+ </emphasis>event.</listitem>
+ </itemizedlist>
+<note>
+<title>Note:</title>
+Until the version 1.0.5 the method can't be redefined on <emphasis >
+ <property>"Session Expiration"</property>,
+ </emphasis> a confirmation dialog with a request for view reloading was always called.
+</note>
+ </section>
+</section>
+<section id="OtherRelevantResources">
+ <title>Other Relevant Resources</title>
+ <para><ulink url="http://jsf.javabeat.net/articles/2007/06/introduction-to-ajax4jsf/">Introduction to Ajax4Jsf</ulink> by Shunmuga Raja</para>
+
+</section>
+
+</section>
+
+ </section>
+
<section id="Skinnability">
<?dbhtml filename="Skinnability.html"?>
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCfaq.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCfaq.xml 2007-08-02 13:16:21 UTC (rev 2005)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCfaq.xml 2007-08-02 13:29:43 UTC (rev 2006)
@@ -318,8 +318,8 @@
<h:outputText value="RichFaces Home Page"></h:outputText>
</h:outputLink>
</rich: treeNode>
- …
-</rich:tree …>
+ ...
+</rich:tree ...>
...
]]></programlisting>
</section>
@@ -510,4 +510,419 @@
</section>
+ <section id="DecidingWhatToChangeOnTheServerSide">
+ <?dbhtml filename="DecidingWhatToChangeOnTheServerSide.html"?>
+ <title>What should I change on the server side?</title>
+ <para> As it was mentioned <ulink url="index.html#DecideWhatToChange">before</ulink>, the
+ list of zones to be reRendered can be specified as EL expression. But there is a
+ question that must be specified more exactly. </para>
+ <para> The list of Ids is formed during beforePhase of RENDER_RESPONSE. Therefore, in this
+ case one can point reRender to the Set type Bean's property and fill the Set
+ during a tracking request. </para>
+ <para> It's the way to form a list of updatable areas dynamically. </para>
+ </section>
+ <section id="CheckSendingRequestConditions.CustomJavaScriptBeforeRequest.OnSubmitAttribute">
+ <?dbhtml filename="CheckSendingRequestConditions.CustomJavaScriptBeforeRequest.OnSubmitAttribute.html"?>
+
+ <title>How to check sending request conditions? Custom JavaScript before request
+ "OnSubmit" attribute.</title>
+ <para> To check on the client some terms of request sending, the <emphasis >
+ <property>"onSubmit</property>
+ </emphasis>" attribute is added to all components, which may cause the request. </para>
+ <para>
+ <emphasis role="bold">Example: </emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<h:inputText id="i" value="#{beanText.kennung}">
+ <a4j:support event="onfocus" onsubmit="doSomething();" reRender="panelToReRender"/>
+</h:inputText>]]></programlisting>
+ <para> So in this case "<emphasis
+ ><property>doSomething()</property>"</emphasis> function is executed before
+ the AJAX request. </para>
+ <para> Besides, if this function returns "false", AJAX request
+ isn't fired. </para>
+ <note>
+ <title>Note:</title>
+ <para>Behavior of our <emphasis >
+ <property>"onsubmit"</property>
+ </emphasis>slightly differs from the standard one. Do not return <emphasis
+ >
+ <property>"true"</property>
+ </emphasis> if you want to fire the request - because <emphasis role="bold">
+ <property><xxx><a4j:support
+ event="onclick" onsubmit="return
+ true;"></property>
+ </emphasis> is transformed into <xxx onclick="return true;
+ A4J.Submit(.... );" > and the request isn't fired also in
+ this case (but the standard event processing fired). You must only return <emphasis
+ >
+ <property>"false"</property>
+ </emphasis> if your conditions weren't completed or perform some actions
+ (if needed) without any returns in case you need to fire it. </para>
+ </note>
+ </section>
+ <section id="onCompleteAttribute.DifferencesAfterRelease1.0">
+ <?dbhtml filename="onCompleteAttribute.DifferencesAfterRelease1.0.html"?>
+ <title> What is differences of "onCompelete" attribute after release 1.0?</title>
+ <para> To avoid differences with other JavaScript attributes, a function placement in a
+ JavaScript call is changed, instead of simple inserting of attribute content
+ (..oncomplete :anotherFunction(this)..), it places (oncomplete:
+ function(){anotherFunction(this);}..) in anonymous function, to allow put
+ "chain" of statements in attribute. </para>
+ <para> Since, <emphasis >
+ <property>"this"</property>
+ </emphasis> keyword will point to a parameters map instead of a control element as it
+ was before. You may use <emphasis >
+ <property>document.findElementById()</property>
+ </emphasis>to get references to this object after a request is processed as when a page
+ is updated in AJAX you will have reference to a control, removed from a DOM tree. </para>
+ <para> Or, if you are sure that your element is not updated, you can add <emphasis
+ >
+ <property>"onsubmit"</property>
+ </emphasis> in <emphasis role="bold">
+ <property><a4j:support></property>
+ </emphasis> (or onclick in <emphasis role="bold">
+ <property><a4j:commandLink/Button></property>
+ </emphasis>) to place reference to known variable (<emphasis role="bold">
+ <property><a4j:commandLink onclick="var myControl=this;"
+ oncomplete="anotherFunction(myControl)"/></property>
+ </emphasis>). </para>
+ <important>
+ <title>New:</title>
+ <para> The onComplete syntax now is: </para>
+ <programlisting role="XML">
+ <![CDATA[<someAjaxActionComponent ...oncomplete="myFunc(req,event,data)".../>]]>
+ </programlisting>
+ <para> where the <property>event</property> is a variable where the JS event copy that
+ fires the request is placed into. One may use it to get the element instead of this.
+ and <property>data</property> is a variable that contains deserialized value from
+ the <property>data</property> attribute. </para>
+ </important>
+ </section>
+ <section id="InvokeOnComponentUsingWithJSF1.2">
+ <?dbhtml filename="InvokeOnComponentUsingWithJSF1.2.html"?>
+ <title>Is it possible to use InvokeOnComponent with JSF 1.2?</title>
+ <para> Ajax4jsf currently does not use <emphasis >invokeOnComponent</emphasis>
+ because of the 2 reasons: </para>
+ <itemizedlist>
+ <listitem> Compatibility with JSF 1.1 and MyFaces applications is kept, due to a big
+ amount of code used in corporate applications. </listitem>
+ <listitem>
+ <emphasis > InvokeOnComponent</emphasis> works with already known
+ clientId, and works fine for communication between widget and backed component, or
+ updates content of already rendered component. But there are some troubles to use
+ this method for more complex use-cases implemented in Ajax4jsf, as there is a choice
+ for updatable components in application logic, where it's necessary to
+ navigate in a components tree by the native id, with
+ <property>findComponent()</property> methods. </listitem>
+ </itemizedlist>
+ <para> Thus, for example, only entire dataTable can be updated in response (but all AJAX
+ action components inside table work properly). </para>
+ </section>
+ <!--<section id="RegionsInDataTables">
+ <?dbhtml filename="RegionsInDataTables.html"?>
+ <title>Regions in Data Tables</title>
+ <para>The regions in Data Tables aren't supported now, but the feature will be implemented in a new Ajax4jsf version for JSF 1.2.</para>
+ </section>-->
+ <section id="keepAliveComponentGeneratesException">
+ <?dbhtml filename="keepAliveComponentGeneratesException.html"?>
+ <title>How to avoid generating exception for "keepAlive" component?</title>
+ <para>To avoid exception, don't forget that the component stores beans in
+ serialized view, but your bean should implement java.io.Serializable.</para>
+ </section>
+ <section id="FilterUsageDamagesAnApplicationLayout">
+ <?dbhtml filename="FilterUsageDamagesAnApplicationLayout.html"?>
+ <title>Why does filter usage damage an application layout?</title>
+ <para>Ajax4jsf uses <property>filters</property> for correction of xhtml code received on an
+ AJAX response, because when a response is recieved from the server, Ajax4jsf makes
+ direct changes in DOM tree and browser doesn't make any corrections in
+ generated xhtml. There are two ways for setting <property>filters</property> that could
+ be used in an Ajax4jsf-based application.</para>
+ <para> The first one:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<context-param filter>
+ <display-name>Ajax4jsf Filter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+</filter>]]></programlisting>
+ <para>This <property>filter</property> is based on Tidy Filter usage and recommended for
+ applications with complicated or non-standard markup, as all the necessary xhtml code
+ corrections are made by the filter when a response comes from the server.</para>
+ <para> Anyway, some obvious errors could damage a layout, if it happens, make sure that the
+ markup corresponds to the xhtml-strict specification. </para>
+ <para>The second one:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<filter>
+ <display-name>org.ajax4jsf.FastFilter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.FastFilter</filter-class>
+</filter>]]></programlisting>
+ <para>This <property>filter</property> is based on the Nekko pacer. In this case an output
+ xhtml code isn't strictly verified and it also could cause lot's of
+ errors and corrupt a layout as a result. Though if you sure that your application markup
+ is really strict for this filter, the filter considerably accelerates all AJAX requests
+ processing. </para>
+ <para><emphasis role="bold">Extra information</emphasis>. </para>
+ <para>forceParcer parameters setting for <property>filters</property>:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<filter>
+...
+<init-param>
+<param-name>forceparser</param-name>
+<param-value>false</param-value>
+</init-param>
+...
+</filter>]]></programlisting>
+ <para>The "false" setting for initialization parameter switches off
+ application of filters for non-AJAX requests, if "true" is chosen, the
+ filter checks all requests. <important>
+ <title>Changes for Ajax4jsf 1.1.0</title>
+ <property>forceparser parameter</property> default value is false from this version.
+ </important>
+ </para>
+ </section>
+ <section id="AFormIsNotSubmittedOrASetterIsNotCalledAfterAJAXrequest">
+ <?dbhtml filename="AFormIsNotSubmittedOrASetterIsNotCalledAfterAJAXrequest.html"?>
+ <title>Why form isn't submitted or setter isn't called after AJAX request?</title>
+ <para>This situation could happen because of conversion/validation errors on form
+ submission. In order to verify this, it's necessary to place this updating via
+ an AJAX error message inside a form:</para>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+ <programlisting role="XML"><![CDATA[<a4j:outputPanel ajaxRendered="true">
+ <h:messages/>
+</a4j:outpurPanel>]]></programlisting>
+ </section>
+
+ <section id="DelayedRenderZone">
+ <?dbhtml filename="DelayedRenderZone.html"?>
+ <title>How to create "a4j delayed render zone"?</title>
+ <para>The <emphasis role="bold"><a4j:support></emphasis> component has a
+ "requestDelay" attribute where you can define the delay.</para>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104969"
+ >Ajax4Jsf Users Forum.</ulink>
+ </para>
+ </section>
+
+
+ <section id="HowToStopPoll">
+ <?dbhtml filename="HowToStopPoll.html"?>
+ <title>How to stop "a4j:poll"?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104951"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+
+ <section id="IgnoreDupResponsesAndRequestDelay">
+ <?dbhtml filename="IgnoreDupResponsesAndRequestDelay.html"?>
+
+ <title>How to use IgnoreDupResponses and requestDelay?</title>
+ <para>The <emphasis >
+ <property>"IgnoreDupResponses"</property>
+ </emphasis> attribute appeared from 1.0.4 RC1 version and is used on the client for
+ response ignoring after an AJAX request if a newer request has been already sent. <para>
+ The additional information could be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105766"
+ >here</ulink>. </para>
+ <emphasis >
+ <property>"RequestDelay"</property>
+ </emphasis> attribute also defines the client behavior. It sets the time delay, after
+ which another request could be sent, all other requests are taken away from a queue
+ except the last one. </para>
+ </section>
+
+
+ <section id="RefreshImage">
+ <?dbhtml filename="RefreshImage.html"?>
+ <title>How to refresh an image using <a4j:support> component?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105995"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+
+
+ <section id="EventQueueUsage">
+ <?dbhtml filename="EventQueueUsage.html"?>
+ <title>How to use "EventQueue" attribute?</title>
+ <para>The <emphasis >
+ <property>"EventQueue"</property>
+ </emphasis> attribute defines the query name where the requests are saved before their
+ sending to the server. The queue is created for redundant requests deleting during
+ frequent events, which call several requests forming one after another. The queue cuts
+ redundant requests and send only the last one. The queue is created in any case and
+ named on default, the attribute usage only re-defines this name. </para>
+ </section>
+
+ <section id="PageRequiredOrNot">
+ <?dbhtml filename="PageRequiredOrNot.html"?>
+ <title>Is <a4j:page> component required or not?</title>
+ <para>
+ <emphasis role="bold"><4j:page></emphasis> is a component used for solving
+ of incompatibility problems in early Ajax4jsf and MyFaces versions. The component
+ encodes the full html page structure. </para>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=106849&p..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="SeveralStatusOnPage">
+ <?dbhtml filename="SeveralStatusOnPage.html"?>
+ <title>Can I have several <a4j:status> components on one page?</title>
+ <para>Yes, you can. More information about this problem could be found on the <ulink
+ url="http://livedemo.exadel.com/a4j-status/">JBoss Ajax4jsf Online Demos</ulink>.
+ </para>
+ </section>
+
+ <section id="SomeProblemsWithRendering">
+ <?dbhtml filename="SomeProblemsWithRendering.html"?>
+ <title>Can I use <a4j:region> within <a4j:repeat>?</title>
+ <para>
+ <emphasis role="bold"><a4j:region></emphasis> can't work inside
+ iteration components like <emphasis role="bold"><h:dataTable></emphasis>
+ and <emphasis role="bold"><a4j:repeat></emphasis>. </para>
+ <para>The details could be found <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=109080"
+ >here. </ulink>
+ </para>
+ </section>
+
+ <section id="RerenderingPartPage">
+ <?dbhtml filename="RerenderingPartPage.html"?>
+ <title>How to reRender only particular row(s) of dataTable?</title>
+ <para> If you use dataTable then you may use ajaxKeys attribute to bind the rowKeys to be
+ reRendered there. After you need to point reRender on the whole table and only specified
+ rows will be reRedered. Also the example of usage of <emphasis role="bold"
+ ><a4j:repeat></emphasis> component are available <ulink
+ url="http://livedemo.exadel.com/a4j-repeat/">here</ulink>.</para>
+ </section>
+
+
+ <section id="CustomAjaxRequest">
+ <?dbhtml filename="CustomAjaxRequest.html"?>
+ <title>Why custom AJAX request does not work?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&t=114025"
+ >Ajax4Jsf Users Forum.</ulink>
+ </para>
+ </section>
+
+
+ <section id="RerederingSingleDataTableColumn">
+ <?dbhtml filename="RerederingSingleDataTableColumn.html"?>
+ <title>How to reRender single dataTable column?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=105725"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="DisableSkins">
+ <?dbhtml filename="DisableSkins.html"?>
+ <title>How to disable skinability?</title>
+ There is possibility to use special skin with name "plain". It doesn't have any parameters.
+ It's necessary for embedding RichFaces components into existing projecst which have its own styles.
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4066340#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="reRenderingfailed">
+ <?dbhtml filename="reRenderingfailed.html"?>
+ <title>Why does reRendering fail? Hide/Show components using rendered.</title>
+ <para> During "show/hide" functionality implementation the main error
+ happens because of the "reRender" attribute of some AJAX Action
+ Component is set on a component that depends on rendered properties, i.e. a component
+ that is to be hidden/rendered is tried to be updated. The problem is that if
+ rendered="false" in this moment, the component isn't in the
+ DOM tree and can't be updated because of the general limitations described in
+ the Ajax Processing chapter. </para>
+ <para>The correct variant of functionality implantation:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>With the rendered attribute wrap the component that is to be hidden or
+ rendered on AJAX in a wrapper component (e.g. a4j:outputPanel)</para>
+ </listitem>
+
+ <listitem>
+ <para>Set reRender of an AJAX Action component on this wrapper component instead of
+ the component itself.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
+
+ <programlisting role="XML"><![CDATA[...
+<a4j:outputPanel id="panel">
+ <h:panelGroup rendered="#{bean.rendered}">
+ <!--Some nested content to be hidden/shown depending on bean.rendered -->
+ </h:panelGroup>
+</a4j:outputPanel>
+...
+<a4j:commandButton action=".." value=".." reRender="panel"/>
+...
+]]></programlisting>
+
+ <para>In this case the wrapper component always presents in the DOM tree and its inner
+ content could be updated dynamically on AJAX.</para>
+ </section>
+
+ <section id="PreventDupRerenderingPoll">
+ <?dbhtml filename="PreventDupRerenderingPoll.html"?>
+ <title>How to prevent duplicate reRendering when using <a4j:poll>?</title>
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4059731#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="JSCallPropblemsInInclude">
+ <?dbhtml filename="JSCallPropblemsInInclude.html"?>
+ <title>Why does JavaScript call don't work in <a4j:include>?</title>
+ <para>More information about this problem could be found on the <ulink
+ url="http://jboss.com/index.html?module=bb&op=viewtopic&t=104317"
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="IncludeAndNavRules">
+ <?dbhtml filename="IncludeAndNavRules.html"?>
+ <title>How to use <a4j:include> and navigation rules?</title>
+ <para>For information you can see discussion about this problem on the <ulink
+ url="http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4062036#..."
+ >Ajax4Jsf Users Forum. </ulink>
+ </para>
+ </section>
+
+ <section id="ResourceNotRegisteredException">
+ <?dbhtml filename="ResourceNotRegisteredException.html"?>
+ <title>What does ResourceNotRegistered Exception mean?</title>
+
+ <para>Ajax4jsf registers its resources (scripts, images) after an application is accessed
+ and then accesses it via a generated URL. During an application development when a
+ developer constantly updates it on the server, it could happen that Ajax4jsf
+ re-registers its resources after every server restart and a browser tries to access them
+ via cashed URL.</para>
+
+ <para>The problem is solved with browser cash update (e.g. CTRL+F5).</para>
+ </section>
</chapter>
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFClinks.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFClinks.xml 2007-08-02 13:16:21 UTC (rev 2005)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFClinks.xml 2007-08-02 13:29:43 UTC (rev 2006)
@@ -36,6 +36,13 @@
<para><ulink url="http://labs.jboss.com/wiki/RichFaces">Rich Faces Wiki</ulink></para>
</entry>
</row>
+ <row>
+ <entry>Ajax4Jsf Wiki</entry>
+ <entry>
+ <para><ulink url="http://labs.jboss.com/wiki/Ajax4jsf">Ajax4Jsf Wiki</ulink></para>
+ </entry>
+ </row>
+
<row>
<entry>Ajax4jsf/Rich Faces Blog</entry>
<entry>
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml 2007-08-02 13:16:21 UTC (rev 2005)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml 2007-08-02 13:29:43 UTC (rev 2006)
@@ -52,7 +52,7 @@
to be compatible with the widest possible variety of environments.</para>
<para>This is what you need to start working with
- <property>RichFaces</property>:</para>
+ <property>RichFaces 3.1</property>:</para>
<itemizedlist>
<listitem>Java</listitem>
Added: trunk/docs/userguide/en/src/main/resources/images/newpic1.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/newpic1.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/userguide/en/src/main/resources/images/newpic2.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/newpic2.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/userguide/en/src/main/resources/images/newpic3.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/newpic3.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/docs/userguide/en/src/main/resources/images/newpic4.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/newpic4.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 9 months