- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
org.eclipse.ui.IWorkbenchPreferencePage はウィンドウ >> 設定 にある設定ダイアログを表すインターフェースです。実際はorg.eclipse.jface.preference.FieldEditorPreferencePage をextendsして使うのが多いようです。
#contents
***拡張ポイント [#p618a200]
org.eclipse.ui.preferencePages
***plugin.xmlのサンプル [#n4e5a3ab]
<extension point="org.eclipse.ui.preferencePages">
<page
class="kino.plugin.samples.preferences.ExplorerPreferencePage"
name="KinoExplorer設定"
id="kino.plugin.samples.preferences.ExplorerPreferencePage"/>
</extension>
***ポイント [#d07fd6dc]
使い方は
-フィールドに定数を定義
public static final String P_TARGET = "stringPreference";
-createFieldEditorsをオーバーライドして、設定画面を作成する
addField(new StringFieldEditor
(P_TARGET, "&Target:", getFieldEditorParent()));
-initializeDefaultsをオーバーライドして、初期値を指定する。
private void initializeDefaults() {
IPreferenceStore store = getPreferenceStore();
store.setDefault(P_TARGET, "hoge");
}
これで以下のようなダイアログが作成されます。簡単ですね。
#ref(preference.png)
設定した値へのアクセス方法は、設定値を用いたい箇所でそれぞれ、
String target = SamplePlugin.getDefault().getPreferenceStore()
.getString(ExplorerPreferencePage.P_TARGET);
とすればよいようです。ながい。。
このままだと一度設定を開かないとデフォルト値が反映されないので、どこかでインスタンスを生成しておかないといけないのですが、そのフックメソッドはプラグインクラスにありました。AbstractUIPluginのサブクラスで、
protected void initializeDefaultPreferences(IPreferenceStore store) {
ExplorerPreferencePage pref = new ExplorerPreferencePage();
store = pref.getPreferenceStore();
super.initializeDefaultPreferences(store);
}
としておけばOKです((Eclipse3.0からdeprecatedみたいで、AbstractUIPlugin#initializeDefaultPluginPreferences()を呼ぶ必要があるみたい。))。
----
この記事は
#vote(おもしろかった,そうでもない)
-このままだと一度設定を開かないとデフォルト値が反映されないなぁ -- [[きの]] &new{2004-12-20 (月) 11:43:06};
-initializeDefaultPreferencesを呼ぶんですね -- [[きの]] &new{2004-12-27 (月) 00:14:49};
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}