org.apache.myfaces.trinidad.component
Class UIXTreeTable

java.lang.Object
  extended by javax.faces.component.UIComponent
      extended by org.apache.myfaces.trinidad.component.UIXComponent
          extended by org.apache.myfaces.trinidad.component.UIXComponentBase
              extended by org.apache.myfaces.trinidad.component.UIXCollection
                  extended by org.apache.myfaces.trinidad.component.UIXHierarchy
                      extended by org.apache.myfaces.trinidad.component.UIXTree
                          extended by org.apache.myfaces.trinidad.component.UIXTreeTable
All Implemented Interfaces:
javax.faces.component.NamingContainer, javax.faces.component.StateHolder, CollectionComponent, RowKeyIndex
Direct Known Subclasses:
CoreTreeTable

public class UIXTreeTable
extends UIXTree

The Apache Trinidad TreeTable is used to display data that is structured in a hierarchical format. This component displays a hierarchy in a UI similar to a Trinidad Table, and is more elaborate than the Tree component. TreeTable supports displaying columns of data per element in the hierarchy. Unlike the Tree component, TreeTable only supports single rooted hierarchies. The features of the TreeTable component include mechanisms for focusing in on subtrees (within the main tree), as well as expanding and collapsing elements in the hierarchy. Like the Table, the TreeTable's children must be Trinidad Column components. Like the Tree, the TreeTable has a "nodeStamp" facet which renders the "Object Name" Column. The "Object Name" Column contains the primary identifier of an element in the hierarchy. For example, in an organization chart of employees, the "Object Name" Column might be the employee name.

Events:

Type Phases Description
org.apache.myfaces.trinidad.event.RowDisclosureEvent Apply Request Values
Invoke Application
The expansion event is generated for a table when the detail facet of a row is expanded or collapsed. For tree or a treeTable, the expansion event is generated when tree nodes are expanded or collapsed.
org.apache.myfaces.trinidad.event.SelectionEvent Apply Request Values
Invoke Application
The selection event is delivered when the table selection changes.
org.apache.myfaces.trinidad.event.FocusEvent Apply Request Values
Invoke Application
Event delivered when user clicks to focus on (or zoom into) a particular element's subtree of children. The TreeTable responds to this event by modifying the "focusPath" property appropriately. Subsequently, any registered FocusListener instances are called.
org.apache.myfaces.trinidad.event.AttributeChangeEvent Invoke Application
Apply Request Values
Event delivered to describe an attribute change. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.


Field Summary
static java.lang.String COMPONENT_FAMILY
           
static java.lang.String COMPONENT_TYPE
           
static PropertyKey RANGE_CHANGE_LISTENER_KEY
           
static PropertyKey ROOT_NODE_RENDERED_KEY
           
static PropertyKey ROWS_BY_DEPTH_KEY
           
static FacesBean.Type TYPE
           
 
Fields inherited from class org.apache.myfaces.trinidad.component.UIXTree
DISCLOSED_ROW_KEYS_KEY, FOCUS_LISTENER_KEY, FOCUS_ROW_KEY_KEY, IMMEDIATE_KEY, INITIALLY_EXPANDED_KEY, NODE_STAMP_FACET, ROW_DISCLOSURE_LISTENER_KEY, SELECTED_ROW_KEYS_KEY, SELECTION_LISTENER_KEY, VALUE_KEY, VAR_STATUS_KEY
 
Fields inherited from class org.apache.myfaces.trinidad.component.UIXCollection
VAR_KEY
 
Fields inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase
BINDING_KEY, ID_KEY, RENDERED_KEY, RENDERER_TYPE_KEY, TRANSIENT_KEY
 
Fields inherited from interface javax.faces.component.NamingContainer
SEPARATOR_CHAR
 
Constructor Summary
  UIXTreeTable()
          Construct an instance of the UIXTreeTable.
protected UIXTreeTable(java.lang.String rendererType)
          Construct an instance of the UIXTreeTable.
 
Method Summary
 void addRangeChangeListener(RangeChangeListener listener)
          Adds a RangeChangeListener.
 void broadcast(javax.faces.event.FacesEvent event)
          Delivers an event.
protected  FacesBean.Type getBeanType()
           
 java.lang.String getFamily()
           
 int getFirst()
          Gets the range start index for the current collection.
 javax.faces.el.MethodBinding getRangeChangeListener()
          Gets a method reference to a rangeChange listener that will be called when a new range is selected.
 RangeChangeListener[] getRangeChangeListeners()
          Retrieves all RangeChangeListeners
 int getRows()
          Gets the maximum number of rows to show.
 int[] getRowsByDepth()
          Gets the maximum number of records that can be displayed at one time (range size).
protected  java.util.List getStamps()
          Gets the stamps.
 boolean isRootNodeRendered()
          Gets If the root node should be rendered or not.
protected  void processFacetsAndChildren(javax.faces.context.FacesContext context, javax.faces.event.PhaseId phaseId)
          Process this component's facets and children.
 void removeRangeChangeListener(RangeChangeListener listener)
          Removes a RangeChangeListener.
