Met behulp van het extensiepunt
org.eclipse.ui.preferencePages kunt u pagina's toevoegen aan het algemene voorkeurendialoogvenster (
Venster > Voorkeuren). Het voorkeurendialoogvenster bevat een hiërarchische lijst met items van gebruikersvoorkeuren.
Elk item geeft bij selectie de bijbehorende voorkeurenpagina weer.
Door de readme-tool wordt dit extensiepunt gebruikt om de voorkeurenpagina van het readme-voorbeeld toe te voegen.
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> </extension>
Deze markup definieert een voorkeurenpagina met de naam "Readme Example", die is geïmplementeerd door de klasse ReadmePreferencePage. De klasse moet de interface IWorkbenchPreferencePage implementeren.
De workbench gebruikt de coreruntime-voorkeursmechanismen om toegang te krijgen tot alle boomstructuurknooppunten met voorkeuren en de bijbehorende pagina's. Deze lijst kan worden geïnitialiseerd met behulp van de gegevens in de voorkeurenservice zonder dat de plugincodering verwerkt hoeft te worden.
De "Readme Example"-voorkeur wordt aan het bovenste niveau van de voorkeurenboom aan de linkerkant toegevoegd. Waarom? Omdat de aanlevering van een voorkeurenpagina als hoofddirectory van de boomstructuur wordt toegevoegd, tenzij een category-kenmerk wordt opgegeven. (De naam categorie is eigenlijk misleidend. Misschien is de naam pad beter.) Met het kenmerk category wordt het ID (of een reeks ID's van de hoofddirectory) van de bovenliggende pagina aangegeven. Met de volgende markup wordt bijvoorbeeld een tweede voorkeurenpagina gemaakt voor de readme-tool "Readme Example Child Page," als onderliggend item van de oorspronkelijke pagina.
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> <page id="org.eclipse.ui.examples.readmetool.Page2" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage2" name="Readme Example Child Page" category="org.eclipse.ui.examples.readmetool.Page1> </page> </extension>
Wanneer de gebruiker een invoer aan de linkerkant van de boomstructuur heeft gekozen voor een voorkeurenpagina, maakt de workbench een voorkeurenpagina en geeft deze weer met behulp van de klasse die is opgegeven in de extensiedefinitie. Deze actie activeert de plugin (als deze nog niet geactiveerd was vanwege een andere bewerking).