ユーザー定義エディターの外観と機能を定義するために、Java™ コードを作成します。
始める前に:コード・プロジェクトと Java クラスを作成します。 ユーザー定義エディターを構成するときに、ユーザー定義エディターのコード・プロジェクトとサンプル Java クラスを作成できます。
ユーザー定義エディターの構成を参照してください。
ユーザー定義エディター用コードの作成に必要な Java インターフェースについての参照情報をお読みください。
ユーザー定義エディターでの Java インターフェースを参照してください。
使用する Java クラスの中で、ユーザー定義エディター用の Java コードを入力します。 エディターの構成時に Java クラスおよびコード・プロジェクトをユーザー定義エディターに割り当てる必要があります。
ユーザー定義エディターの構成を参照してください。 パターン・ユーザーはパターン・インスタンス・エディターを使用して、ユーザー定義パターンのインスタンスを編集します。 ユーザー定義エディターのコードは 2 つの Java インターフェース (
PatternPropertyEditor および
PatternPropertyEditorSite) を使用して、パターン・インスタンス・エディターに値を渡したり、値を受け取ったりします。
これらのインターフェース内でメソッドをオーバーライドするコードを作成する必要があります。
ユーザー定義エディター・コードによって例外がスローされた場合、その例外がキャッチされて、自動的に開く「パターン・インスタンス・エディターの例外」ウィンドウに表示されます。
ユーザー定義エディターのコードを作成するには、次のようにします。
- メイン・ユーザー定義エディター・クラスのコードを作成します。 以下の点に留意してください。
- パターン・ユーザーがユーザー定義パターンのインスタンスを開いたとき、ユーザー定義エディターのメイン・クラスが作成されます。
- ユーザー定義エディターは BasePatternPropertyEditor スーパークラスを拡張する必要があります。
- メイン・クラスは、引数のないデフォルト・パブリック・コンストラクターを提供する必要があります。
- メイン・ユーザー定義エディター・クラスで、configureEditor() メソッドをオーバーライドするコードを作成します。 このメソッドは、作成後のユーザー定義エディターをセットアップするために使用されます。 以下の点に留意してください。
- configureEditor() メソッドは、PatternPropertyEditorSite オブジェクト、ブール値、およびストリング値を受け入れます。 これらの値はパターン・インスタンス・エディターから自動的に渡されます。
- PatternPropertyEditorSite オブジェクトは、ユーザー定義エディター・コードとパターン・インスタンス・エディターの間のインターフェースとして機能します。 ユーザー定義エディター・コード内の任意の場所で、getSite() メソッドを使ってこのオブジェクトにアクセスできます。
- ブール値は、ユーザー定義エディターのパターン・パラメーターに必須というフラグが設定されているかどうかを示します。 設定されている場合、パターン・パラメーターの値をコードで設定する必要があります。
- ストリング値には、ユーザー定義エディターの構成時に入力される構成値が含まれます。 必要に応じて、エディター・コードで値を使用するためにこのストリングを解析するコードを作成できます。
- configureEditor() メソッドの中で、スーパークラスの configureEditor() を呼び出し、(configureEditor() メソッドに渡された) PatternPropertyEditorSite オブジェクト、ブール値、およびストリング値を渡します。
以下に例を示します。
@Override
public void configureEditor(PatternPropertyEditorSite site, boolean required, String configurationValues) {
super.configureEditor(site, required, configurationValues);
}
- メイン・ユーザー定義エディター・クラスで、createControls() メソッドをオーバーライドするコードを作成します。 このメソッドは、ユーザー定義エディターのコントロールを定義するために使用されます。 以下の点に留意してください。
- createControls() メソッド内でコントロールを作成することができます。または、コントロール用の 1 つ以上の新規クラスを作成して createControls() メソッドからこれらの新規クラスをインスタンス化することもできます。
- パターン・パラメーターの値が変更されたときには、PatternPropertySite オブジェクトでの valueChanged() メソッドの呼び出しを行う必要があります。 この呼び出しにより変更通知を受け取ったパターン・インスタンス・エディターは、このパターン・パラメーターを使用する XPath 式またはユーザー定義エディターをすべて更新します。 getSite() メソッドを使用して、ユーザー定義エディターの PatternPropertySite オブジェクトにアクセスできます。例えば PatternPropertyEditorSite site = getSite() と指定できます。
- createControls() メソッドでは、コントロールのリスナーを定義する前にコントロールを初期化する必要があります。
- メイン・ユーザー定義エディター・クラスで、setValue() メソッドをオーバーライドするコードを作成します。 このメソッドを使用して、ユーザー定義エディターの初期値を設定します (例えばパターン・パラメーターのデフォルト値をテキスト・ボックスに取り込みます)。 setValue() メソッドは、パターン・パラメーターの現行値であるストリング値を受け入れます (パターン・インスタンス・エディターからこれが自動的に渡されます)。 パターン・インスタンス・エディターから渡される値は、パラメーターのデフォルト値、またはパターン・インスタンスの構成後に保存された値です。
- メイン・ユーザー定義エディター・クラスで、getValue() メソッドをオーバーライドするコードを作成します。 このメソッドは、パターン・パラメーターの値をパターン・インスタンス・エディターに提供するために使われます。
getValue() メソッドは、valueChanged() メソッドの呼び出し後に自動的に呼び出されます。
- メイン・ユーザー定義エディター・クラスで、setEnabled() メソッドをオーバーライドするコードを作成します。 このメソッドは、ユーザー定義エディターを有効/無効にするために使用されます。 有効化 XPath 式によってパターン・パラメーターが有効/無効のどちらに設定されているかを示すブール値が、パターン・インスタンス・エディターから setEnabled() メソッドに渡されます。 パラメーターが有効である場合、値は true です。
パラメーターが無効である場合、値は false です。
- オプション: メイン・ユーザー定義エディター・クラスで、isValid() メソッドをオーバーライドするコードを作成します。
このメソッドを使用して、エディターの入力項目を妥当性検査し、必要に応じてパターン・インスタンス・エディターにエラー・メッセージを返します。 エラー・メッセージは、パターン・インスタンス・エディターでパターン・ユーザーに対して表示されます。
- オプション: メイン・ユーザー定義エディター・クラスで、notifyChanged() メソッドをオーバーライドするコードを作成します。
このメソッドを使用して、ユーザー定義パターンでの他のパラメーターからの変更通知を扱い、必要に応じてパターン・パラメーターの値またはエディターの動作を変更します。 notifyChanged() メソッドは、変更されたパラメーターを示すパラメーター ID と、そのパラメーターの新しい値を受け入れます。
ユーザー定義エディター用の以下の Java コード例をご覧ください。
次に行う事柄:ユーザー定義エディターをまだ構成していない場合は、ユーザー定義エディターの構成を参照してください。