2016-04-06 22 views
1

Küresel düzeyde tercihlerin Proje düzeyinde nasıl depolanabileceği konusunda POC yapıyorum.Genel tercihler proje düzeyinde nasıl depolanır

MyPreferencePage sayfasını oluşturduğum örnek uygulamayı oluşturdum ve bu sayfayı eclipse tercihlerine eklemek için org.eclipse.ui.preferencePages uzantısını kullandım.

Ayrıca sayfa verilerini kaydedip setPreferenceStore(Activator.getDefault().getPreferenceStore()) kodunu kullanarak da alabiliyorum. Artık proje özellikleri düzeyi altında yeni sayfa oluşturmak ve sayfa değerlerini proje düzeyinde depolamak istiyorum.

MyPreferencePage ve preferencePages uzantısının kodu aşağıdadır.

<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"); 
} 

cevap

0

Sen setPreferenceStore geçirilen tercih deposu olarak proje için bir ScopedPreferenceStore kullanabilirsiniz. Bu şekilde oluşturun:

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

nerede project projesi için IProject olduğunu.

İlgili konular