我有一個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