Package edu.mit.ai.psg.jexa

Jexa, a Java examiner, provides expandable/collapsible outlines for browsing through object nets.

See:
          Description

Class Summary
BeanRenderer BeanRenderer: displays an object's JavaBean properties (uncovered using java.beans.Introspector and elements of arrays.
ClassRenderer ClassOutline: Shows static fields of Class as children.
CollectionRenderer CollectionRenderer: displays elements of Collection as children.
ContainerRenderer ContainerRenderer: displays parent and children of java.awt.Container's; good for navigating Container hierarchy.
Jexa Jexa: a Java examiner to examine objects via expandable/collapsible outlines.
Jexa.JexaOutlineMaker  
JexaApplet Jexa Applet: An applet that displays an object with Jexa.
ListRenderer ListRenderer: displays [index] element of List as children.
MapRenderer MapRenderer: Displays key:element entries of Map as children.
ObjectRenderer ObjectRenderer: displays fields of objects and elements of arrays (uncovered using java.lang.reflect and Class methods).
TreeNodeRenderer TreeNodeRenderer: displays parent and children of javax.swing.TreeNode's.
 

Package edu.mit.ai.psg.jexa Description

Jexa, a Java examiner, provides expandable/collapsible outlines for browsing through object nets. Navigate indented outlines of objects by expanding the outline to see their parts, their parts' parts, etc.

Most uses will only need to call methods in the Jexa class, e.g., Jexa.examine(objectToExamine). Or to examine applets, simply place a JexaApplet on the same html page as the other applets.

See also the user interfaces of the edu.mit.ai.psg.jevaESUI (or edu.mit.ai.psg.jevaUI) packages, at which you can directly type Java expressions. This is useful in conjunction with setting Jexa.mousedObject from Jexa (from an object's popup menu), so you can navigate to an object, then evaluate an expression that calls some method using that object.

To generate outlines, Outliner keeps a table of outline renderers for instances of various classes and interfaces. Outliner automatically chooses from the applicable outline renderers the outline renderer for the most specific class or interface of the object. The user can later redisplay with another applicable outline renderer.

Jexa provides the following outline renderers:

For example, an instance of Vector implements java.util.List and java.util.Collection, so BeanRenderer, CollectionRenderer, ListRenderer, and ObjectRenderer are all applicable. The most specific interface or class is java.lang.List, so Outliner chooses ListOutline to render the outline.

These renderers for interfaces or classes extend ObjectRenderer and override ObjectRenderer.makeChildOutlineNodes(edu.mit.ai.psg.ui.outliner.OutlineNode). New custom renderers can be added for any interface or class by defining the renderer and calling OutlineMaker.addRenderer(java.lang.Class, edu.mit.ai.psg.ui.outliner.OutlineRenderer) as illustrated in the Outliner example and Jexa examples. Please read Jexa.copyright.


Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu