- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#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.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(おもしろかった[3],そうでもない[1])
#vote(おもしろかった[7],そうでもない[1])
-できればjavaのエディタからコントロールを押下しながら文字列を見るとハイパーリンクのような動作を実装方法をいれてほしい -- [[kawashima]] &new{2006-07-20 13:42:07 (木)};
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}