Le package org.eclipse.jface.dialogs fournit une classe utilitaire, DialogSettings, pour le stockage et l'extraction des valeurs saisies. Vous pouvez utiliser cette classe pour enregistrer et extraire des types de données primitifs et des valeurs de chaînes associées aux noms de clés. Les paramètres sont chargés et sauvegardés dans un fichier XML.
AbstractUIPlugin fournit le support pour les paramètres des boîtes de dialogue de taille importante stockés dans un fichier XML dans le répertoire de votre plug-in. Si aucun fichier de paramètres de boîte de dialogue ne figure dans ce répertoire, une méthode DialogSettings vide est créée pour vous. Lorsque le plug-in est arrêté, tous les paramètres lui ayant été ajoutés sont sauvegardés dans un fichier XML et sont extraits lors de son prochain démarrage.
Les paramètres de la boîte de dialogue sont accessibles à n'importe quel endroit du code du plug-in. Le fragment ci-dessous montre comment obtenir les paramètres de la boîte de dialogue pour l'outil readme.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Les valeurs sont stockées et extraites à l'aide des méthodes "get" et "put". Les méthodes "get" reçoivent un nom une fois le type de primitive accédé. Vous pouvez stocker et extraire des valeurs "boolean", "long", "double", "float", "int", "array" et "string". Le fragment ci-dessous montre comment les paramètres d'une boîte dialogue peuvent être utilisés pour initialiser les valeurs des commandes dans la boîte de dialogue.
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Generate sample section titles"); // initialise la case à cocher en fonction des paramètres de la boîte de dialogue checkbox.setSelection(settings.getBoolean("GenSections")); }
La valeur du paramètre peut être stockée ultérieurement lorsque le bouton OK est activé.
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // stocke la valeur de la case à cocher générée settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }
En règle générale, la définition et l'interprétation des paramètres de boîte de dialogue sont la responsabilité de votre plug-in. Toutefois, des clés de paramètre de boîte de dialogue spécifiques sont définies dans la structure de la boîte de dialogue JFace pour mémoriser la dernière taille et la position d'une boîte de dialogue, de sorte qu'elle puisse être ouverte à la taille et à la position identiques lors de son prochain appel. La structure effectuera les opérations nécessaires pour interroger et enregistrer la taille et la position de la boîte de dialogue, mais vous devez implémenter une méthode qui fournit l'instance IDialogSettings devant servir à enregistrer les informations sur les limites de la boîte de dialogue. Le fragment de code ci-après illustre comment l'élément SectionsDialog peut exploiter cette fonctionnalité.
protected IDialogSettings getDialogBoundsSettings() { return ReadmePlugin.getDefault().getDialogSettings(); }
En implémentant cette méthode, la taille et la position de l'élément SectionsDialog sont enregistrées dans les clés prédéfinies dans les paramètres de la boîte de dialogue du plug-in, ce qui permet d'ouvrir la boîte de dialogue à son emplacement initial.