我有一个RCP应用程序,当RCP作为应用程序运行时,我需要在首选项页面中将某些值设置为默认值。我需要隐藏快速视图栏和某些菜单,这就是为什么我需要从首选项页面设置这些设置的原因。如何在Eclipse RCP应用程序中为首选项设置默认值
我的应用程序还不是产品,所以我不能使用plugin_customization.ini文件进行更改。
任何人都可以告诉我一种方法来通过偏好页面或任何其他方式以编程方式更改默认值?
我有一个RCP应用程序,当RCP作为应用程序运行时,我需要在首选项页面中将某些值设置为默认值。我需要隐藏快速视图栏和某些菜单,这就是为什么我需要从首选项页面设置这些设置的原因。如何在Eclipse RCP应用程序中为首选项设置默认值
我的应用程序还不是产品,所以我不能使用plugin_customization.ini文件进行更改。
任何人都可以告诉我一种方法来通过偏好页面或任何其他方式以编程方式更改默认值?
您可以使用扩展点org.eclipse.core.runtime.preferences
<extension
point="org.eclipse.core.runtime.preferences">
<scope name="SamplePreferencePage" class="com.example.SamlePreferencePage"/>
<initializer
class="com.example.PreferenceInitializer">
</initializer>
</extension>
定义扩展点为您偏好页面,该页面的初始化类:
一个例子首选项页面实现可能看起来像:
public class MyPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public static final String PREF_USE_METRIC_UNITS = "PREF_USE_METRIC_UNITS";
public static final String PREF_AUTO_UPDATE = "PREF_AUTO_UPDATE";
public static final String PREF_USER_FILES_DIR = "PREF_USER_FILES_DIR";
public static final String PREF_FAVORITE_ANIMAL = "PREF_FAVORITE_ANIMAL";
public MyPreferencePage() {
super(GRID);
}
public void createFieldEditors() {
Composite parent = getFieldEditorParent();
addField(new BooleanFieldEditor(PREF_USE_METRIC_UNITS, "Use &metric units", parent));
addField(new BooleanFieldEditor(PREF_AUTO_UPDATE, "&Auto update", parent));
addField(new DirectoryFieldEditor(PREF_USER_FILES_DIR, "User files &path:", parent));
addField(new StringFieldEditor(PREF_FAVORITE_ANIMAL, "Favorite &animal:", parent));
}
public void init(IWorkbench workbench) {
setPreferenceStore(Plugin.getPlugin().getPreferenceStore());
}
}
然后你设置你的AbstractPreferenceInitializer类实际的默认值:
public class MyPreferenceInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
IPreferenceStore store = Plugin.getPlugin().getPreferenceStore();
store.setDefault(MyPreferencePage.PREF_USE_METRIC_UNITS, true);
store.setDefault(MyPreferencePage.PREF_AUTO_UPDATE, false);
String userHome = System.getProperty("user.home");
String defaultPath = userHome + "\\Local Settings\\Temp\\";
store.setDefault(MyPreferencePage.PREF_USER_FILES_DIR, defaultPath);
store.setDefault(MyPreferencePage.PREF_FAVORITE_ANIMAL, "platypus");
}
}
我使用这个扩展点,但我不知道偏好名字来设置它的值当我使用setValues(String PreferenceName,布尔值) – Shereen 2012-08-02 09:15:58
如果我想隐藏快速查看酒吧布尔由true我应该写为偏好名称? – Shereen 2012-08-02 09:17:09
这是您的应用程序的首选项;你可以随心所欲地调用它。称之为“HideFastViewBar”。 – stracka 2012-08-02 15:24:50