protected  void restoreStampState(javax.faces.context.FacesContext context, javax.faces.component.UIComponent stamp, java.lang.Object stampState)
          Restores the state for the given stamp.
 void restoreState(javax.faces.context.FacesContext context, java.lang.Object state)
           
protected  java.lang.Object saveStampState(javax.faces.context.FacesContext context, javax.faces.component.UIComponent stamp)
          Saves the state for the given stamp.
 java.lang.Object saveState(javax.faces.context.FacesContext context)
           
 void setFirst(int index)
          Sets the range start index for the current collection.
 void setRangeChangeListener(javax.faces.el.MethodBinding rangeChangeListener)
          Sets a method reference to a rangeChange listener that will be called when a new range is selected.
 void setRootNodeRendered(boolean rootNodeRendered)
          Sets If the root node should be rendered or not.
 void setRowsByDepth(int[] rowsByDepth)
          Sets the maximum number of records that can be displayed at one time (range size).
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXTree
__encodeBegin, addFocusListener, addRowDisclosureListener, addSelectionListener, createCollectionModel, getDisclosedRowKeys, getFocusListener, getFocusListeners, getFocusRowKey, getNodeStamp, getRowDisclosureListener, getRowDisclosureListeners, getSelectedRowKeys, getSelectionListener, getSelectionListeners, getValue, getVarStatus, isImmediate, isInitiallyExpanded, queueEvent, removeFocusListener, removeRowDisclosureListener, removeSelectionListener, setDisclosedRowKeys, setFocusListener, setFocusRowKey, setImmediate, setInitiallyExpanded, setNodeStamp, setRowDisclosureListener, setSelectedRowKeys, setSelectionListener, setValue, setVarStatus
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXHierarchy
enterContainer, exitContainer, getAllAncestorContainerRowKeys, getContainerRowKey, getContainerRowKey, getDepth, getDepth, getTreeModel, isContainer, isContainerEmpty
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXCollection
clearCurrencyStringCache, createVarStatusMap, decodeChildrenImpl, encodeBegin, encodeEnd, getClientRowKey, getClientRowKeyManager, getCollectionModel, getCollectionModel, getCurrencyString, getLocalClientId, getRowCount, getRowData, getRowData, getRowIndex, getRowKey, getSortCriteria, getVar, isRowAvailable, isRowAvailable, isSortable, postRowDataChange, preRowDataChange, processComponent, processDecodes, processSaveState, resetStampState, setClientRowKey, setCurrencyString, setRowIndex, setRowKey, setSortCriteria, setVar, updateChildrenImpl, validateChildrenImpl
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase
addAttributeChange, addAttributeChangeListener, addFacesListener, broadcastToMethodBinding, createFacesBean, decode, decodeChildren, encodeAll, encodeChildren, findComponent, getAttributeChangeListener, getAttributeChangeListeners, getAttributes, getBooleanProperty, getChildCount, getChildren, getClientId, getFacesBean, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacetNames, getFacets, getFacetsAndChildren, getId, getIntProperty, getLifecycleRenderer, getParent, getProperty, getPropertyKey, getRenderer, getRendererType, getRendersChildren, getValueBinding, isRendered, isTransient, markInitialState, processRestoreState, processUpdates, processValidators, removeAttributeChangeListener, removeFacesListener, setAttributeChangeListener, setBooleanProperty, setId, setIntProperty, setParent, setProperty, setRendered, setRendererType, setTransient, setValueBinding, toString, updateChildren, validateChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.myfaces.trinidad.component.CollectionComponent
getVar
 
Methods inherited from interface org.apache.myfaces.trinidad.model.RowKeyIndex
getRowCount, getRowData, getRowData, getRowIndex, getRowKey, isRowAvailable, isRowAvailable, setRowIndex, setRowKey
 

Field Detail

TYPE

public static final FacesBean.Type TYPE

ROOT_NODE_RENDERED_KEY

public static final PropertyKey ROOT_NODE_RENDERED_KEY

ROWS_BY_DEPTH_KEY

public static final PropertyKey ROWS_BY_DEPTH_KEY

RANGE_CHANGE_LISTENER_KEY

public static final PropertyKey RANGE_CHANGE_LISTENER_KEY

COMPONENT_FAMILY

public static final java.lang.String COMPONENT_FAMILY
See Also:
Constant Field Values

COMPONENT_TYPE

public static final java.lang.String COMPONENT_TYPE
See Also:
Constant Field Values
Constructor Detail

UIXTreeTable

public UIXTreeTable()
Construct an instance of the UIXTreeTable.


UIXTreeTable

protected UIXTreeTable(java.lang.String rendererType)
Construct an instance of the UIXTreeTable.

Method Detail

getRows

public final int getRows()
Gets the maximum number of rows to show. This changes depending on the depth of the current row in the tree hierarchy. The rows per depth is obtained from getRowsByDepth().

Specified by:
getRows in interface CollectionComponent
Overrides:
getRows in class UIXHierarchy
Returns:
0 if all rows must be shown at this level.

getFirst

public final int getFirst()
Gets the range start index for the current collection. The current collection is the children of the parent of the current rowData. ie: the current collection is the collection of siblings of the current rowData.

