Levér indstillingsside

Udvidelsespunktet org.eclipse.ui.preferencePages gør det muligt for dig at levere sider til dialogboksen med generelle indstillinger (Vindue > Indstillinger). Indstillingsdialogboksen præsenterer en hierarkisk liste over brugerindstillingsindgange. Hver indgang viser en tilsvarende indstillingsside, når den vælges.

Readme-værktøjet bruger dette udvidelsespunkt til at tilføje Readme-eksemplets indstillingsside.

   <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>

Denne kode definerer en indstillingsside med navn "Readme-eksempel", som implementeres af klassen ReadmePreferencePage. Klassen skal implementere grænsefladen IWorkbenchPreferencePage.

Arbejdsbænken bruger kerne-runtime's indstillingsmekanismer til at få adgang til alle noderne i indstillingstræstrukturen og deres tilsvarende sider. Denne liste kan initialiseres fra oplysninger i indstillingsserviceprogrammet uden at nogen plugin-kode udføres.

Arbejdsbænkens indstillingsside

Indstillingen "Readme-eksempel" tilføjes til det øverste niveau af indstillingstræstrukturen til venstre. Hvorfor?Fordi leveringen af en indstillingsside tilføjes til træstrukturen som en rod, medmindre der er angivet en category-attribut. (Navnet category er lidt misvisende. Et bedre navn er muligvis sti.) Attributten category angiver id'en (eller en id-sekvens fra roden) til den overordnede side. Følgende kode opretter f.eks. en yderligere indstillingsside til readme-værktøjet, "Readme-eksempel - underordnet side", som er underordnet i forhold til den oprindelige side.

   <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-eksempel - underordnet side"
         category="org.eclipse.ui.examples.readmetool.Page1>
         </page>
</extension>   

Når brugeren vælger indgangen for en indstillingsside i træstrukturen til venstre, opretter og viser arbejdsbænken en indstillingsside vha. den klasse, der er angivet i definitionen af udvidelsen. Denne funktion er det, som aktiverer plugin'en (hvis den ikke allerede er aktiveret pga. en anden brugerhandling).