Early in its life, Tycho had two classes for every type of editor: one for the top-level window with menu and key bindings, and one containing the editing widget. We simplified this considerably by adopting a pattern we call Displayer-View: there is only one top-level window class (the Displayer). One or more views can place themselves into the Displayer and request access to a menu bar, tool bar, and status bar. The HTML window in figure 1 shows all three of these bars.
This approach gives us the flexibility to create widgets that can be placed into Displayers in new combinations. For example, a member of our group (Cliff Cordeiro) is working on a class browser that combines an HTML with a class index. We anticipate many more uses of this pattern in the future.