1

私の Eclipse 3.7 RCP アプリケーションでは、次のように PreferenceStore を取得していまし Activator.getDefault().getPreferenceStore()IPreferenceStore。ここでは、Activator 独自の設定ストレージが使用されます。

ScopedPreferenceStoreここで、いずれかのインスタンスを使用したいと思いIPreferenceStoreます。
これで、コンストラクターでプラグイン ID を修飾子パラメーターとして渡すことにより、優先ストレージノードを明示的に設定する必要がありますScopedPreferenceStore(IScopeContext context, String qualifier)

例:
ScopedPreferenceStore(ConfigurationScope.INSTANCE, "com.example.myplugin.id")

質問:
Activator 独自の設定ストレージ修飾子を取得するにはどうすればよいですか? ScopedPreferenceStoreつまり、 Activator 自身の設定ストレージに設定を保存する を作成するにはどうすればよいですか?

4

1 に答える 1

2

アクティベーター自体にアクセスせずにバンドルと同等の設定ストアを取得する場合は、リストしたものと同じパターンを使用します。

preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, "your.bundle.id");

編集:バンドルIDを見つける

eclipseがバンドルアクティベーターを自動生成すると、バンドルIDを使用して静的フィールドが作成されます。ただし、アクティベーターがない場合でも、バンドルIDを取得できます。を使用して、任意のクラスからオブジェクトFrameworkUtilを取得できます。Bundle

import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;

final Bundle bundle = FrameworkUtil.getBundle(PrintIdHandler.class);
System.out.println(bundle.getSymbolicName());
于 2012-06-20T11:57:47.533 に答える