Specified by:
getFirst in interface CollectionComponent
Overrides:
getFirst in class UIXHierarchy
Returns:
zero based index of the row that must be displayed first.
See Also:
UIXCollection.getRowData()

setFirst

public void setFirst(int index)
Sets the range start index for the current collection. The current collection is the children of the parent of the current rowData. ie: the current collection is the collection of siblings of the current rowData.

Parameters:
index - zero based index of the row that must be displayed first.
See Also:
UIXCollection.getRowData()

addRangeChangeListener

public void addRangeChangeListener(RangeChangeListener listener)
Adds a RangeChangeListener.


removeRangeChangeListener

public void removeRangeChangeListener(RangeChangeListener listener)
Removes a RangeChangeListener.


getRangeChangeListeners

public RangeChangeListener[] getRangeChangeListeners()
Retrieves all RangeChangeListeners


saveState

public java.lang.Object saveState(javax.faces.context.FacesContext context)
Specified by:
saveState in interface javax.faces.component.StateHolder
Overrides:
saveState in class UIXCollection

restoreState

public void restoreState(javax.faces.context.FacesContext context,
                         java.lang.Object state)
Specified by:
restoreState in interface javax.faces.component.StateHolder
Overrides:
restoreState in class UIXCollection

broadcast

public void broadcast(javax.faces.event.FacesEvent event)
               throws javax.faces.event.AbortProcessingException
Description copied from class: UIXTree
Delivers an event.

Overrides:
broadcast in class UIXTree
Parameters:
event - a FacesEvent
Throws:
javax.faces.event.AbortProcessingException

getStamps

protected final java.util.List getStamps()
Gets the stamps. This returns the children of this component plus the nodeStamp stamp (if any).

Overrides:
getStamps in class UIXHierarchy
Returns:
each element must be of type UIComponent.

restoreStampState

protected final void restoreStampState(javax.faces.context.FacesContext context,
                                       javax.faces.component.UIComponent stamp,
                                       java.lang.Object stampState)
Restores the state for the given stamp. This method avoids changing the state of facets on columns.

Overrides:
restoreStampState in class UIXCollection

saveStampState

protected final java.lang.Object saveStampState(javax.faces.context.FacesContext context,
                                                javax.faces.component.UIComponent stamp)
Saves the state for the given stamp. This method avoids changing the state of facets on columns.

Overrides:
saveStampState in class UIXCollection
Returns:
this object must be Serializable if client-side state saving is used.

processFacetsAndChildren

protected final void processFacetsAndChildren(javax.faces.context.FacesContext context,
                                              javax.faces.event.PhaseId phaseId)
Description copied from class: UIXCollection
Process this component's facets and children. This method should call UIXCollection.processComponent(javax.faces.context.FacesContext, javax.faces.component.UIComponent, javax.faces.event.PhaseId) as many times as necessary for each facet and child. UIXCollection.processComponent(javax.faces.context.FacesContext, javax.faces.component.UIComponent, javax.faces.event.PhaseId) may be called repeatedly for the same child if that child is being stamped.

Overrides:
processFacetsAndChildren in class UIXTree

isRootNodeRendered

public final boolean isRootNodeRendered()
Gets If the root node should be rendered or not. Defaults to true.

Returns:
the new rootNodeRendered value

setRootNodeRendered

public final void setRootNodeRendered(boolean rootNodeRendered)
Sets If the root node should be rendered or not. Defaults to true.

Parameters:
rootNodeRendered - the new rootNodeRendered value

getRowsByDepth

public final int[] getRowsByDepth()
Gets the maximum number of records that can be displayed at one time (range size). Each level of depth in the tree can have a different range size. The first number in the array sets the range size for the root collection. Each subsequent number sets the range size for the corresponding depth. The last number becomes the default for each subsequent level of depth. If a node has more children than the range size, navigation rows will be rendered above and below the child nodes.

Returns:
the new rowsByDepth value

setRowsByDepth

public final void setRowsByDepth(int[] rowsByDepth)
Sets the maximum number of records that can be displayed at one time (range size). Each level of depth in the tree can have a different range size. The first number in the array sets the range size for the root collection. Each subsequent number sets the range size for the corresponding depth. The last number becomes the default for each subsequent level of depth. If a node has more children than the range size, navigation rows will be rendered above and below the child nodes.

Parameters:
rowsByDepth - the new rowsByDepth value

getRangeChangeListener

public final javax.faces.el.MethodBinding getRangeChangeListener()
Gets a method reference to a rangeChange listener that will be called when a new range is selected.

Returns:
the new rangeChangeListener value

setRangeChangeListener

public final void setRangeChangeListener(javax.faces.el.MethodBinding rangeChangeListener)
Sets a method reference to a rangeChange listener that will be called when a new range is selected.

Parameters:
rangeChangeListener - the new rangeChangeListener value

getFamily

public java.lang.String getFamily()
Overrides:
getFamily in class UIXTree

getBeanType

protected FacesBean.Type getBeanType()
Overrides:
getBeanType in class UIXTree


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.