Aplikační dialogová okna

Když je standardní dialogové okno pro váš modul plug-in příliš jednoduché, můžete sestavit své vlastní dialogové okno pomocí třídy Dialog. V předchozích tématech jsme viděli, jak nástroj README přispěl do akční sady akcí "Otevřít prohlížeč README".  Tato akční sada se zobrazuje v panelu nástrojů pracovní plochy a v nabídce Okno->Editor souborů README.  

Nyní jsme připraveni se podívat na implementaci této akce ve třídě WindowActionDelegate v nástroji README.

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

Delegát akce okna pro akční sadu používá aktuální výběr v zobrazení navigátoru prostředků (soubor .readme) k získání seznamu oddílů v souboru README. Tento seznam a nadstavba okna pracovní plochy se předají objektu SectionsDialog

Když uživatel akci vybere, otevře se SectionsDialog.

SectionsDialog se v nástroji README implementuje vytvořením podtřídy třídy Dialog z balíčku org.eclipse.jface.dialogs.

Třída Dialog poskytuje základní podporu pro sestavení dialogového okna nadstavby, vytvoření běžných tlačítek a spuštění dialogového okna. Podtřídy zodpovídají za práci s vlastním obsahem dialogového okna:

Třída SectionsDialog neimplementuje metodu okButtonPressed. Dědí "nic nedělající" implementaci od Dialogového okna. To je netypické. Vaše dialogové okno jako odpověď na stisknutí některého z tlačítek dialogového okna obvykle provádí nějaké zpracování.

Dialogová okna mohou být tak jednoduchá nebo tak složitá, jak je třeba. Když implementujete dialogové okno, většina kódu okna se týká vytváření obslužných prvků SWT, které reprezentují oblast jeho obsahu, a obsluhy případných událostí, které jsou potřebné po dobu zobrazení dialogu. Jakmile jednou uživatel stiskne tlačítko, dialogové okno se může dotázat na stav různých obslužných prvků (nebo prohlížečů), ze kterých se skládá, aby zjistilo, co se má provést.