Skip to main content

Preferences in Eclipse RCP

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.





Sample Preference in Eclipse

org.eclipse.ui.preferencePages extension has to be added to in the plug-in manifest editor for Preference Pages.





Extension point for PreferencePages

Once you add the extension, the following will be the structure:



Extensions post adding PreferencePages
Following is the implementation of SamplePreferencePage.java
SamplePreferencePage.java
package trial.preferences;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.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.
*/
public class SamplePreferencePage
extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
public SamplePreferencePage() {
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.
*/
public void createFieldEditors() {
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,
new String[][] { { "&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)
*/
public void init(IWorkbench workbench) {
}
}
Following is the code for PreferenceConstants.java
PreferenceConstants.java
package trial.preferences;
/**
* Constant definitions for plug-in preferences
*/
public class PreferenceConstants {
public static final String P_PATH = "pathPreference";
public static final String P_BOOLEAN = "booleanPreference";
public static final String P_CHOICE = "choicePreference";
public static final String P_STRING = "stringPreference";
}
Code for PreferenceInitializer.java
PreferenceInitializer.java
package trial.preferences;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.PlatformUI;
/**
* Class used to initialize default preference values.
*/
public class PreferenceInitializer extends AbstractPreferenceInitializer {
/*
* (non-Javadoc)
*
* @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
*/
public void initializeDefaultPreferences() {
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:








Demo of "Sample Preferences"

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

Comments

Popular posts from this blog

Could not launch the product because the associated workspace is currently in use by another Eclipse application

If you are seeing following error at the beginning of the Eclipse or any RCP based product then here is the solution: Error Message: "Could not launch the product because the associated workspace is currently in use by another Eclipse application." or “Workspace in use or cannot be created chose a different one.” Solution :  go to workspace location remove file <workspace location>/.metadata/.lock Reason: Through eclipse, user can create multiple Workspace locations. One Workspace location can be edited by one user at a time. A workspace contains the data related to various project configuration and local file storage. To avoid multiple users to access the same workspace, eclipse is maintaining a ".lock" file inside the Workspace. Eclipse will remove this ".lock" file when you will close the Eclipse. But in some cases, the Eclipse will crash due to some error, due to which it could not able to remove ".lock" file from...

Cannot complete the install because one or more required items could not be found.

Error While installing Maven in Eclipse Cannot complete the install because one or more required items could not be found.   Software being installed: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)   Missing requirement: Maven POM XML Editor 1.4.0.20130601-0317 (org.eclipse.m2e.editor.xml 1.4.0.20130601-0317) requires 'bundle org.slf4j.api 1.6.2' but it could not be found   Cannot satisfy dependency:     From: Maven Integration for Eclipse (Editors) 1.4.0.20130601-0317 (org.eclipse.m2e.editor 1.4.0.20130601-0317)     To: bundle org.eclipse.m2e.editor.xml [1.4.0,1.5.0)   Cannot satisfy dependency:     From: m2e - Maven Integration for Eclipse 1.4.0.20130601-0317 (org.eclipse.m2e.feature. feature.group 1.4.0.20130601-0317)     To: org.eclipse.m2e.editor [1.4.0.20130601-0317] Solution : 1. Goto : Help -> Install New Software 2. Ad...

how to install window builder in eclipse ?

Before we start working on Eclipse RCP we required the Window builder. Windows builder is not necessary to create the Eclipse RCP application. Using Windowbuilder, designing the RCP application will be more easy and comfortable, so Here I explain the steps to install Window Builder inEclipse environment. It is very easy to add Windw builder plug-in in it. Following are the steps. Goto “help” -> “Install New Software…” Enter following URLs as per the version of the Eclipse : Eclipse 3.7 (Indigo) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7 Eclipse 3.6 (Helios) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6 Eclipse 3.5 (Galileo) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.5 Click on “Next” Click on “Next” Select radio button for “I accept the terms of the license agreements”. Click on Finish. At the end (after installation completes), it will ask to restart the Eclipse. Click on Restart option...