## JavaHelp System Features

This section describes the main features of the JavaHelp system. For a list of new features in this release, see New Features in JavaHelp 2.0.

### Help Viewers

There are three types of windows in which you can display your help topics. These windows can be specified in the Java program when it makes a call to the help system. The help author can set various attributes of these windows in the helpset (`.hs`) file. These windows cannot be invoked from a link in a help topic (although there is a way to link to a popup window that uses a different technique, described in Opening Popup and Secondary Windows From an HTML Topic). However, it is possible to open a topic in one of these windows from the table of contents in the tri-paned viewer (see the Presentation feature in Helpset File, the `presentationtype` and `presentationname` descriptions in the sections on the TOC, index, and glossary navigators, and the section Implementing Context-Sensitive Help.

The windows are:

- Main window (by default, a tri-paned help viewer)
- Secondary window
- Popup window

#### Main Window

The standard JavaHelp system main window has three panes, is not destroyed when you exit the window, and is configurable (see the presentation feature in Helpset File). By default, a main window has the following three panes:

Toolbar | A bar over the navigation and content panes that can be configured to display various toolbar buttons, such as Back, Forward, and Print.
Navigation pane | A tabbed interface appearing on the left that allows users to switch between the table of contents, index, and full text search displays.
Content pane | A pane on the right that displays help topics formatted with HTML 3.2 or later, plus embedded lightweight Java components.

The following figure shows a help window with a toolbar that has three buttons in it, a table of contents in the navigation pane on the left, and in the content pane, a help topic, "Debugging in the Source Editor":

#### Secondary Window

By default, this window contains a single pane, a help content viewer that shows a help topic. It is similar to the content pane of the tri-paned viewer. A secondary window has a name and can be configured to have a navigation pane and a toolbar. If the window is already open, its contents are replaced if the Java program uses it again. When the user closes a secondary window, it is destroyed (unlike the main window, which is not destroyed on exit).

#### Popup Window

This type of window stays open as long as it has focus. When the user clicks elsewhere, the window is destroyed. A popup has only one pane, a content viewer.

### Table of Contents

Provides a collapsible and expandable display of topics in the help system. Supports unlimited levels and merging of multiple TOCs. The underlying file format follows World Wide Web Consortium (W3C) Extended Markup Language (XML) standards. The TOC display is synchronized with the content viewer: The topic being displayed is highlighted in the TOC. For more information, see Table of Contents File.

### Index

Supports merging of multiple indexes. The underlying file format follows W3C XML standards. The index display is synchronized with the content viewer: The topic being displayed is highlighted in the index. For more information, see Index File.

### Full-Text Search

The full-text search engine can be used in a variety of network environments. Matches returned from searches are ranked for relevancy by using "relaxation rules." For more information, see Full-Text Search.

### Compression and Encapsulation

The standard JAR format is used to encapsulate the help information into a single, compressed file. The JavaHelp system works equally well with help information that is not compressed into JAR files - this flexibility allows authors to view files during development without taking the time to compress them.

### Embeddable Help Windows

Help windows (individually or in combination) can be embedded directly into application interfaces.

### Context-Sensitive Help

Help can be activated from Java programs through a number of different mechanisms. For more information, see the help authoring section Context-Sensitive Help and the Java developer section Implementing Context-Sensitive Help.

### Flexible Packaging

Flexible packaging of help information for product delivery makes it easy to incrementally update help information in the field.

### Customization

The JavaHelp system is designed to permit great flexibility in customizing both the user interface and functionality.

### Merging

Help information from different sources can be combined and presented to the end user. For more information, see Merging Helpsets.

### JavaBeans Support

The JavaHelp API enables a JavaBeans component to specify help information that can be presented to the end user (perhaps merged with additional information).

Next Overview Topic: Descriptive Scenarios