2012年4月18日水曜日

Eclipse/プラグイン開発のTIPS集/ヘルプを実装する - きのさいと




Eclipseのヘルプはワークベンチのメニューの

ヘルプ >> ヘルプ目次

にありますが、このhtmlベースのヘルプも拡張して好きなヘルプを載せることができます。そして拡張するための拡張ポイントがorg.eclipse.help.toc拡張ポイントです。

この拡張ポイントで目次となるファイル(xml形式)を指定し、そのxmlファイルで目次に対応するhtmlファイルを指定します。


聖なる油の世話をするには?

拡張ポイント †

org.eclipse.help.toc

必須プラグイン †

org.eclipse.help.appserver org.eclipse.help.base org.eclipse.help.ui org.eclipse.help.webapp org.eclipse.tomcat

plugin.xmlのサンプル †

      <-トップの目次となるxmlファイル。                     

目次となるxml(ここではtoc.xml)のサンプル †

    ↑目次のSample Table of Contents をクリックしたときに   表示されるhtmlはhtml/toc.htmlです、の意味                    <-目次にConceptsと表示        <-toc.xml#conceptsとなってる箇所をここに挿入                                                  

でリンクされるtocconcepts.xml †

    <-ここでリンクされてる                     
女性は自分たちの宗教仏教でどのように扱われるか
html" />

ポイント †

htmlファイル群は圧縮できる。 †

目次ファイル内で別の目次ファイルを指定できる †

ヘルプメニューからではなく、アクションやボタンなどでヘルプを起動する †

ヘルプメニューの「ヘルプ目次」は

ActionFactory.HELP_CONTENTS.create(window)

でアクションを取得できます。このクラスは実体は

org.eclipse.ui.internal.actions.HelpContentsAction

なのですが、このrunメソッドからヘルプの起動方法を拝借しました。なかでは以下のようなことをやってます。

final IWorkbenchWindow workbenchWindow = getSite().getWorkbenchWindow(); if (workbenchWindow == null) {   // action has been disposed   return; } // This may take a while, so use the busy indicator BusyIndicator.showWhile(null, new Runnable() {   public void run() {     workbenchWindow.getWorkbench().getHelpSystem()         .displayHelp();   } });

これでヘルプが起動できます。

ヘルプから、プログラムを呼び出す †

org.eclipse.help.ILiveHelpAction? クラスを使うと、ヘルプ上からプログラムを呼び出すことができます。例えば、ヘルプで「下のリンクをクリックするとパースペクティブを変更します」なんてリンクを作ることができるわけです。Eclipseのヘルプってようするにhtmlなわけですが、htmlからクライアントのプログラムが起動できるのって、レガシーなJ2EEを作ってきた私からすると、なんか衝撃的です。

やり方は、あらかじめヘルプドキュメント内で「アクション」を起動するJavaScript?を読み込んでおいて、そのJavaScript?を実行するだけです。そのJavaScript?を呼び出すと、指定された「アクション」クラスが実行される、という機構ですね。もちろんその「アクション」クラスはあるインタフェースの実装クラスとなっています。

JavaScript?の読込 †

あらかじめ、


ホロコーストを否定する人の名前

としてJavaScript?を読み込んでおきます。srcのパスはそのhtmlファイルからorg.eclipse.helpプラグインへの相対パスになります。例えばあるプラグイン内にある、ルートから見て hoge/fuga.htm というドキュメントhtmlの場合、

 

という指定、つまりプラグインのルートからさらに一つ上に上がってorg.eclipse.helpに入って...というパス指定になります。

ヘルプドキュメント上にリンク †

次に通常のhtmlのリンクの様にJavaScript?を実行するリンクを作成します。呼び出すメソッドはliveActionです。使い方ですが、例えば

Click here for a Message.

などとします。各引数の意味ですが、

  • アクションを含むプラグインの ID
  • アクションをインプリメントするクラスの名前
  • setInitializationString? を使用してライブ・ヘルプ・アクションに渡される String。HTML ページから情報を渡す必要はないため、この例では空のストリングを渡します。

となっています。

アクションクラスの実装 †

さて、上のnu.mine.kino.plugin.forms.proto.help.actions.ActivehelpOpenDialogAction? クラスは

org.eclipse.help.ILiveHelpAction

をimplementsしています。インタフェースは

public void setInitializationString(String data); public void run();

です。run内に、実行させたい処理を記述します。例えば


Display.getDefault().syncExec(new Runnable() {   public void run() {     IWorkbenchWindow window = PlatformUI.getWorkbench()         .getActiveWorkbenchWindow();     if (window != null) {       Shell shell = window.getShell();       shell.setMinimized(false);       shell.forceActive();       MessageDialog.openInformation(window.getShell(),           "Hello World.", "Hello World. " + data);     }   } });

とかですね。注意点としては、この処理は別スレッドで実行されるため、UIの処理をする場合は

 Display.getDefault().syncExec(new Runnable() ...

でラップしないといけないところです。

ちょっとJavaScript?のはなし。苦手なので、スニペット。。

 ...... ...... 

としておいて

Click here for a execute.

とかすれば、ヘルプ内で入力した文字をプログラムに渡すことができます。

関連リンク †


この記事は


  • ヘルプ右初期画面の表紙ってどうやってかえるんでしょ? -- たかひろ?
  • 一年前にいただいたコメントですが、plugin_customization.iniの org.eclipse.help.base/help_home=/nu.mine.kino.plugin.hoge.help/html/index.html などとすることで変更可能です。 -- きの?
  • Ganymedeになって触ってみたら、GUIのTOCエディタがあるみたいです:-) -- きの?

現在のアクセス:8279



These are our most popular posts:

天使のアチューンメント - セラピー・コモンズ・ネットモール

天使たちを呼び出すためのチャントや、特定の天使を呼び出す方法を学び、エンジェル ライトによるヒーリング方法を身につけます。コネクションができる天使は下記の12天使 です。1)Archang… ../qtk/var/upload/learn more ... read more

グリモワール - Wikipedia

狭義では悪魔や精霊、天使などを呼び出して、願い事を叶えさせる手順、そのために 必要な魔法円やペンタクルやシジルのデザインが記された書物を指すが、魔術を行う側 の立場から書かれた悪魔学書、魔術や呪術などに関する知識、奥義を記した古文書、 ... read more

Amazon.co.jp: 願いを叶える77の扉―大天使とマスターを呼ぶ: ドリーン ...

レビュー対象商品: 願いを叶える77の扉―大天使とマスターを呼ぶ (単行本). 表紙の デザインが非常に美しく思わず目を奪われてしまいます。 内容は大天使とアセンデッド マスターについての名鑑および、そのコンタクト方法について書かれています。 というと、 ... read more

天使を呼び出す方法|恋愛おたくのまこたんのブログ

2011年1月17日 ... 恋愛おたくのまこたんの恋愛おたくのまこたんのブログの記事、天使を呼び出す方法 です。 read more

0 件のコメント:

コメントを投稿