モジュール java.desktop
パッケージ javax.imageio

インタフェースIIOParamController


public interface IIOParamController
GUIを使用してユーザーから値を取得するか、またはほかの手段によって、IIOParamオブジェクトの設定値を判定できるオブジェクトにより実装されるインタフェースです。 このインタフェースは、コントローラを呼び出すジェネリックactivateメソッドを指定するだけであり、コントーラが値を取得する方法については考慮しません。つまり、コントローラがGUIを使用するか、一連の値を計算するだけかどうかは、このインタフェースには関係ありません。

activateメソッド内で、コントローラはIIOParamオブジェクトのgetメソッドに照会して初期値を取得し、何らかの方法で値を変更してIIOParamオブジェクトのsetメソッドを呼び出し、適切な設定に変更します。 通常、これらのsetメソッドは、取消し操作が既存の値に影響しないように最終確定時に一度に呼び出されます。 一般に、アプリケーションはactivateメソッドがtrueを返す場合、IIOParamオブジェクトが読み込みまたは書込み操作に使用する準備ができていると見なすことがあります。

ベンダーは、特定のプラグインを定義するIIOParamサブクラスのためのGUIを提供できます。 これらは、対応するIIOParamサブクラスにデフォルト・コントローラとして設定できます。

アプリケーションは、デフォルトのGUIをオーバーライドして、アプリケーション自体のフレームワークに組み込まれたコントローラを提供できます。 ここで必要なのは、 activateメソッドが取り消しあるいは確定操作が行われるまでは返さずに、モーダルに動作することだけです。ただし、モーダル・ダイアログを明示的に表示する必要はありません。 このようなモーダルではないGUIコンポーネントは、おおよそ次のようにコーディングされます。

 class MyGUI extends SomeComponent implements IIOParamController {

    public MyGUI() {
        // ...
        setEnabled(false);
    }

    public boolean activate(IIOParam param) {
        // disable other components if desired
        setEnabled(true);
        // go to sleep until either cancelled or committed
        boolean ret = false;
        if (!cancelled) {
            // set values on param
            ret = true;
        }
        setEnabled(false);
        // enable any components disabled above
        return ret;
    }
 

また、データベース・ルックアップまたはコマンド行の解析などのアルゴリズム・プロセスを、コントローラとして使用することもできます。この場合、activateメソッドは、設定を検索するか計算を行うだけで、IIOParam.setXXXメソッドを呼び出してtrueを返します。

関連項目: