Viewer機能をカスタム実装で置き換える
Viewerのカスタマイズ機能は、JPedalActionHandlerインターフェース を使用して、既存の組み込み機能を独自の実装に置き換えることまで拡張されています。
以下では、JPedalActionHandlerを実装し、Viewerに組み込んで既存の機能を置き換える方法について説明します。
JPedalActionHandlerには、リンクされたコマンドがトリガーされたときに呼び出される単一のメソッドが含まれています。
public void actionPerformed(SwingGUI currentGUI, Commands commands);
このメソッドは、すべてのGUIコンポーネントとコントロールを保持するSwingGUIのコピーと、Viewer APIでコマンドをトリガーできるCommandsを受け取ります。
このメソッド内で、指定されたコマンドに対するカスタムハンドリングを記述します。
例えば、以下はシステムのデフォルトブラウザでカスタムURLを開く実装です。
JPedalActionHandler helpAction = new JPedalActionHandler() {
public void actionPerformed(SwingGUI currentGUI, Commands commands) {
try {
java.awt.Desktop.getDesktop().browse(new URI(("https://example.com/")));
} catch (final Exception e) {
LogWriter.writeLog("Exception attempting launch browser: " + e);
}
}
};
JPedalActionHandler実装を作成したら、Viewer.addExternalHandler(Object newHandler, int type)を使用してViewerに渡す必要があります。
Viewerでは2種類のExternal Handlerを使用できます。FormsActionHandlerとJPedalActionHandlerで、これらはorg.jpedal.external.Options クラスで提供されているint値を使用して指定できます。
Map入力は、実装したいすべてのJPedalActionHandlerのマップであり、キーは置き換えたいCommandの整数値 です。
上記の例を続けると、JPedalActionHandler実装でCommands.HELPアクションを次のように置き換えることができます。
Map actions = new HashMap();
actions.put(new Integer(Commands.HELP), helpAction);
viewer.addExternalHandler(actions, Options.JPedalActionHandler);
