# preference page plugin



## noisebreath (13. Apr 2009)

hi,

ich hab mal den extension wizard preference page eingebunden und hab den code unten in die ...PreferencePage.Java reingeschrieben. Nun hab ich auch meinen Menüeintrag, aber die Preferencepage ist voll mit lauter punkten, die aber hier gar nicth von mir angegeben sind. Die meisten Punkte haben auch wieder einige unterpunkte. So auf den ersten Blick kann ich keins meiner unten erzeugten dinge erkennen. auch der titel der preference page ist ein Preferences und nicht wie im code angegeben "A demonstration of a preference page implementation". Ich habe irgendwie den Verdacht, dass es die Eclipse interne Preference page ist auch wenn sie ein wenig anders Strukturiert ist (fängt zum beispiel mit "Ant" an anstatt mit "General"). das heisst er lädt vielleicht an der stelle "setPreferenceStore(Activator.getDefault().getPreferenceStore());" irgendwie die pref_store.ini von eclipse?! Einer ne Ahnung was ich hier falsch mache?




```
public class SamplePreferencePage
	extends FieldEditorPreferencePage
	implements IWorkbenchPreferencePage {

	public SamplePreferencePage() {
		super(GRID);
		setPreferenceStore(Activator.getDefault().getPreferenceStore());
		System.out.println("aaaaaa");
		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) {
	}
	
}
```

2. sache die mich freakt ist wo wird denn eigentlich jemals die class SamplePreferencePage erzeugt?
passiert das implizit irgendwo und man siehts nicht im code? jedenfalls gibt er mir beim konstruktor das system.out nicht aus...

lg
noise


----------



## Vayu (15. Apr 2009)

ich gehe mal davon aus, dass du ein plugin und keine RCP baust, richtig?

wenn du in deiner target platform auch plugins lädst, die ebenfalls eine preferencepage registriert haben werden die nunmal auch mit geladen und unter preferences angezeigt.
Das Ant plugin zum beispiel wird mit in deiner run config drin sein, deswegen siehst du auch die prefpage dafür.

Wenn jetzt die von dir generierte prefpage nicht zu sehen ist, wird noch irgendwas in der initialisierung schief laufen, da müsstest dann halt mal durchdebuggen.

und noch was  das setzen des pref stores und des titels würde ich in der init()-methode machen, dafür ist die da.


----------



## noisebreath (18. Apr 2009)

ok ich habs korrigiert. 
wie kann ich eigentlich unterpunkte machen? 
also so nachdem motto:

+Preference Page
|__Next Preference page


----------



## noisebreath (19. Apr 2009)

man muss als categorie die preference page angeben die man als parent will..


----------

