Tree migration to RichFaces 4

    Overview

    This document will describe the migration of tree component.

     

    information from 3.3.x:

     

    references:

    http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_tree.html

     

    tld:

    http://docs.jboss.org/richfaces/latest_3_3_X/en/tlddoc/rich/tree.html

     

    svn

     

     

    Related requests and jiras:

    list of jira's

     

    Removed features

     

    • Tree state advisors
    • Caching of tree nodes/models

     

    Base functionality - to be implemented in M4


    • Three modes for nodes toggling: ajax/server/client
    • Two modes for nodes selection: ajax/client
    • Visual presentation of the node customizable via rich:treeNode component
    • Data types defined as "value":
      • javax.swing.tree.TreeNode
    • Several root nodes supported
    • Events
      • Server-side
        • Node toggling (not in M4 completely)
        • Node selection (not in M4 completely)

     

    Additional features - for M5


    • Data types defined as "value":
      • org.richfaces.model.TreeDataModel (new for 4.x)
      • org.richfaces.model.TreeNode
    • Tree node customization attributes
    • Default rich:treeNode
    • Support for 'execute'/'render' attributes
    • Toggle types
      • toggleNodeEvent attribute specifies additional event on node itself which will trigger expansion.
    • Events
      • Client-side
        • Cancelable & non-cancelable for node toggling
        • Cancelable & non-cancelable for node selection
      • Server-side
        • treeToggleListener tag & component attributes
        • treeSelectionChangeListener tag & component attributes
      • Built-in converters for complex row keys
      • Improved support for lazy loading
      • Support for arbitrary data structures (via adaptors) (for M5)
        • treeModelAdaptor
        • treeModelRecursiveAdaptor

       

      Questionnable/LT - important


      • DnD
      • "disabled" attribute
      • "loading" facet for tree
      • Keyboard navigation
        • Nodes toggling
        • Node selection/deselection
      • Client-side API
      • Server-side API
        • Expand all nodes
        • Collapse all nodes
        • Expand particular node with all parents
        • Collapse particular node with all subnodes
        • Collapse particular node
        • Selection control
        • Reset visual state for:
          • Node
          • Subtree

       

      Questionnable/LT


      • Distinct operation (ajax/server/etc) modes for different types of tree nodes
      • Pagination support
      • Insertion of nodes in arbitrary order
        • TBD
        • TBD
        • ...
      • Multi selection
      • External partial updates
        • subtree
        • node

       

      Issues

       

      • Full node selection
      • Scrollable containers/scrolled page
      • Persistent row keys
      • DB models support
      • What is satisfiable performance?