Radio UserLand Kick Start: Understanding Outlines

Understanding Outlines

This is part of Chapter 8 of the book Radio UserLand Kick Start by Rogers Cadenhead, published by Sams Publishing

It's impossible to make full use of Radio without mastering the program's outliner.

Dave Winer, the principal founder of UserLand Software, is one of the world's biggest advocates for outliners. Over the last quarter century he created several of the most popular commercial outliner products, including ThinkTank, Ready!, and MORE, and kept working on outliners even after the market for stand-alone outlining software dried up. Outliners have been a core part of UserLand's Internet products since the launch of the company in 1988.

Outliners attract a cult following, as demonstrated by the number of people who continue to use products like MORE years after development was abandoned. The discussion board on Outliners.Com, a Web site run by UserLand, has more than 1,600 messages from current users of MORE, ThinkTank, and similar products. "Word processors, presentation programs, script editors, project planners, personal information managers, all have outliners built into them now," says Winer. "Perhaps this offers the most likely explanation of what happened to outliners, the idea was good enough that it found its way into every other application category."

An outline is a list of related items that has been structured into a hierarchy to show the relationships between different items. An example is shown in Figure 8.1.

An outline listing computer software

Figure 8.1.

An outline listing computer software.

People who have never used outliners might be skeptical of their usefulness. An outline, after all, is just a list of items grouped together with icons and indentation. Microsoft Word and other word processors have offered outlining capabilities for years, but many users probably don't realize the feature is there. Although outliners are an essential component of file navigation, help files, the Windows Registry, and a lot of other software, you might not see much need for them in your own projects.

Outlines are a simple and flexible way to create and view a list of items, displaying different parts of the list as desired.

In an outline, relationships are established between items based on where they are located and how far they are indented to the right. The outline hierarchy represents a family tree of parent-child relationships: Items grouped together with the same indentation are the children of a parent directly above them with lesser indentation. In Figure 8.1, the parent "Underrated" has three children: "Microsoft Bob", "Mozilla", and "Jabber." Parents also can be children themselves -- the parent "Computer Software" has two children: "Overrated" and "Underrated." Radio calls child items subheads.

In an outline, each horizontal level of indentation represents a level of the outline. Subheads can be at the same level without having the same parent -- in Figure 8.1, "EverQuest" and "Mozilla" are at the same level but are not siblings. One has "Overrated" as a parent and the other has "Underrated".

The child items of a parent can be interactively displayed (expanded) or hidden (collapsed), making it possible to view as much or as little of the outline as desired. Collapsing an item collapses everything below it in the hierarchy.

Each item in an outline is marked by a small icon such as a triangle, a plus or minus sign, or a bullet. This icon also can be used to indicate whether a particular item has subheads that are not being displayed. In Radio, each item has a black triangle when it has collapsed subheads and a gray triangle when it has expanded subheads or no subheads at all.

Radio's object database, Radio.root, can be viewed and modified as an outline. Figure 8.2 shows one view of this database.

Radio's object database

Figure 8.2.

Radio's object database. (Click to enlarge)

As depicted in the figure, most items in the outline are collapsed away from view, which is the norm when working with the database. Radio.root contains thousands of items -- if every subhead was expanded at the same time, finding a particular item in the outline would be an arduous task. Instead, it's easier to find something by expanding an item to see its subheads, expanding one of the subheads, and so on until the desired item is located. This process is called drilling down into the outline.

Caution: Radio.root contains thousands of lines of UserTalk scripting code and data that are required for the proper function of the software. The care and feeding of this database is covered in the chapters of Part II, "Using the Object Database." Making any changes to the database before learning how to work with it (and back it up) could cause Radio to stop functioning correctly.

After drilling down to a group of subheads in an outline, the parent of those heads will be visible, as will its parent, and so on up the hierarchy.

To take a more focused view of a portion of an outline, a parent's subheads can be hoisted. Hoisting causes a group of related subheads to be displayed as if those items and their subheads were the only thing in the outline. The parent and all other parts of the outline disappear from view (see Figure 8.3).

Hoisted items in an outline

Figure 8.3.

Hoisted items in an outline.

The outline shown in the figure displays only three items -- the subheads of the "Underrated" item shown in Figure 8.1. There's no way to find and expand anything higher up in the hierarchy.

Although hoisting makes it look as if the rest of the outline has been deleted, the items are still present. To return to a less focused view of the outline, the subheads can be dehoisted. Dehoisting reverses the last hoisting request, making all the items that it hid visible again.

Items can be moved up or down an outline by being promoted or demoted. These requests move a group of child subheads that share the same parent. Demoting moves one or more subheads down one level, indenting them further to the right. Promoting moves one or more subheads up one level so they are less indented than before.

Returning to Figure 8.3, if "Jabber" were demoted, it would become the child subhead of "Mozilla". If "Mozilla" and "Jabber" were demoted, both would become children of "Microsoft Bob".

There's more jargon associated with the practice of outlining, but the terms are best learned within the context of Radio's particular implementation. At this point, you should have some familiarity with the concepts of parents and subheads, levels, expanding, collapsing, hoisting, dehoisting, promotion, and demotion.

Chapter 8:

  1. Introduction
  2. Understanding Outlines
  3. Writing an Outline
  4. Modifying an Outline
  5. Viewing an Outline
  6. Using Links in an Outline
  7. Summary

Radio UserLand Kick Start home page