Das Paket org.eclipse.jface.dialogs stellt die Dienstprogrammklasse DialogSettings bereit, um Schlüsselwerte zu speichern und abzurufen. Mit Hilfe dieser Klasse können Sie Datentypen von Basiselementen und Zeichenfolgewerte abrufen, die Sie Schlüsselnamen zuordnen. Die Einstellungen werden durch eine XML-Datei geladen und gespeichert.
Die Klasse AbstractUIPlugin stellt die Unterstützung für Dialogeinstellungen bereit, die im gesamten Plug-in verwendet werden. Diese Einstellungen werden im Verzeichnis des Plug-ins in einer XML-Datei gespeichert. Wenn das Plug-in-Verzeichnis keine Datei mit Dialogeinstellungen enthält, wird eine leere Klasse DialogSettings für Sie erstellt. Sobald das Plug-in beendet wird, werden alle zu ihm hinzugefügten Einstellungen in einer XML-Datei gespeichert und beim nächsten Starten des Plug-ins abgerufen.
Auf die Dialogeinstellungen können Sie an jeder beliebigen Stelle im Plug-in-Code zugreifen. Das folgende Snippet zeigt, wie Sie die Dialogeinstellungen des Tools für Readme-Dateien abrufen könnten:
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Werte werden mit den Methoden "get" und "put" gespeichert und abgerufen. Die Methoden "get" werden nach dem Typ des Basiselements benannt, auf das zugegriffen wird. Sie können Werte des Typs BOOLEAN, LONG, DOUBLE, FLOAT, INT, ARRAY und STRING abrufen. Das folgende Snippet zeigt, wie die Werte von Steuerelementen in einem Dialog mit Hilfe von Dialogeinstellungen initialisiert werden könnten:
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Titel für Beispielabschnitte generieren"); // Markierungsfeld gemäß der Dialogeinstellungen initialisieren checkbox.setSelection(settings.getBoolean("GenSections")); }
Der Wert der Einstellung kann dann später gespeichert werden, wenn die Schaltfläche "OK" ausgewählt wird.
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // Wert des Markierungsfelds zum Generieren der Abschnitte speichern settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }