Impostazioni delle finestre di dialogo

Il pacchetto org.eclipse.jface.dialogs fornisce una classe di utilità, DialogSettings, per la memorizzazione e il richiamo di valori basati su chiavi. È possibile utilizzare questa classe per salvare e richiamare tipi di dati e valori di stringa primitivi che siano stati associati a nomi di chiavi. Le impostazioni vengono caricate e salvate mediante un file XML.

AbstractUIPlugin fornisce il supporto per le impostazioni di finestre di dialogo del plugin di grandi dimensioni memorizzate in un file XML nella directory del plugin dell'utente. Se nessun file di impostazioni delle finestre di dialogo viene rilevato in tale directory, verrà automaticamente creata una classe DialogSettings vuota. Quando il plugin viene chiuso, tutte le impostazioni aggiunte verranno salvate in un file XML e richiamate al successivo avvio del plugin.

È possibile accedere alle proprie impostazioni di finestre di dialogo da qualsiasi punto del codice del plugin. Il seguente frammento mostra come ottenere le impostazioni di finestra di dialogo per lo strumento readme.

   IDialogSettings settings =
ReadmePlugin.getDefault().getDialogSettings();

I valori vengono memorizzati e richiamati mediante metodi get e put. I metodi get vengono stabiliti dopo il tipo di primitivo a cui si accede. È possibile memorizzare e richiamare valori boolean, long, double, float, int, array e string. Il seguente frammento mostra come utilizzare le impostazioni della finestra di dialogo per inizializzare i valori di controllo in una finestra di dialogo.

   protected Control createDialogArea(Composite parent) {
      IDialogSettings settings =
ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Generate sample section titles");
      // inizializzare la casella di controllo in base alle impostazioni della finestra di dialogo
 checkbox.setSelection(settings.getBoolean("GenSections"));
   }

Il valore dell'impostazione può essere memorizzato successivamente, quando viene premuto il pulsante OK.

   protected void okPressed() {
      IDialogSettings settings =
ReadmePlugin.getDefault().getDialogSettings();
      // memorizzare il valore della casella di controllo Genera sezioni
 settings.put("GenSections", checkbox.getSelection());
 super.okPressed();
   }

Dialog bounds settings

In general, the definition and interpretation of dialog settings are the responsibility of your plug-in. However, there are some specific dialog settings keys defined inside the JFace dialog framework that are used to remember the last size and position of a dialog, so that the dialog can be opened to that size and position on its next invocation. The framework will do the work to query and store the dialog's size and position, but you must implement a method that supplies the IDialogSettings instance that should be used to store the dialog bounds information. The following snippet shows how the SectionsDialog could take advantage of this feature.

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

By implementing this method, the size and position of the SectionsDialog will be stored in predefined keys within the plug-in's dialog settings, causing the dialog to open at its previous location.