Dialogeinstellungen

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. Der folgende Ausschnitt 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. Der folgende Ausschnitt 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");
      // initialize the checkbox according to the dialog settings
      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();
      // store the value of the generate sections checkbox
      settings.put("GenSections", checkbox.getSelection());
 super.okPressed();
   }

Einstellungen für Dialogbegrenzung

Im Allgemeinen ist das Plug-in für die Definition und Interpretation von Dialogeinstellungen zuständig. Im JFace-Framework für Dialoge sind jedoch einige spezielle Dialogeinstellungsschlüssel definiert, mit denen die letzte Größe und Position eines Dialogs gespeichert wird, damit der Dialog beim nächsten Aufruf in dieser Größe und Position geöffnet werden kann. Das Framework übernimmt zwar die Aufgabe, die Größe und Position des Dialogs abzurufen und zu speichern, aber Sie müssen eine Methode implementieren, die das Exemplar IDialogSettings bereitstellt, mit dem die Informationen über die Dialogbegrenzungen gespeichert werden sollen. Der folgende Ausschnitt zeigt, wie SectionsDialog diese Funktionsweise nutzen kann:

   protected IDialogSettings getDialogBoundsSettings() {
	   return ReadmePlugin.getDefault().getDialogSettings();
   }

Durch die Implementierung dieser Methode werden Größe und Position von SectionsDialog in vordefinierten Schlüsseln in den Dialogeinstellungen des Plug-ins gespeichert. Dies bewirkt, dass der Dialog in seiner vorherigen Position geöffnet wird.