TAG EXPANDABLE TABLE

The exapandableTable tag consists of an ice:dataTable containing common elements required to add
an expandable table to an application:

	<ice:dataTable value="#{backingBean.recordSet}"
		       columnClasses="class1, class2, class3, ... ">
	    <ice:column>
	        <ice:panelGroup>
		    <ice:commandLink actionListener="#{item.toggleSubGroupAction}">
			<ice:graphicImage value="#{item.expandContractImage}"/>
		    </ice"commandLink>
		</ice:panelGroup>
	    </ice:column>

	    <ice:column>
		<f:facet name="header">
		    <ice:outputText value="Column Name"
		</f:facet>
		<ice:panelGroup>
		    <ice:outputText value="#{item.columnData}"/>
		</ice:panelGroup>
	    </ice:column>			
	    
	    ...  


	</ice:dataTable>
	
The expandableTable tag mut be nested in a form.

ATTRIBUTES

backingBean - REQUIRED - The backingBean must contain the following methods:
	
	#{backingBean.columnNames} - Gets a list of column names to be used.  This will define
		how many columns are to be rendered.

imageDir - REQUIRED - The imageDir holds location of the images to be used by the expandable table.
        
        ex. "/xmlhttp/css/xp/css-images/"

expandImage - REQUIRED - The expandImage is the name of the expand image to be used by the expandable table.

        ex. "tree_nav_top_open_no_siblings.gif"

contractImage - REQUIRED - The contractImage is the name of the contract image to be used by the expandable table.

        ex. "tree_nav_top_close_no_siblings.gif"

spacerImage - REQUIRED - The spacerImage is the name of the spacer image to be used by the expandable table.

        ew. "tree_line_blank.gif"

The following attributes are all passed through to the ice:dataTable:

bgcolor - Defaults to an empty string.

binding - Defualts to an empty string.

border - Defaults to "0".

cellpadding - Defaults to "0".

cellspacing - Defaults to "0".

columnClasses - Defaults to "iceDatTblCol1, iceDatTbleCol2, ...".

columnWidths - Defaults to "0".

dir - Defaults to "LTR".

first - Defaults to "0".

footerClass - Defaults to "iceDatTblFtr"

frame - Defaults to "none".

headerClass - Defaults to :iceDatTbleHdr".

id - Defaults to "expandableTable".

rendered - Defaults to "true".

rowClasses - Defaults to "iceDatTblRow1, iceDatTblRow2, ... "

rows - Defaults to "0".

rules - Defaults to "none".

scrollHeight - Defaults to "0".

scrollable - Defaults to "false".

sortAscending - Defaults to an empty string.

sortColumn - Defaults to an empty string.

style - Defaults to an empty string.

styleClass - Defaults to "iceDatTbl".

summary - Defaults to an empty string.

title - Defaults to an empty string.

value - REQUIRED - Links a set of data from a backing bean, to the dataTable component.

var - Defaults to "item".

width - Defauls to an empty string.

STYLES

To add styling to the component pass through the necessary styles to the dataTable.  

The styles for the different rows and the expand/contract buttons is saved in the backing bean
and referenced through the methods rowStyleClass() and indentStyleClass().

EXAMPLE USAGE

<div xmlns="http://www.w3.org/1999/xhtml"
     xmlns:ice="http://www.icesoft.com/icefaces/component"
     xmlns:icefacelets="http://www.icesoft.com/icefaces/facelet/tag">

    <ice:form>
	<icefacelets:expandableTable backingBean="${salesRecordsManager}"
				     value="${salesRecordsManager.salesGroupRecordBeans}"
                                     cellpadding="0"
                                     width="550px"
                                     imageDir="/xmlhttp/css/xp/css-images/"
                                     expandImage="tree_nav_top_open_no_siblings.gif"
                                     contractImage="tree_nav_top_close_no_siblings.gif"
                                     spacerImage="tree_line_blank.gif"
                                     columnClasses="triangleColumn, cartNameColumn, cartQuantityColumn, cartQuantityColumn, cartPriceColumn, cartQuantityColumn"/>
    </ice:form>
</div>
