さて、ここではプラグインが使用する設定値の保存とリストアを実装します。このサイトでも
などでちょっとサンプルがあります。
目的は
String myGoogleKey = GooglePlugin.getDefault().getPreferenceStore() .getString(PreferenceConstants.GOOGLE_KEY);
などとしてプラグインの設定情報を取得することです。
基本的には
を作成することになります*1。
まずは初期値を設定するための拡張ポイントと実装クラスを作成します。 この拡張ポイントのplugin.xmlの記述は以下のようになりました。
<extension point="org.eclipse.core.runtime.preferences"> <initializer class="nu.mine.kino.plugin.google.ui. initializer.GooglePreferenceInitializer"/> </extension>
実装クラスは以下の通り:
package nu.mine.kino.plugin.google.ui.initializer; import nu.mine.kino.plugin.google.ui.GooglePlugin; import nu.mine.kino.plugin.google.ui.preferences.PreferenceConstants; import org.apache.log4j.Logger; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.jface.preference.IPreferenceStore; public class GooglePreferenceInitializer extends AbstractPreferenceInitializer { private static final Logger logger = Logger .getLogger(GooglePreferenceInitializer.class); public void initializeDefaultPreferences() { logger.debug("initializeDefaultPreferences() - start"); IPreferenceStore store = GooglePlugin.getDefault().getPreferenceStore(); logger.debug(store); store.setDefault(PreferenceConstants.GOOGLE_KEY, ""); // ↑ここで初期値を設定している logger.debug(GooglePlugin.getDefault().getPreferenceStore().getString( PreferenceConstants.GOOGLE_KEY)); logger.debug("initializeDefaultPreferences() - end"); } }
最後に設定画面を作成します。設定画面は
org.eclipse.ui.preferencePages
拡張ポイントと、その実装クラスを作成します。
拡張ポイントの記述は以下の通り:
<extension point="org.eclipse.ui.preferencePages"> <page class="nu.mine.kino.plugin.google.ui.preferences.GooglePreferencePage" name="Google検索" id="nu.mine.kino.plugin.google.ui.preferences.GooglePreferencePage"/> </extension>
実装クラスは以下の通り:
package nu.mine.kino.plugin.google.ui.preferences; import nu.mine.kino.plugin.google.ui.GooglePlugin; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; public class GooglePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public GooglePreferencePage() { super(GRID); // 実際のKey,Valueを格納する、PreferenceStoreを設定。 setPreferenceStore(GooglePlugin.getDefault().getPreferenceStore()); setDescription("Google検索時のキーを設定します"); } protected void createFieldEditors() { { addField(new StringFieldEditor(PreferenceConstants.GOOGLE_KEY, "&Google Key:", getFieldEditorParent())); } } public void init(IWorkbench workbench) { } }
この記事は
現在のアクセス:10719