2016-04-06 1 views
1

Je fais le POC sur la façon dont les préférences de niveau globales peuvent également être stockées au niveau du projet.Comment stocker les préférences globales au niveau du projet

J'ai créé l'exemple d'application dans lequel j'ai créé la page MyPreferencePage et utilisé l'extension org.eclipse.ui.preferencePages pour ajouter cette page dans les préférences d'éclipse.

Je suis également capable de sauvegarder les données de la page et de les récupérer en utilisant le code setPreferenceStore(Activator.getDefault().getPreferenceStore()). Maintenant, je veux créer une nouvelle page sous le niveau des propriétés du projet et devrait pouvoir stocker les valeurs de la page au niveau du projet. Voici le code pour l'extension MyPreferencePage et preferencePages.

<extension 
point="org.eclipse.ui.preferencePages"> 
<page 
class="com.vogella.preference.MyPreferencePage" 
id="com.vogella.preference.page1" 
name="MyPreferencePage"> 
</page> 
</extension> 
public class MyPreferencePage extends FieldEditorPreferencePage implements 
IWorkbenchPreferencePage { 

public MyPreferencePage() { 
super(GRID); 

} 

@Override 
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())); 

addField(new StringFieldEditor(PreferenceConstants.P_STRING, 
"A &text preference:", getFieldEditorParent())); 

} 

@Override 
public void init(IWorkbench workbench) { 
setPreferenceStore(Activator.getDefault().getPreferenceStore()); 
setDescription("A demonstration of a preference page implementation"); 
} 

Répondre

0

Vous pouvez utiliser un ScopedPreferenceStore pour le projet en tant que magasin de préférence passé à setPreferenceStore. Créer comme ceci:

new ScopedPreferenceStore(new ProjectScope(project), "your plugin id"); 

project est le IProject pour le projet.