<section role="NotInToc" id="rich_columnGroup">
   <title>
				&lt;
				rich:columnGroup
				&gt;
				<emphasis role="since">
         <superscript> available since <emphasis role="version">3.0.0</emphasis>
         </superscript>
      </emphasis>
   </title>
   <section>
      <title>Description</title>
      <para>The component combines columns in one row to organize complex subparts of a table.</para>
      <figure>
        <title>
            <emphasis role="bold">
               <property>&lt;rich:columnGroup&gt;</property>
            </emphasis> component</title>
         <mediaobject> 
            <imageobject>
               <imagedata fileref="images/columnGroup_init.png"/>
            </imageobject>
         </mediaobject>
      </figure>
    </section>
   <section>
      <title>Key Features</title> 
      <itemizedlist>
         <listitem>
            <para>Completely skinned table columns and child elements</para>
         </listitem>
         <listitem>
            <para>Possibility to combine columns and rows inside</para>
         </listitem>
         <listitem>
            <para>Possibility to update a limited set of strings with Ajax </para>
         </listitem>
      </itemizedlist>  
   </section>
   <section>
      <title>Details of Usage</title>
      <para>The <emphasis role="bold">
            <property>&lt;rich:columnGroup&gt;</property>
         </emphasis> component combines columns set wrapping them into the <emphasis role="bold">
            <property>&lt;tr&gt;</property>
         </emphasis> element and outputting them
     into one row. Columns are combined in a group the same way as when the <emphasis>
            <property>"breakBefore"</property>
         </emphasis> attribute is used for 
     columns to add a moving to the next rows, but the first variant is clearer from a source code. Hence, the 
     following simple examples are very same.</para>

      <para>
         <emphasis role="bold">Example:</emphasis>
      </para>
     <programlisting role="XML"><![CDATA[...
<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist"> 
		<rich:column colspan="3">
				<f:facet name="header">State Flag</f:facet>
				<h:graphicImage value="#{cap.stateFlag}"/>
		</rich:column>
       <rich:columnGroup>
       			<rich:column> 
               		<h:outputText value="#{cap.state}"/>
				</rich:column>
               <rich:column >
               		<h:outputText value="#{cap.name}"/>
               </rich:column>
               <rich:column >
               		<h:outputText value="#{cap.timeZone}"/>
               </rich:column>
		</rich:columnGroup>	
</rich:dataTable>
...
]]></programlisting>
      <para>And here is a representation without a grouping:</para>

      <para>
         <emphasis role="bold">Example:</emphasis>
      </para>
      <programlisting role="XML"><![CDATA[...
<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist"> 
		<rich:column colspan="3">
       			<f:facet name="header">State Flag</f:facet>
            	<h:graphicImage value="#{cap.stateFlag}"/>
		</rich:column>
		<rich:column breakBefore="true">
				<h:outputText value="#{cap.state}"/>
		</rich:column>
		<rich:column>
       			<h:outputText value="#{cap.name}"/>
		</rich:column>
		<rich:column>
				<h:outputText value="#{cap.timeZone}"/>
		</rich:column>
</rich:dataTable>
....
]]></programlisting>
      <para>The result is:</para>
      <figure>
         <title>Generated <emphasis role="bold">
               <property>&lt;rich:columnGroup&gt;</property>
            </emphasis> component 
        with <emphasis>
               <property>"breakBefore"</property>
            </emphasis> attribute</title>
         <mediaobject> 
            <imageobject>
               <imagedata fileref="images/columnGroup2.png"/>
            </imageobject>
         </mediaobject>
      </figure>
      <para>It&apos;s also possible to use the component for output of complex headers in a table. For example, adding
     of a complex header to a facet for the whole table looks the following way:</para>

      <para>
         <emphasis role="bold">Example:</emphasis>
      </para>
   	<programlisting role="XML"><![CDATA[...
<rich:dataTable value="#{capitalsBean.capitals}" var="cap" rows="5" id="sublist"> 
		<f:facet name="header">
	        <rich:columnGroup>
	        	<rich:column rowspan="2">
	            	<h:outputText value="State Flag"/>
	            </rich:column>
	            <rich:column colspan="3">
	            	<h:outputText value="State Info"/>
	            </rich:column>
	            <rich:column breakBefore="true">
	            	<h:outputText value="State Name"/>
	            </rich:column>
	            <rich:column>
	            	<h:outputText value="State Capital"/>
	            </rich:column>
	            <rich:column>
	            	<h:outputText value="Time Zone"/>
				</rich:column>
	        </rich:columnGroup>
		</f:facet>
        <rich:column>
                <h:graphicImage value="#{cap.stateFlag}"/>
        </rich:column>
        <rich:column>
                <h:outputText value="#{cap.state}"/>
        </rich:column>
        <rich:column>
                <h:outputText value="#{cap.name}"/>
        </rich:column>
        <rich:column>
                <h:outputText value="#{cap.timeZone}"/>
        </rich:column>
</rich:dataTable>
...]]></programlisting>
      <para>The generated table on a page looks as follows:</para>
      <figure>
         <title>
            <emphasis role="bold">
               <property>&lt;rich:columnGroup&gt;</property>
            </emphasis>with complex headers</title>
         <mediaobject> 
            <imageobject>
               <imagedata fileref="images/columnGroup3.png"/>
            </imageobject>
         </mediaobject>
      </figure>     
    </section>
   <section>
      <title>Reference Data</title>
      <para>
         <ulink url="&tlddoc;rich/columnGroup.html">Table of 
							&lt;rich:columnGroup&gt; 
							 attributes</ulink>.
						</para>
      <table>
	        <title>Component Identification Parameters</title>
         <tgroup cols="2">
	           <thead>
               <row>
                  <entry>Name</entry>
                  <entry>Value</entry>
               </row>
            </thead>
            <tbody>
               <row>
                  <entry>component-type</entry>
                  <entry>org.richfaces.ColumnGroup</entry>
               </row>
               <row>
                  <entry>component-class</entry>
                  <entry>org.richfaces.component.html.HtmlColumnGroup</entry>
               </row>
               <row>
                  <entry>component-family</entry>
                  <entry>org.richfaces.ColumnGroup</entry>
               </row>
               <row>
                  <entry>renderer-type</entry>
                  <entry>org.richfaces.ColumnGroupRenderer</entry>
		             </row>
		             <row>
			               <entry>tag-class</entry>
                  <entry>org.richfaces.taglib.ColumnGroupTag</entry>
               </row>
            </tbody>
         </tgroup>
      </table>
   	<para>Custom style classes as well as skin parameters for  <emphasis role="bold">
   		<property>&lt;rich:columnGroup&gt;</property></emphasis> are the same as for the  <link linkend="dataTableRefData"><emphasis role="bold">
   			<property>&lt;rich:dataTable&gt;</property></emphasis> component.</link></para>
    <para>You can find all necessary information about style classes redefinition in 
						<link linkend="customstyles">Definition of Custom Style Classes</link> 
							section.</para>
						</section>
   <section>
        <title>Relevant Resources Links</title>
   	<para>On the
         <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columnGroup">component LiveDemo page</ulink> you can find the example of the <emphasis role="bold">
            <property>&lt;rich:columnGroup&gt;</property>
         </emphasis> usage and sources as well.</para>
        </section>
</section>
