Le point d'extension org.eclipse.ui.preferencePages vous permet d'ajouter des pages à la boîte de dialogue des préférences du plan de travail (Fenêtre->Préférences). La boîte de dialogue des préférences présente une liste hiérarchique des entrées des préférences utilisateur. Une fois sélectionnée, chaque entrée affiche une page de préférences correspondante.
L'outil readme utilise ce point d'extension pour ajouter la page de préférences Readme Example.
<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>
Ces marques définissent une page de préférences, nommée "Readme Example" qui est implémentée par la classe ReadmePreferencePage. La classe doit implémenter l'interface IWorkbenchPreferencePage.
Le plan de travail utilise PreferenceManager pour maintenir une liste de tous les noeuds dans l'arborescence des préférences et leurs pages correspondantes. Cette liste peut être initialisée à partir des informations du registre de plug-in sans exécuter le code de plug-in. La contribution de votre plug-in à la boîte de dialogue des préférences (l'entrée "Readme Example" à gauche) s'affiche avant qu'une section de votre code ne soit exécutée.
Pourquoi la préférence "Readme Example" est-elle ajoutée au niveau supérieur de l'arborescence des préférences à gauche ? Car une contribution de la page des préférences va être ajoutée en tant que racine de l'arborescence à moins qu'un attribut category ne soit spécifié. (Le nom catégorie est un peu erroné. Il vaudrait sans doute mieux parler de chemin d'accès.) L'attribut category spécifie l'ID (ou une séquence d'ID à partir de la racine) de la page parent. Par exemple, les marques suivantes permettent de créer une seconde page de préférences de l'outil readme, "Readme Example Child Page" comme enfant de la page d'origine.
<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>
Lorsque l'utilisateur sélectionne l'entrée pour une page de préférences dans l'arborescence de gauche, le plan de travail crée et affiche une page de préférences à l'aide de la classe spécifiée dans la définition d'extension. Cette action correspond à l'activation du plug-in (s'il n'a pas déjà été activé par une autre opération utilisateur).