Editionをインストールする。他のエディタStringFieldEditorなどエディタクラスを自作する設定画面の変更をリスナに通知したい。ある設定ページを表すインターフェースです。extendsして使うのが多いようです。setDescription("Hsqldbに接続するための設定を行います。起動しているサーバは停止されます。上のようにクラスを定義しておくと、実際に設定ページで設定した値には以下のようにアクセスすることができます。†さて、初期値(画面のsaとか9001とか)の設定は、別の拡張ポイントorg.eclipse.core.runtime.preferencesを使用します。この拡張ポイントに登録したクラスはプラグインの活性化時にロードされるので、その中で初期値をセットすればよいわけです。拡張ポイントは以下のように設定しました。HsqldbPreferenceInitializer"/></extension>この拡張ポイントのJavaのクラスはorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;です。このクラスを拡張する、以下のようなクラスを作りました。}}これで、プラグインが活性化されるときに上のメソッドが実行され、フィールドに初期値が設定されます。この初期値ははじめて設定ページを開いたときに表示されるのはもちろん「デフォルトの復元」などをクリックしたときもこの初期値に戻ります。†IPreferencePage?#performOk()をOverrideします。StringFieldEditor?の他にも以下のようなモノがあります。このリターンする値に、テキストボックスを変更する。nullを返せば、何もしないらしい。}}例2たとえばURLの一覧を入力するフィールドエディタを作ってみました。既存のListEditor?をextendsして作ります。ユーザ入力値を受け取るメソッドです。入力された文字列を返します。キャンセルしたときなどはnullが返ります。ページ内でリストを表示するときにStringからString[]に変換して表示文字列を取得するメソッド。プリファレンスページで保存処理が行われたときに呼ばれるメソッドです。表示されているリスト。URLを入力するダイアログを描画します。label.setText("URLを入力してください。設定画面の変更をリスナに通知したい。設定画面で値を変更すると、イベントが発生します。そのイベントをListenするリスナーはorg.eclipse.jface.util.IPropertyChangeListenerです。イベントを発生させるクラス*1はorg.eclipse.jface.preference.IPreferenceStoreです。従って、以下のようなコーディングで設定画面をListenすることができます。});HogePlugin?は設定画面を作成したときに、setPreferenceStore(HogePlugin.getDefault().getPreferenceStore());というように、その設定画面と関連づけられたプラグインクラスです。発生したイベントのクラスはorg.eclipse.jface.util.PropertyChangeEventというモノで、このイベントクラスからはevent.getSource():イベントを発生させたモノevent.getNewValue?():変更後の値event.getOldValue?():変更前の値event.getProperty():変更したフィールドのキー値などのようにデータを取り出すことができます。ちなみにこのイベントは、フィールドごとに発生します。拡張ポイントを使用します。name="設定画面。↑keyword拡張ポイントのid</extension>として設定画面に関連づけします。入れてフィルタすることができます。Eclipseを使う場合は関係ないけど、このダイアログ自体を自分で作成することもできます。ワークベンチがまだ起動していないけど、設定画面を出したいとか、そんなときにも使えそうですね。00:14:49Eclipse2.1のときのはなしです。