To complement our coverage of lists and tables in earlier chapters, we'll now move on to hierarchical information. Tree structures store data for which each element might have several subelements. Elements in a tree are typically referred to as nodes, usually with multiple child nodes. Files and directories are straightforward examples of a tree structure. Each directory can contain several items, which can be files or additional directories. Additional directories may have more files inside, and so on. This recursive structure can make trees a little tricky to deal with, but it's important because recursive structures are found in all kinds of knowledge domains, so you'll want to become adept at displaying and interacting with them. Most of the examples in this chapter use files and directories because they're familiar kinds of data. The same basic techniques can be applied to all manner of hierarchical information.
Recursion offers special opportunities and challenges for both display and interaction:
It's common to show one or two levels of the tree and let the user delve in or move out.
This in turn requires ways to signal to the application that parts of the data are omitted or hidden.
When animation is available, it's convenient to load recursive data incrementally so that you don't have to make the viewer wait for the whole data set to load.
This chapter gives you the tools for all those techniques, along with a progress bar that can ...