Package edu.mit.ai.psg.ui.outliner

Outliner creates expandable/collapsible outline views of objects using JTree, but rather than providing one renderer for all nodes in the tree, each node specifies its renderer, so different nodes may have different renderings, and a single node may have alternate renderings.

See:
          Description

Interface Summary
CallOutlineNode Node for pairing invocations with results.
CallOutlineRenderer A renderer for a call outline, which pairs a node for call invocation with a call result, and displays the call children inbetween.
OutlineMaker An OutlineMaker takes objects and creates outline window frames holding an outline of each object, built by the OutlineRenderer for the object's most specific class or interface.
OutlineNode OutlineNode interface extends MutableTreeNode with additional state enabling each node to have its own renderer and optionally to keep a second object used for a label.
OutlineRenderer An OutlineRenderer is used by an OutlineMaker to specialize tree behavior for the heterogeneous nodes in outlines.
 

Class Summary
CallOutlineNodeDefault Node for pairing invocations with results.
CallOutlineRendererCaching Caching outline renderer for CallOutlineNodes.
CallOutlineRendererDefault Default outline renderer for CallOutlineNodes.
OutlineCommand Used for popup menu commands.
OutlineMakerDefault OutlineMakerDefault provides a default implementation of OutlineMaker.
OutlineModel OutlineModel extends DefaultTreeModel for OutlineNodes, (1) to trigger generating children when they are accessed if they have not yet been computed (OutlineModel.getChildCount(java.lang.Object)), and (2) to notify children after they are added to and before they are removed from parent (OutlineModel.insertNodeInto(javax.swing.tree.MutableTreeNode, javax.swing.tree.MutableTreeNode, int), OutlineModel.removeNodeFromParent(javax.swing.tree.MutableTreeNode)).
OutlineModel.HiddenRootNode class used for hidden root node in outlines (outlines have a hidden root so that every display node has a parent, and rerendering can simply replace the node in its parent).
OutlineMouseListener OutlineMouseListener listens for and reacts to mouse events on an Outline.
OutlineNodeDefault OutlineNodeDefault: TreeNode class which extends DefaultMutableTreeNode by enabling each node to have its own renderer, to keep a second object used to compute a label, and to keep track of whether its children have been computed.
Outliner Outliner creates expandable/collapsible outline views of objects, where each node may have different renderings, and alternate renderings.
OutlineRendererCaching Renderer which caches object, label, and tool tip text for better performance; useful when computing text isn't trivial, e.g., if it involves long computation or formatting.
OutlineRendererDefault OutlineRendererDefault provides a default implementation of OutlineRenderer.
OutlineRendererDefault.OutlineText OutlineText: JTextArea with verticalAlignment Component.TOP_ALIGNMENT
 

Package edu.mit.ai.psg.ui.outliner Description

Outliner creates expandable/collapsible outline views of objects using JTree, but rather than providing one renderer for all nodes in the tree, each node specifies its renderer, so different nodes may have different renderings, and a single node may have alternate renderings.

Outliner includes an OutlineMaker protocol for looking up the most specific outline renderer for new objects, and for extending the table of renderers to new object classes and interfaces (see examples). Most applications use just one OutlineMaker to make many heterogenous outlines; separate OutlineMakers may be used to keep separate tables of renderers.

Given an object, an OutlineRenderer will eventually be used to draw it on the screen (extending TreeCellRenderer), but also creates the node(s) for the object in the outline, and creates the children for node when it is expanded. Thus, OutlineRenderers can be used tailor not only how each object is drawn, but also what node(s) will appear in the outline for the object, and if a node is expanded, what relationships will be considered its children.

Outliner also includes protocol for adding popup menu items to outline components for system general popup items (Outliner.addPopupMenuItems) and popup items specific to particular outline renderings (OutlineRenderer.addPopupMenuItems). See Outliner.copyright.


Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu