JBrowse |
Version 1.4 (Jan. 19, 2001)
By George Latkiewicz <georgel@arvotek.net>, André Kaplan <akaplan@users.sourceforge.net> |
Introduction |
The "JBrowse" plug-in provides a highly customizable tool for navigating through Java source code. It displays a navigation window which uses a tree view to display the hierarchy of classes, interfaces, and methods for the file in the current buffer. In addition, attributes, extends, implements and method exception information can be displayed. A single mouse click on one of the nodes in the tree will highlight the line in the jEdit buffer where the definition of that item begins. Options are provided to control both what is displayed and how.
The JBrowse 1.x series introduce important new features:
This version requires:
Understanding the JBrowse Tree Display |
JBrowse displays the hierarchy of elements in a tree using the options (see below) you have specified. Each element is displayed with one of the following icons:
Class - all top-level classes, i.e. direct package
members and nested static classes.
Interface - all top-level interfaces, i.e. direct
package members and nested interfaces.
Member Class - nested instance classes, i.e.
non-static member classes.
Extends - a class that this class extends, or an
interface that this interface extends.
Implements - an interface that this class implements.
Operation - operations (i.e. methods, functions,
whatever you want to call them).
Throws - the type of an exception that this operation
throws.
Attribute - both object and primitive attributes may be
displayed (see filter options below).
Error -
indicates the location of a point in the code where JBrowse encountered what it
considered a parse error. If any such errors were found an indicator appears
next to the resize button. You may need to fix the error and re-parse to obtain
a full hierarchy for the buffer. Any code for which JBrowse reports a parse
error should not compile without generating an error as well (if it does then
JBrowse has a bug, please let me know!).
JBrowse Controls |
Parse button - Clicking this button will cause the tree hierarchy
to be re-built based on the current contents of the active buffer. When JBrowse is
opened, it automatically does this (unless the file does not have a ".java" extension).
Changing any options will automatically update the tree display. Thus, the only
reason to re-parse is because the file contents have changed, or a different buffer
has been activated or because you are curious what JBrowse will do if you attempt
to parse a binary file.
Resize button - Clicking this button will adjust the width of the JBrowse
window so that the widest visible element in the tree will be visible without scrolling.
You may find it useful to adjust the width using this control after changing options
or expanding tree nodes. It doesn't appear when JBrowse is docked.
Configure button - Clicking this button will open, or bring to the foreground,
the JBrowse options dialog. This dialog allows you to change, on-the-fly, the current option
settings for this JBrowse session. More information on this dialog, including the effect of
each option setting is described below in the JBrowse Options section.
Help button - Clicking this button will open the Help Viewer with the documentation
for JBrowse (the HTML page you are now reading).
Navigating the JBrowse Tree |
The tree can be navigated using both the mouse and the keyboard. The keys and their associated actions, as listed below, are those that are common to all the standard look & feels.
Action | Key |
Expand/collapse node | Right, Left |
Toggle expand/collapse for current node | Enter |
Move up/down one node | Up, Down |
Move to first/last node | Home, End |
Move up/down one page | PgUp, PgDn |
JBrowse Options |
JBrowse is highly configurable, using a set of option values
that control the behavior and appearance of the tree that is displayed
for a parsed Java program file. A set of default option values is stored
in a property file, which is loaded each time a new JBrowse session is
started. While JBrowse is running these options may be changed on-the-fly
using the JBrowse Options Dialog. The current option values can be saved
as the new defaults by selecting the "Set As Defaults" button
and the last saved defaults can be loaded to replace the current values
by selecting the "Restore Defaults" button. The default option
values may also be set using the JBrowse tab of the jEdit plug-in
options dialog (accessible from the jEdit menu item
Utilities->Global Options
).
The tables below describe the effect of each option value. These options
are grouped into three basic categories:
Display status bar | If set then the status bar, which indicates the total number of classes, interfaces, attributes and methods in the currently parsed file, will be displayed at the bottom of the JBrowse window. |
Automatic reparse | If set, JBrowse automatically reparses the buffer and updates its display when the jEdit buffer changes. |
Sort |
If set, JBrowse sorts the different elements in the following order:
|
These options specify which types of elements are to be displayed in the tree. Changing any of these options will cause the entire tree to be reloaded using the new option setting.
Attributes | If set then Object attributes will be included in the tree. |
include primitives | If set then primitive attributes will also be included in the tree. |
extends/implements | If set then for each class and interface the classes and interfaces that they extend or implement (if any) will be displayed as their immediate child nodes in the tree. |
Method throws type(s) | If set then the types of all exceptions that an operation is defined to throw (if any) will be listed as the immediate child nodes of that operation. |
Lowest Visibility level to show, Top-Level | Specifies the minimum visibility level that a top-level element (non-nested class or interface) must have to be displayed in the tree. |
Lowest Visibility level to show, Member | Specifies the minimum visibility level that a member element (attribute or method) must have to be displayed in the tree. |
These options specify the format that is to be used to display the elements in the tree.
Changing any of these options will normally update the display without reloading the
tree.
Note: if the tree currently has a very large number of displayed
nodes (more than 200) then it will be reloaded rather than updated
for performance reasons.
The following options can be set independently of the current Display Style.
Arguments | If set then the type signature of each argument will be displayed for operations. |
formal names | If set then the formal names of each argument will be displayed for operations. |
Qualify nested class/interface names | If set then fully qualified names will be displayed for all nested classes and interfaces (as opposed to just the final component of the name). |
Keywords specified by icons | If set then the keywords directly associated with the icons for
class, interface, extends, implements & throws
will be displayed, otherwise they are suppressed. |
Implementation detail modifiers | If set then display all implementation detail modifiers
(i.e. synchronized, native, strictfp, transient, & volatile ),
else suppress these modifiers. |
Line Numbers | If set then the line number at which the definition of each element begins will be displayed. |
Display Style | Can be set to Java (all custom options off), UML (all custom options on) or Custom (allows individual settings for all custom options). |
The following options are controlled by the current Display Style. they can be individually set if the current Display Style is set to 'Custom'.
Use Visibility Symbols | If set then 'public', 'protected', 'package' and 'private' visibility is labeled by a '+', '#', ' ' or '-', respectively. |
Abstract in italics | If set then interfaces and abstract classes and methods are identified by appearing in italics (as opposed to specifying the modifier). |
Static as underlined | If set static methods and attributes are identified by being underlined, (as opposed to presence of the 'static' modifier). |
Type identifier as a suffix | If set then the type identifiers (for method return types, arguments and attributes) will appear after the item whose type is being specified (preceded by a ' : '). |
Recent Changes |
For a detailed list of changes between each released version (including bug fixes) see the Change_History page. The following provides a quick summary of the key changes since version 1.0.2.
JBrowse.TextAreaFocusHandler
reparsed
unnecessarily some buffers which caused the annoying behaviour
Buffer.getFile().getPath()
used instead of Buffer.getPath()
To Do |
These are the additional features that are currently being considered:
interface
vs. abstract interface
,
etc.)
Feedback |
The preferred way to send bug reports or feature requests is to use the
Sourceforge Bug Tracker at
http://sourceforge.net/bugs/?group_id=588.
If you have any feature requests, comments, or if you would like to
contribute to this project, write to:
Enjoy!