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 icon Class - all top-level classes, i.e. direct package members and nested static classes.

Interface icon Interface - all top-level interfaces, i.e. direct package members and nested interfaces.

Member Class icon Member Class - nested instance classes, i.e. non-static member classes.

Extends icon Extends - a class that this class extends, or an interface that this interface extends.

Implements icon Implements - an interface that this class implements.

Operation icon Operation - operations (i.e. methods, functions, whatever you want to call them).

Throws icon Throws - the type of an exception that this operation throws.

Attribute icon Attribute - both object and primitive attributes may be displayed (see filter options below).

Error icon 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 icon 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 icon 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 icon 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 icon 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:

General options:

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:
  1. By type (interface, classes, extensions, implementations, methods, inner or nested class, attributes, throws)
  2. By lexicographic order
  3. By access (public, package, protected, private)

Filtering options (What to display):

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.

Display options (How to display):

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.

General Display Options

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).

Custom Display 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.

To Do

These are the additional features that are currently being considered:

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!