アクティブ・ヘルプ・リンクを起動したコードとマークアップは、非常に簡単に見えます。 しかし、アクティブ・ヘルプ・リンクが機能していないと考えられる場合は、どうすればよいでしょうか?
アクション・インプリメンテーションが複雑である場合、いくつかのテスト・コードを使用して Eclipse の内部でアクションを起動する必要があります。 これで、アクションを JavaScript から起動する前にエラーを除去できます。
"plugins/org.eclipse.help_2.1.0/liveHelp.js" を変更して、liveAction 関数の最初のステートメントとして alert 関数の呼び出しを組み込むことができます。
function liveAction(pluginId, className, argument) { alert("liveAction called"); ...
alert 関数はブラウザーに警告ダイアログを開きます。 これは、HTML で liveAction が正常に起動されたかどうかの検査に使用できます。 ヘルプ・リンクをクリックしても警告ダイアログが表示されない場合、HTML マークアップに問題があります。
JavaScript の実行を確認したら、アクションを Eclipse の内部からデバッグすることができます。 これを行うため、ヘルプ・アクション・クラスにブレークポイントを設定して、自己ホスト Eclipse インスタンスを始動することができます。 ヘルプ HTML の JavaScript はブラウザーを起動した Eclipse ヘルプ・サーバー上のサーブレットを呼び出すため、ホスト・インスタンスではなく、 新たに起動した Eclipse インスタンスのヘルプ・ブラウザーでアクティブ・ヘルプをテストしなければなりません。
ブレークポイントをセットアップして、アクティブ・ヘルプ・リンクをクリックしても何も起きない場合、 プラグインおよびアクティブ・ヘルプ・クラスが JavaScript 内に正しく指定されていない可能性があります。
アクションをブレークポイントで停止することができれば、アクションを他の Java コードと同様にデバッグできます。
実行時によくある問題として、アクティブ・ヘルプを起動するスレッドから UI コードへの不完全なアクセスが挙げられます。 ライブ・ヘルプ・アクションが、元は UI スレッドで実行されていたコードを元にしている場合、 これが非 UI スレッドから実行されているという事実に対処するため、変更を加えなければなりません。
public void run() { // Active help does not run on the UI thread, so we must use syncExec Display.getDefault().syncExec(new Runnable() { public void run() { //do the UI work in here; } }); }