Preference pages will be appear Window>Preferences dialog. It can be used to configure different features from once place. Eclipse Preferences is kind of registry of configurations.
e.g.:
As you see here are the various configuration ( preferences ) for Java, Ant, etc.
org.eclipse.ui.preferencePages extension has to be added to in the plug-in manifest editor for Preference Pages.
Once you add the extension, the following will be the structure:
Following is the implementation of SamplePreferencePage.java
SamplePreferencePage.java
packagetrial.preferences;importorg.eclipse.jface.preference.BooleanFieldEditor;importorg.eclipse.jface.preference.DirectoryFieldEditor;importorg.eclipse.jface.preference.FieldEditorPreferencePage;importorg.eclipse.jface.preference.RadioGroupFieldEditor;importorg.eclipse.jface.preference.StringFieldEditor;importorg.eclipse.ui.IWorkbench;importorg.eclipse.ui.IWorkbenchPreferencePage;importorg.eclipse.ui.PlatformUI;/** * This class represents a preference page that * is contributed to the Preferences dialog. By * subclassing <samp>FieldEditorPreferencePage</samp>, we * can use the field support built into JFace that allows * us to create a page that is small and knows how to * save, restore and apply itself. * <p> * This page is used to modify preferences only. They * are stored in the preference store that belongs to * the main plug-in class. That way, preferences can * be accessed directly via the preference store. */publicclassSamplePreferencePageextendsFieldEditorPreferencePageimplementsIWorkbenchPreferencePage {publicSamplePreferencePage() { super(GRID);setPreferenceStore(PlatformUI.getPreferenceStore());setDescription("A demonstration of a preference page implementation"); } /** * Creates the field editors. Field editors are abstractions of * the common GUI blocks needed to manipulate various types * of preferences. Each field editor knows how to save and * restore itself. */publicvoidcreateFieldEditors() {addField(new DirectoryFieldEditor(PreferenceConstants.P_PATH,"&Directory preference:", getFieldEditorParent()));addField(new BooleanFieldEditor(PreferenceConstants.P_BOOLEAN,"&An example of a boolean preference", getFieldEditorParent()));addField(new RadioGroupFieldEditor(PreferenceConstants.P_CHOICE,"An example of a multiple-choice preference",1,newString[][] { { "&Choice 1","choice1" }, {"C&hoice 2","choice2" } }, getFieldEditorParent()));addField(new StringFieldEditor(PreferenceConstants.P_STRING,"A &text preference:", getFieldEditorParent())); }/* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) */publicvoidinit(IWorkbench workbench) { }}
Following is the code for PreferenceConstants.java
packagetrial.preferences;importorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;importorg.eclipse.jface.preference.IPreferenceStore;importorg.eclipse.ui.PlatformUI;/** * Class used to initialize default preference values. */publicclassPreferenceInitializerextendsAbstractPreferenceInitializer {/* * (non-Javadoc) * * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() */publicvoidinitializeDefaultPreferences() {IPreferenceStore store =PlatformUI.getPreferenceStore();store.setDefault(PreferenceConstants.P_BOOLEAN,true);store.setDefault(PreferenceConstants.P_CHOICE,"choice2");store.setDefault(PreferenceConstants.P_STRING,"Default value"); }}
Once you run the Application as Eclipse Application post the above configuration, following will be the preference page:
Getting and Setting Preferences
Preferences for a plug-in are stored in an org.eclipse.jface.preference.IPreferenceStore object. You can access a plug-ins preference through the Activator