それ以外は, このplug-inへの制限はありません.
以下にとても簡単な前処理("superman" を "batman"に置き換える処理)を示します:
public class MyPreprocess extends COM.hugin.HGUI.PreProcess{
public String process(String value){
if(value.equals("superman"))
return "batman";
else
return value;
}
// No we do not provide an interface. If we did, we
// should also implement the getInterface function.
public boolean providesInterface(){
return false;
}
public String getDescription(){
return "Replacing superman with batman";
}
}
providesInterface
関数が真を返す場合,getInterface
関数とstoreValues
関数が実装されていなければなりません.前者は,ユーザーにグラフィカル・インタフェースを提供するためにシステムによって使用され,後者はユーザーがインタフェースに入力した値を格納するために使用されます.つまり,ユーザーが "ok"-ボタンを押すと,
storeValues
が呼ばれます.
process
関数は,ケースごとに1回呼ばれ,できるだけ効率的に実行するために,この関数を書くことが重要です.
ユーザー独自のデータ前処理を追加するには,インストール・ディレクトリの下の"plugins" サブ・ディレクトリにコンパイルされたclassを追加するだけです.すると,Huginグラフィカル・ユーザー・インタフェースは,そのプロセスを自動t系に利用可能なプロセスの一覧に追加します.これらは,前処理の"外部プラグイン”セクションの下にグループ化されます(図1).そして,ユーザー定義前処理が,プルダウン・メニューに現れます.
図 1: プルダウン・メニューから利用できる外部データ前処理プラグイン |
Huginグラフィカル・ユーザー・インタフェースには,CapitalizeProcess と ConvertToBooleanの2つの前処理プラグインの事例がついています.これらのソース・コードは,classファイルとともに "plugins"ディレクトリ中にあり, データ前処理plug-in機能のすべての様相をデモします.
翻訳者:多田くにひろ(マインドウェア総研)