// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。


さて、ここではプラグインが使用する設定値の保存とリストアを実装します。このサイトでも
-[[org.eclipse.ui.IWorkbenchPreferencePage(設定ページ)>Eclipse/プラグイン開発のTIPS集/org.eclipse.ui.IWorkbenchPreferencePage(設定ページ)]]
-[[IPreferenceStoreのサンプル:http://kino.mine.nu/pukiwiki/index.php?Eclipse%2F%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%B3%AB%C8%AF%A4%CETIPS%BD%B8#r83fa929]]
-[[IPreferenceStoreのサンプル:http://www.masatom.in/pukiwiki/index.php?Eclipse%2F%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%B3%AB%C8%AF%A4%CETIPS%BD%B8#r83fa929]]

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

目的は
 String myGoogleKey = GooglePlugin.getDefault().getPreferenceStore()
               .getString(PreferenceConstants.GOOGLE_KEY);
などとしてプラグインの設定情報を取得することです。

基本的には
-UIプラグインごとに存在する、設定を保存する箱となる org.eclipse.jface.preference.IPreferenceStore インターフェース
-上の箱に値を設定するためのダイアログを形成するorg.eclipse.ui.IWorkbenchPreferencePage インターフェース
-初期値を設定するための拡張ポイント org.eclipse.core.runtime.preferences

を作成することになります((IPreferenceStoreは作成しないけど))。


***org.eclipse.core.runtime.preferences [#r6a0d150]
まずは初期値を設定するための拡張ポイントと実装クラスを作成します。
この拡張ポイントの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 [#u2db184c]


***org.eclipse.ui.IWorkbenchPreferencePage [#t9d47523]
最後に設定画面を作成します。設定画面は
 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) {
   }
 
 }


***スクリーンショット [#reecb6fd]
#ref(preference.png)





----
この記事は
#vote(おもしろかった,そうでもない)
#vote(おもしろかった[7],そうでもない[1])
-できればjavaのエディタからコントロールを押下しながら文字列を見るとハイパーリンクのような動作を実装方法をいれてほしい -- [[kawashima]] &new{2006-07-20 13:42:07 (木)};

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


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