Окна диалога приложений

Если возможностей стандартного окна диалога недостаточно для реализации модуля, с помощью класса Dialog можно создать собственное окно диалога. В предыдущих разделах было показано, каким образом утилита readme добавляет действие "Открыть браузер Readme" в набор действий. Этот набор действий доступен на панели инструментов рабочей среды, а также в меню Окно->Редактор файлов Readme.   

Теперь можно рассмотреть реализацию этого действия в классе утилиты readme WindowActionDelegate.

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

Делегат действия окна, предусмотренный для набора действий, получает список разделов файла readme в соответствии с элементами, выбранными на панели навигатора ресурсов (файл .readme). Этот список и оболочка окна рабочей среды передаются классу SectionsDialog.  

В результате выбора пользователем одного из действий открывается окно диалога SectionsDialog.

Класс SectionsDialog реализован в утилите readme путем наследования класса Dialog, входящего в состав пакета org.eclipse.jface.dialogs.

Класс Dialog предоставляет базовую поддержку для создания окна оболочки, общих кнопок, а также запуска окна диалога. Производные классы отвечают непосредственно за обработку содержимого окна диалога:

Класс SectionsDialog не реализует метод okButtonPressed. Он наследует реализацию, не предусматривающую выполнение каких-либо действий, из класса Dialog. Однако, как правило, окно диалога выполняет обработку событий, связанных с нажатием кнопок.

Сложность окна диалога зависит от предъявляемых к нему требований. В процессе реализации окна диалога основное внимание уделяется созданию управляющих элементов SWT, необходимых для представления областей содержимого, а также обработки поддерживаемых событий. Действия, выполняемые окном диалога в ответ на нажатие пользователем кнопки, определяются в соответствии с состоянием различных управляющих элементов (или программ просмотра), входящих в состав этого окна диалога.