JavaHelp 开发系统帮助(二)

眼见为实

  这时,您就可以查看以上所创建的帮助信息了。对它进行实验的最简单的方法就是按照以下的步骤:


在 c:  下创建一个目录,名称可任取。为了演示方便,我将该目录称为 myhelp。
将 Sample.hs、 map.jhm、 SampleTOC.xml、 SampleIndex.xml 拷贝至 myhelp 目录下
在 myhelp 下创建一个子目录,叫做 help。
将文件 welcome.html 拷贝至该子目录。
运行如下命令 (helpset 查看器) 以查看以上创建的帮助信息。
prompt> java -jar c:jh2.0demosinhsviewer.jar -helpset c:myhelpSample.hs

  如果一切正常,您将会看到类似图 4 的情况。

图 4: 帮助信息示例 
 

  如上所述,您可以将所有的帮助信息文件封装并压缩到一个 Java ARchive (JAR) 文件中。方法是:

  c:myhelp> java -cvf help.jar *

  现在,您就可以用以下的命令查看帮助系统了:

  prompt> java -jar c:jh2.0demosinhsviewer.jar -helpset c:myhelphelp.jar

  创建全文搜索

  全文搜索引擎使用了自然语言搜索技术,它除了检索文档外,也可以定位到查询结构可能存在于其中的这些文档的特定段落。它包括一个用于文档分析的概念性的索引引擎,以生成其内容的索引,它也包括一个查询引擎,该引擎使用索引在材料当中查找相关的段落。

  搜索数据库是用 jhindexer 命令创建而成的。这将在 JavaHelpSearch 目录下创建 6 个文件。这和其他的元数据文件位于同一个文件夹下。举个例子,假设您在该文件夹下有三个子目录叫做 "topic-a"、 "topic-b"和 "topic-c"。这些主题应该指定为 jhindexer 命令的参数:

jhindexer topic-a topic-b topic-c

  当完成数据库的创建后,它将保存到 JavaHelpSearch 下。

  要验证它是一个有效的数据库,请运行如下命令:

  jhsearch JavaHelpSearch

  您将看到:

  initialized; enter query

  现在输入一个查询或者一个术语进行搜索,或者输入一个点(.)退出。

  将 JavaHelp 添加到应用程序中

  现在您已经为应用程序开发了一个帮助信息系统,那么接下来的问题很自然就是如何如何将该系统加入到您的应用程序当中。将帮助信息系统集成到应用程序中所需代码的数量取决于您希望将该帮助信息系统作为应用程序的一部分,还是希望将该帮助信息系统作为另外一个独立的应用程序,例如,当单击帮助按钮时,就显示出该窗口。然而,在两种情况下,将 JavaHelp 添加到一个应用程序中就和下面的 1-2-3 一样容易:


创建 HelpSet 和 HelpBroker 对象。
将帮助赋给单个组件。
为单个组件添加适当的帮助回调。

  示例代码 6 显示了如何将上面所开发的帮助信息系统添加到一个应用程序中,当选中帮助菜单项时,系统会显示出帮助信息窗口。作为一个练习,您可能希望对代码进行重新的设计,使其能够容易的集成到任何的应用程序当中。

  示例代码 6: HelpMenu.java

import java.net.*; 
import javax.help.*; 
import javax.swing.*; 
import java.awt.event.*; 

public class HelpMenu { 
   JFrame f; 
   JMenuItem topics; 

   public HelpMenu() { 
     f = new JFrame("Menu Example"); 
     JMenuBar mbar = new JMenuBar(); 
   
     // a file menu 
     JMenu file = new JMenu("File"); 
     JMenu help = new JMenu("Help"); 

     // add an item to the help menu 
     help.add(topics = new JMenuItem("Help Topics")); 

     // add the menu items to the menu bar 
     mbar.add(file); 
     mbar.add(help);     

  // 1. create HelpSet and HelpBroker objects 
     HelpSet hs = getHelpSet("sample.hs");  
     HelpBroker hb = hs.createHelpBroker(); 

     // 2. assign help to components 
     CSH.setHelpIDString(topics, "top"); 
   
     // 3. handle events 
     topics.addActionListener(new CSH.DisplayHelpFromSource(hb)); 

     // attach menubar to frame, set its size, and make it visible 
     f.setJMenuBar(mbar); 
     f.setSize(500, 300); 
     f.setVisible(true); 
   } 

    
   public HelpSet getHelpSet(String helpsetfile) { 
      HelpSet hs = null; 
      ClassLoader cl = this.getClass().getClassLoader(); 
    
      try { 
        URL hsURL = HelpSet.findHelpSet(cl, helpsetfile); 
        hs = new HelpSet(null, hsURL); 
      } catch(Exception ee) { 
        System.out.println("HelpSet: "+ee.getMessage()); 
        System.out.println("HelpSet: "+ helpsetfile + " not found"); 
      } 
      return hs; 
   } 

   public static void main(String argv[]) { 
      new HelpMenu(); 
   } 
} 

  实验该代码的最简单的方法是将 HelpMenu.java 拷贝至 c:myhelp下。编译并运行它。如果一切正常,您会看到类似图 5 的情况。如果单击帮助主题(Help Topics),那么就会出现图 4 中的帮助信息窗口。 

JavaHelp <wbr>开发系统帮助

图 5: 单击帮助主题以调用 helpset 查看器 
 

  基于服务器的帮助

  JavaHelp 2.0 的一个新的功能特点是基于服务器的帮助( server-based help)。这是一个重要的功能,可使 JavaHelp 在浏览器窗口为基于 web 的应用程序提供帮助信息。使用新的 JavaHelp JST 标签库,可以很容易的将帮助信息添加到基于 web 的应用程序中。工作流程是:当浏览器发出一个 JSP 请求,Java 服务器将该请求转换成一个 Java Servlet,它使用 JavaHelp 库(jh.jar)和 JavaHelp 标签库(jhtags.jar)中的类从 helpset 中访问适当的信息,并向浏览器返回 HTML,也可能是 JavaScript 或者动态 HTML。图 6 显示的是一个基于 Web 的应用程序的帮助信息示例。

 JavaHelp <wbr>开发系统帮助

图 6:基于服务器的帮助
 


  要了解有关基于服务器的帮助的更多信息,请参考:JavaHelp 2.0 规范。

  结束语

  JavaHelp API 是需要运行于异构环境当中的在线帮助信息系统之作者和开发人员的首选技术。JavaHelp 系统可为开发人员增值,并提供完整的软件应用程序,同时无需对编程和开发进行大量投资。此外,许多公司已经认可了 JavaHelp 系统,并计划使用该 API 来建立统一的界面,以进行显示和在内部和外部文档间导航。

  本文中的示例代码描述了如何创建帮助信息文档,这些文档可以很容易的集成到新的和现有的应用程序当中。

以上转自dev.firnow.com

实践总结:

所谓系统帮助就是将帮助类容分主题展现出来,使用javahelp开发帮助主要工作量在制作Topic文件,该文件为

html文件,用来格式化帮助内容。每个topic都会通过map.xml文件映射到一个目录或者一个索引。

toc文件用来定义目录

index文件用来定义索引

javahelp 唯一显示引用的文件就是helpset.hs该文件中包含了toc,index,map三个xml文件的信息。

编辑这些帮助文内容可以借用software 7 Helen这款工具软件

原文地址:https://www.cnblogs.com/ttmemory/p/6606249.html