Okna dialogowe aplikacji

Jeśli standardowe okno dialogowe jest zbyt proste dla danego modułu dodatkowego, można zbudować własne okno dialogowe przy użyciu klasy Dialog. Wcześniej przedstawiono sposób, w jaki narzędzie pliku readme dostarcza akcję "Otwórz przeglądarkę pliku Readme" do zestawu akcji. Ten zestaw akcji jest wyświetlany na pasku narzędzi obszaru roboczego oraz w menu Okno -> Edytor pliku readme.  

Zobaczmy, jak wygląda implementacja tej akcji w klasie narzędzia pliku readme WindowActionDelegate.

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

W tym zestawie akcji delegat akcji okna używa bieżącego zaznaczenia w widoku nawigatora zasobów (plik .readme), aby uzyskać listę sekcji pliku readme. Ta lista oraz powłoka okna obszaru roboczego zostają przekazane do klasy SectionsDialog

Gdy użytkownik wybiera akcję, zostaje otwarte okno dialogowe SectionsDialog.

Okno dialogowe SectionsDialog jest implementowane w module dodatkowym narzędzia pliku readme przez utworzenie podklasy klasy Dialog znajdującej się w pakiecie org.eclipse.jface.dialogs.

Klasa Dialog udostępnia podstawową obsługę budowania okien dialogowych powłoki, tworzenia najczęściej używanych przycisków okien dialogowych i uruchamiania okien dialogowych. Podklasy są odpowiedzialne za obsługę treści okien dialogowych:

Klasa SectionsDialog nie implementuje metody okButtonPressed. Dziedziczy ona "pustą" implementację z klasy Dialog. Nie jest to typowa sytuacja. Okno dialogowe zazwyczaj wykonuje pewne procesy w odpowiedzi na naciśnięcie przycisku.

Okna dialogowe mogą być proste lub złożone, w zależności od potrzeb. W implementacji okna dialogowego większość kodu dotyczy tworzenia elementów sterujących SWT, które reprezentują obszar treści i obsługują wszelkie zdarzenia występujące w trakcie wyświetlania okna dialogowego. Po naciśnięciu przycisku przez użytkownika okno dialogowe może sprawdzać status różnych elementów sterujących (lub przeglądarek) okna dialogowego, aby zdecydować o dalszym działaniu.