5.3.10.9 EllipsisTreeIterator Objects

EllipsisTreeIterator objects are created by using the ellipsis attribute on an <al-tree> tag. Ellipsis trees are a variant of lazy trees where nodes at shallower levels are progressively collapsed into ellipses as the user opens deeper nodes. The user can reopen the collapsed nodes by selecting an ellipsis.

They support all the methods of the LazyTreeIterator (5.3.10.8), as well as the following methods:

node_type( )
Returns 0 for a regular node, or 1 for nodes that have been collapsed into an ellipsis. This is actually implemented on the LazyTreeIterator, but will always return 0 there.

EllipsisTreeIterator objects also have the following private methods and members:

_noellipsis_alias
Records the last ellipsis to be selected by the user, and is used to suppress the generate of an ellipsis at that location next time the tree is rendered.

node_use_ellipsis( ctx, node)
Returns TRUE if it is acceptable to render the specified node as an ellipsis. If the node's alias matches _noellipsis_alias, FALSE is return, otherwise TRUE is returned if any of the node's children are open.

The behaviour of the set_backdoor and get_backdoor methods has been extended to recognise a treeellipsis op. This is used to process browser requests to open an ellipsis (it sets the _noellipsis_alias member.