5.3.11.8 LazyTreeIterator Objects
<al-tree> tags that include the lazy attribute use an
instance of the LazyTreeIterator class. This class supports all
the methods of the TreeIterator class, as well as the following:
-
Returns
TRUE
is the current node is open. Calls the
albatross_alias() method of the current node and returns
TRUE
if the returned alias exists in the _open_aliases
dictionary member.
-
Returns
TRUE
if the current node is selected. Calls the
albatross_alias() method of the current node and returns
TRUE
if the returned alias exists in the _selected_aliases
dictionary member.
Some methods are designed to be called from application code, not from
templates.
-
Closes all tree nodes by reinitialising the _open_aliases to
the empty dictionary.
-
Deselects all tree nodes by reinitialising the
_selected_aliases to the empty dictionary.
-
Returns a sorted list of aliases for all nodes that are selected
(ie. in the _selected_aliases member).
set_selected_aliases( |
aliases) |
-
Builds a new _selected_aliases member from the sequence of
aliases passed in the aliases argument.
-
Returns a sorted list of aliases for all nodes that are open
(ie. in the _open_aliases member).
set_open_aliases( |
aliases) |
-
Builds a new _open_aliases member from the sequence of
aliases passed in the aliases argument.
LazyTreeIterator instances add the follow private methods and
members:
- _key
-
This member caches the value returned by the albatross_alias()
method for the current node. This key is then used to look up the
_open_aliases and _selected_aliases members.
- _open_aliases
-
A dictionary that contains the aliases for all tree nodes that are
currently open. The contents of this dictionary is maintained via the
set_backdoor() method.
- _selected_aliases
-
A dictionary that contains the aliases for all tree nodes that are
currently selected. The contents of this dictionary is maintained via
the set_backdoor() method.
-
Used to save the iterator in the session. This restricts the Python
pickler to saving only the _lazy, _open_aliases and
_selected_aliases members.
-
Restores an iterator from the Python pickler.
-
Sets the _value to the node argument. When operating
in lazy mode the albatross_alias() method is called for
node and the result is cached in _key.
-
Called internally whenever the toolkit needs to determine the open
state of a tree node. It returns whether or not the node in the
node argument is open. This always returns
0
for leaf
nodes as they do not have children.
When in lazy mode the open state of node is retrieved from
_open_aliases. If the node state is open then the method
checks the value of the node children_loaded member. If
children_loaded is FALSE
then the node
load_children() is called to load the children of node.
set_backdoor( |
op, key, value) |
-
The <al-input> and <al-a> tags provide
treefold and treeselect attributes that generate
names using a special backdoor format. When the browser request is
processed, the set_value() method of the
NamespaceMixin directs tree backdoor input fields to this
method. Refer to the documentation in section 7.6.
When the op argument is "treeselect"
the
_selected_aliases is updated for the node identified by the
key argument. If value is FALSE
the key is removed
else it is added.
When the op argument is "treefold"
and value
argument is TRUE
then the open state of the node identified by
the key argument is toggled.
-
When generating backdoor fields for the <al-input> and
<al-a> tags the toolkit calls this method to determine the
value that will assigned to that field.
When op is "treeselect"
the method returns the current
selected state of the node identified by key.
When op is "treefold"
the method returns 1
.
Release 1.30, documentation updated on May 31, 2005.