Top / Eclipse / プラグイン開発のTIPS集 / GooglePlugin / 設定を保持するIPreferenceStoreを使う

さて、ここではプラグインが使用する設定値の保存とリストアを実装します。このサイトでも

などでちょっとサンプルがあります。基本的には

を作成することになります*1

org.eclipse.core.runtime.preferences

まずは初期値を設定するための拡張ポイントと実装クラスを作成します。 この拡張ポイントの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.jface.preference.IPreferenceStore?

org.eclipse.ui.IWorkbenchPreferencePage?

最後に設定画面を作成します。設定画面は

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>

実装クラスは以下の通り:

スクリーンショット


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集 / GooglePlugin / 設定を保持するIPreferenceStoreを使う

現在のアクセス:10719


*1 IPreferenceStore?は作成しないけど

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS