1. ActionBlock

    An ActionBlock contains another block, and is either hilighted or not hilighted. It also has a URL which it will attempt to show when it is selected.

    Each ActionBlock maintains a list of all corresponding ActionView objects, and notifies them when its selection state changes.

  2. ActionBlockGroup

    An ActionBlockGroup maintains a list of otherwise unrelated ActionBlocks which should hilight together. This is used to implement multi-line links.

  3. FilterView

    A FilterView is a View which contains another View, and simply filters all calls from its parent to its child, and from its child to its parent.

  4. ActionView

    An ActionView is a FilterView. It tracks mouse clicks which are not tracked by its child, setting the state of an ActionBlockGroup as the mouse enters and leaves the ActionView.

    If the mouse is released while the ActionView is hilighted, then the ShowDocumentContext is asked to display the URL stored in the ActionBlock.

  5. LinkActionBlock and LinkActionView

    A LinkActionBlock is an ActionBlock created when the html:<a href=> special is seen.

    A LinkActionView is an ActionView corresponding to a LinkActionBlock. It underlines its child and asks it to draw itself in the link color or selected link color, as appropriate.

  6. ToggleActionBlock and ToggleActionView

    A ToggleActionBlock is an ActionBlock created when the html:<a href=idvi:toggle:> special is seen.

    A ToggleActionView is an ActionView corresponding to a ToggleActionBlock. It does not underline its child but is otherwise similar to LinkActionView.