English || XKeymacs | 7 つ道具 | Tips | JavaHelp | LilyPond | SlickEdit | 書評 | 落書 | リンク集

JavaHelp

JavaHelp

付録

参考文献: JavaHelp―効果的なヘルプメッセージの作り方HTMLリファレンス

JavaHelp

JavaHelp コンテンツの作り方

  1. ヘルプの各ページを HTML 言語で記述する。(以下これらを foo*.html と呼ぶことにする)
  2. Foo.jar の隣に FooHelp ディレクトリを作成し、FooHelp 中に foohelp ディレクトリを作成する。(./FooHelp/foohelp となる)
  3. foohelp の中にステップ 0 で作った foo*.html を入れる。ファイルが多い場合等は適当にサブディレクトリを作り管理する。
  4. HelpSet ファイルの作成。
    1. FooHelp ディレクトリに X:\jh1.1\demos\hs\idehelp にある(といっても、当然パスは JavaHelp のインストールに依存しますが) IdeHelp.hs をコピーして FooHelp.hs とリネームする。
    2. FooHelp.hs を開き、Ide* を Foo* に変更する。
    3. <title> の中身も適当に変える。これが、ヘルプのウィンドウタイトルになる。
    cf. XML では <foo bar="baz"/> は <foo bar="baz"></foo> と同値である。
  5. マップファイルの作成。
    1. FooHelp ディレクトリに X:\jh1.1\demos\hs\idehelp にある Map.jhm をコピーする。
    2. Map.jhm を開き
      <mapID target="foo" url="foohelp/foo.html" />
      の行を全て削除し、ステップ 0 で作った foo*.html の全てに対してこの書式でマップする。
  6. 目次の作成。
    1. FooHelp ディレクトリに X:\jh1.1\demos\hs\idehelp にある IdeHelpTOC.xml をコピーして FooHelpTOC.xml とリネームする。
    2. FooHelpTOC.xml を開き、
      <tocitem text="text" target="target">
      の行を全て削除し、適当に再構築する。text には目次で実際に表示されるテキストを、target には Map.jhm でマップしたターゲットを記述する。このタグを入れ子にすると、目次でツリーの様になる。ターゲットを記述しないと、目次に表示されるものの選択してもなにも起こらなくなる。また image を明示すると目次に表示されるテキストの左に表示されるアイコンを変更できる。
  7. 索引の作成。
    1. FooHelp ディレクトリに X:\jh1.1\demos\hs\idehelp にある IdeHelpIndex.xml をコピーして FooHelpIndex.xml とリネームする。
    2. FooHelpIndex.xml を開き、
      <indexitem text="text" target="target">
      の行を全て削除し、適当に再構築する。要領は目次と一緒。
  8. キーワード検索索引の作成。
    1. コマンドプロンプトを開き、FooHelp ディレクトリに移動し、次のコマンドを実行する。
      X:\jh1.1\javahelp\bin\jhindexer foohelp
  9. 必要に応じて jar する。
以上で、JavaHelp は完成する。

Java アプリケーションにおいて、メニュー、及び、F1 キーから JavaHelp を利用する方法。

Keywords: JavaHelp, help, Java, application, F1, function key, menu, button
キーワード: ジャバヘルプ、ヘルプ、ジャバ、アプリケーション、ファンクションキー、メニュー、ボタン
  1. JavaHelp コンテンツの作り方を参考に JavaHelp コンテンツを作成する。
  2. 冒頭の import 群に下記を追加。
    import javax.help.*;
  3. ヘルプを利用したいクラスに次のフィールドを追加。
    HelpSet hs;
    HelpBroker hb;
  4. コンストラクタに下記を追加。
            try {
                // Foo.jar の隣に FooHelp ディレクトリを置く場合
                // URL hsURL = new URL((new File(".")).toURL(), "FooHelp/FooHelp.hs");
    
                // Foo.jar の隣に foohelp.jar を置く場合
                // URL hsURL = new URL("jar:file:foohelp.jar!/FooHelp.hs");
    
                // JavaHelp コンテンツをアプリケーションと共に jar する場合
                URL hsURL = new URL("jar:file:Foo.jar!/jp/ne/hi-ho/cam/oishi/foo/FooHelp/FooHelp.hs");
                // jp/ne/hi-ho/cam/oishi/foo な部分は適宜、用いてるパッケージ名に変更すること。
    
                hs = new HelpSet(null, hsURL);
            } catch (Exception e) {
                e.printStackTrace();
            }
            hb = hs.createHelpBroker();
            hb.enableHelpKey(getRootPane(), "overview", hs);        // for F1
  5. メニューからヘルプを呼び出すために helpItem.setText(); の隣に以下を追加。
    ActionListener helper = new CSH.DisplayHelpFromSource(hb);
    helpItem.addActionListener(helper); // JMenuItem helpItem;
    cf. ボタンから JavaHelp を呼び出す方法はメニューに準ずる。
以上で、JavaHelp で作ったヘルプが Java アプリケーションから利用できるようになる。

WinHelp を JavaHelp に変換する方法

JavaHelp は html なので、WinHelp が html に変換できれば、あとはどーにかなりそうな気がする。
WinHelp を html に変換する方法は WinHelpをHTML Helpに変換する(KeiYu HelpLab) が詳しい。
他人のサイトはいつ消えるか解らないので、最低限の要約をば。
  1. HTML Help Workshop を Microsoft HTML Help Downloads からダウンロードして、インストールする。
  2. HTML Help Workshopを起動し、File -> New を選択。
  3. Project を選択。
  4. Convert WinHelp project にチェックを付け、次へ。
あとは流れるままに行くと、WinHelp が HTML Help になる。
ここで生成された html file を JavaHelp に流用する。

付録

HTML 入門

JavaHelp のヘルプを書く為の最低限の HTML。
--- 雛型 ---
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>Title</h1>
Body
</body>
</html>
---

基本タグ

Heading

<h1>Heading1</h1>

<h2>Heading2</h2>

...
<h6>Heading6<h6>

Font

<b>Bold</b>
<i>Italic</i>
<u>Under-line</u>
<code>Fixed Font</code>
<br>break

<p>Paragraph</p>

Link

<a href="filename">XKeymacs</a>
<a href="#name">name</a>
<a name="name">name</a>
<img src="filename">

Unorderd List

<ul> </ul>

Ordered List

<ol>
  1. <li>ol: Ordered List</li>
  2. <li>li: List Item</li>
</ol>

Definition List

<dl>
<dt>dl</dt>
<dd>Definition List<dd>
<dt>dt</dt>
<dd>Definition Term<dd>
<dt>dd</dt>
<dd>Definition Description</dd>
</dl>

Block Quote

blockquote
<blockquote>Block Quote</blockquote>

Table

data 1 data 2 data 3
<table width=600>
<tr valign="top">
<td width=200>th: Table Header</td>
<td>tr: Table Row</td>
<td>td: Table Data</td>
</tr>
</table>

Horizontal Rule

<hr>
(C) 2002-2005 oishi@cam.hi-ho.ne.jp