Most interactive applications require online help - Java applications are no exception. To address this need, Sun Microsystems, Inc. has developed the JavaHelp API and help system. The JavaHelp software fills a void in the help market for a cross-platform, browser-independent help format that will eliminate the need to develop costly proprietary Java technology-based help systems or settle for a platform-dependent solution that will require you to rewrite your help system for each platform.
Written entirely in the Java programming language, the JavaHelp help system provides capabilities for navigating, searching and displaying help information, making it easy for an end-user to acquire knowledge about how to use an application or applet. Using the JavaHelp software, developers and authors are able to incorporate online help for components, applets, applications, operating systems, devices and Web pages. Developers can also use the JavaHelp software to distribute online documentation in a corporate intranet or Internet.
The JavaHelp system offers a full-featured help system, including its own help viewer, which consists of a toolbar, content pane and navigation pane. The content pane uses HTML 3.2 as its format for displaying topics and can run Java applets. The navigation pane provides the table-of-contents (TOC), index and full-text search navigational controls. The TOC supports a collapsible and expandable display of topics and an unlimited number of hierarchical levels. The file formats for the navigational controls are all XML-based.
Through the JDK internationalization feature, the JavaHelp software will support internationalization. Localization of help content, indexes and table of contents are supported and are loaded in a locale-specific way.
The JavaHelp system, designed to be very flexible, can be displayed in its own primary window or embedded in an application. In fact, because the JavaHelp system is based on the Java Foundation Classes (JFC) components, the navigational controls and the viewer can be individually embedded in an application. In addition, help projects can be merged using multiple TOCs and indexes.
Packaging help information is also very flexible with the JavaHelp software. The JavaHelp system information is delivered in a JAR file, which compresses and encapsulates the help files into a single file. The JavaHelp system can extract help information files from the JAR file as they are required.
The flexibility and ease of integration of the JavaHelp API makes it easy for developers to customize and extend the user interface and functionality. It allows custom or third-party navigational controls, search engines and content viewers to be added. In addition, applets can be used to extend the help system with additional functionality. The JavaHelp system will provide some applets, including applets for pop-up and see-also windows.
Designed for the Java platform, the JavaHelp software will work especially well with networked applications. The help data and search functionality can reside on either the client-side or server-side. Help data and new functionality can be dynamically updated over the web. Coupled with its cross-platform benefits and network design, the JavaHelp software is ideal for use in a heterogeneous environment, such as the Internet or corporate intranet.
There are other help formats available today, both Java technology-based and non-Java technology-based formats. However, none meets the needs of an industrial strength, cross-platform, browser-independent solution that Sun is offering through the JavaHelp API. Many of the other existing Java technology-based help formats are proprietary help systems or developments done by smaller companies that may not offer extensive support for their help systems. In addition, many of these formats are inadequate for supporting a sophisticated, complex help system that is needed by large, complex applications. In regards to help formats that are not written in the Java programming language, such as WinHelp and HTML Help, they do not offer the benefits of the JavaHelp software, as they are dependent on a specific platform and browser. Incidentally, many of the proprietary Java-based help systems are moving to support JavaHelp API. For example, Sun's Java Workshop™ help, a customized help system specific to Java Workshop product, plans to migrate to the JavaHelp system in a future release.
One of the biggest requests from customers for developing a JavaHelp system is having help authoring tools available. Because the JavaHelp software is being developed by an open, industry-participative process, it has received widespread support from the industry and help authoring tool vendors. The leading help authoring vendors have publicly announced support for JavaHelp, including Blue Sky Software, ForeFront, Wextech Systems, Creativesoft, Quadralay, Virtual Media and HyperAct. These authoring tools will make it easy for authors to develop the JavaHelp system by offering a simple conversion utility to generate the JavaHelp help format.
Sun has announced that the JavaHelp software will be delivered as a standard extension to the next release of the JDK. An early access release of JavaHelp software will be available by early April. At that time, developers can evaluate and use the JavaHelp software, with the caveat that authoring support will not be available at that time. The JavaHelp software is scheduled to ship this summer. Redistribution of the JavaHelp binaries will be permitted, royalty free with your product.
For more information about the JavaHelp software, visit the Web site at http://java.sun.com/products/javahelp.
About the Author
Nancy K. Lee is Product Manager for JavaHelp within JavaSoft, a division of Sun Microsystems, Inc. Since joining Sun in 1995, she has also worked in the JavaBeans™ product marketing group and helped found the Java Developer Connection program.