Finestre di dialogo per applicazioni

Quando una finestra di dialogo standard è troppo semplice per il plugin in uso, è possibile crearne una personalizzata utilizzando la classe Dialog. In precedenza è stato descritto il modo in cui lo strumento readme aggiunge un'azione "apertura browser del readme" in un insieme di azioni.  Tale insieme di azioni viene visualizzato nella barra degli strumenti del workbench e nel menu Finestra->Editor del file readme.  

A questo punto è possibile esaminare l'implementazione di questa azione in WindowActionDelegate dello strumento readme.

   public void run(IAction action) {
      SectionsDialog dialog = new SectionsDialog(window.getShell(),
         ReadmeModelFactory.getInstance().getSections(selection));
      dialog.open();
   }

Il delegato dell'azione di finestra per l'insieme di azioni utilizza la selezione corrente della vista del pannello di selezione delle risorse (il file .readme) per richiamare un elenco delle sezioni contenute nel file readme. Questo elenco e la shell della finestra del workbench vengono trasferiti a SectionsDialog

Quando l'utente seleziona l'azione, viene aperta SectionsDialog.

SectionsDialog viene implementata nel plugin dello strumento readme creando sottoclassi della classe Dialog nel pacchetto org.eclipse.jface.dialogs.

La classe Dialog fornisce il supporto fondamentale per la creazione di una finestra shell della finestra di dialogo, per la creazione dei pulsanti comuni e per l'avvio della finestra di dialogo. Le sottoclassi sono responsabili della gestione del contenuto della finestra di dialogo stessa:

SectionsDialog non implementa un metodo okButtonPressed. Eredita l'implementazione "do-nothing" da Dialog. Questa situazione non è tipica. La finestra di dialogo dell'utente effettua generalmente un'elaborazione in risposta alla pressione di uno dei pulsanti della stessa finestra di dialogo.

Le finestre di dialogo possono essere semplici o complesse, a seconda delle necessità. Quando si implementa una finestra di dialogo, la maggior parte del codice della finestra riguarda la creazione dei controlli SWT che rappresentano la relativa area del contenuto e la gestione di tutti gli eventi necessari durante la visualizzazione della finestra di dialogo. Quando l'utente preme un pulsante, la finestra di dialogo può eseguire una query dello stato dei vari controlli (o dei visualizzatori) che costituiscono la finestra stessa per determinare l'azione da intraprendere.