org.richfaces.model
Class AbstractTreeDataModel

java.lang.Object
  extended by javax.faces.model.DataModel
      extended by org.ajax4jsf.model.ExtendedDataModel
          extended by org.richfaces.model.AbstractTreeDataModel
Direct Known Subclasses:
StackingTreeModel, TreeDataModel

public abstract class AbstractTreeDataModel
extends ExtendedDataModel

Base class for all tree data models

Author:
Nick Belaevski - nbelaevski@exadel.com created 07.12.2006

Field Summary
static char SEPARATOR
           
 
Constructor Summary
AbstractTreeDataModel()
           
 
Method Summary
 void addNode(java.lang.Object parentRowKey, java.lang.Object newNode, java.lang.Object id)
           
 void addNode(java.lang.Object parentRowKey, TreeNode newNode, java.lang.Object id)
           
abstract  java.lang.Object convertToKey(javax.faces.context.FacesContext context, java.lang.String keyString, javax.faces.component.UIComponent component, javax.faces.convert.Converter converter)
           
 java.lang.Object getChildNodeId(java.lang.Object childNode)
          Get node local id in it's parent childs collection
 TreeNode getModelTreeNode()
          Get model node recursively with all sub nodes.
 java.lang.Object getParentRowKey(java.lang.Object key)
           
 int getRowCount()
           
 int getRowIndex()
           
abstract  TreeNode getTreeNode()
          Get current tree node.
 java.lang.Object getTreeNodeRowKey(java.lang.Object node)
          Get row key for certain tree node object
abstract  boolean isLeaf()
          returns whether this node is leaf
protected  void processElement(javax.faces.context.FacesContext context, DataVisitor dataVisitor, java.lang.Object argument, TreeRowKey treeRowKey, boolean last)
          Processes concrete tree node.
 void removeNode(java.lang.Object rowKey)
           
 void setRowIndex(int rowIndex)
           
 void walk(javax.faces.context.FacesContext context, DataVisitor dataVisitor, Range range, java.lang.Object argument)
          Iterate over model by "visitor" pattern, for given range
abstract  void walk(javax.faces.context.FacesContext context, DataVisitor dataVisitor, Range range, java.lang.Object rowKey, java.lang.Object argument, boolean last)
          walk sub-model having row key argument as its root
abstract  void walkModel(javax.faces.context.FacesContext facesContext, DataVisitor visitor, Range range, java.lang.Object key, java.lang.Object argument, boolean last)
          Walk backing sub-model having row key argument as its root.
 
Methods inherited from class org.ajax4jsf.model.ExtendedDataModel
getRowKey, getSerializableModel, setRowKey
 
Methods inherited from class javax.faces.model.DataModel
addDataModelListener, getDataModelListeners, getRowData, getWrappedData, isRowAvailable, removeDataModelListener, setWrappedData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SEPARATOR

public static final char SEPARATOR
See Also:
Constant Field Values
Constructor Detail

AbstractTreeDataModel

public AbstractTreeDataModel()
Method Detail

getRowCount

public final int getRowCount()
Specified by:
getRowCount in class javax.faces.model.DataModel

getRowIndex

public final int getRowIndex()
Specified by:
getRowIndex in class javax.faces.model.DataModel

setRowIndex

public final void setRowIndex(int rowIndex)
Specified by:
setRowIndex in class javax.faces.model.DataModel

walk

public final void walk(javax.faces.context.FacesContext context,
                       DataVisitor dataVisitor,
                       Range range,
                       java.lang.Object argument)
                throws java.io.IOException
Description copied from class: ExtendedDataModel
Iterate over model by "visitor" pattern, for given range

Specified by:
walk in class ExtendedDataModel
Parameters:
context - current JSF context.
dataVisitor - instance of DataVisitor, for process each row.
range - Implementation-specific range of data keys.
argument - Implementation-specific argument
Throws:
java.io.IOException

walk

public abstract void walk(javax.faces.context.FacesContext context,
                          DataVisitor dataVisitor,
                          Range range,
                          java.lang.Object rowKey,
                          java.lang.Object argument,
                          boolean last)
                   throws java.io.IOException
walk sub-model having row key argument as its root

Parameters:
context - faces context
dataVisitor - org.ajax4jsf.ajax.repeat.UIDataAdaptor.ComponentVisitor
range - TreeRange to constraint the walk
rowKey - row key to treat as root of sub-model
argument - implementation specific argument
last - boolean flag indicating whether we started our walk from last element
Throws:
java.io.IOException
See Also:
ExtendedDataModel#walk(FacesContext, DataVisitor, Range, Object)}

isLeaf

public abstract boolean isLeaf()
returns whether this node is leaf

Returns:

walkModel

public abstract void walkModel(javax.faces.context.FacesContext facesContext,
                               DataVisitor visitor,
                               Range range,
                               java.lang.Object key,
                               java.lang.Object argument,
                               boolean last)
                        throws java.io.IOException
Walk backing sub-model having row key argument as its root. If there is no backing model configured, calling this method is equivalent to calling walk(FacesContext, DataVisitor, Range, Object, Object, boolean)

Parameters:
facesContext - faces context
visitor - org.ajax4jsf.ajax.repeat.UIDataAdaptor.ComponentVisitor instance
range - Range to constraint the walk
key - row key to treat as root of sub-model
argument - implementation-specific argument
Throws:
java.io.IOException
See Also:
#walk(FacesContext, DataVisitor, Range, TreeRowKey, Object, boolean)}

processElement

protected void processElement(javax.faces.context.FacesContext context,
                              DataVisitor dataVisitor,
                              java.lang.Object argument,
                              TreeRowKey treeRowKey,
                              boolean last)
                       throws java.io.IOException
Processes concrete tree node. Knows about LastElementAware interface and handles it properly. Checks if argument is instance of SubTreeChildrenAppender and if it is so does appending current element

Parameters:
context -
dataVisitor -
argument -
treeRowKey -
last -
Throws:
java.io.IOException

getTreeNode

public abstract TreeNode getTreeNode()
Get current tree node. Note: valid only for classical TreeNode based tree data model implementation

Returns:
current tree node

getModelTreeNode

public TreeNode getModelTreeNode()
Get model node recursively with all sub nodes. Note: valid only for classical TreeNode based tree data model implementation

Returns:
current tree node

convertToKey

public abstract java.lang.Object convertToKey(javax.faces.context.FacesContext context,
                                              java.lang.String keyString,
                                              javax.faces.component.UIComponent component,
                                              javax.faces.convert.Converter converter)

getTreeNodeRowKey

public java.lang.Object getTreeNodeRowKey(java.lang.Object node)
Get row key for certain tree node object

Parameters:
node - to get key for
Returns:
node row key

getChildNodeId

public java.lang.Object getChildNodeId(java.lang.Object childNode)
Get node local id in it's parent childs collection

Parameters:
childNode - node to get identifier for
Returns:
node local identifier

getParentRowKey

public java.lang.Object getParentRowKey(java.lang.Object key)

addNode

public void addNode(java.lang.Object parentRowKey,
                    java.lang.Object newNode,
                    java.lang.Object id)

addNode

public void addNode(java.lang.Object parentRowKey,
                    TreeNode newNode,
                    java.lang.Object id)

removeNode

public void removeNode(java.lang.Object rowKey)


Copyright © 2010. All Rights Reserved.