Параметры окна диалога

В состав пакета org.eclipse.jface.dialogs входит служебный класс DialogSettings, предназначенный для хранения и загрузки ключевых значений. С его помощью можно сохранять и загружать простые типы данных и строковые значения, связанные с ключевыми именами. Параметры загружаются из файла XML и сохраняются в нем.

Класс AbstractUIPlugin обеспечивает поддержку параметров окна диалога уровня модуля, которые хранятся в файле XML, расположенном в каталоге модуля. Если файл параметров окна диалога в каталоге модуля отсутствует, создается пустой объект DialogSettings. После завершения работы модуля все новые параметры сохраняются в файле XML и загружаются в ходе следующего запуска этого модуля.

К параметрам окна диалога можно обратиться из произвольного расположения исходного кода модуля. Следующий фрагмент исходного кода позволяет получить параметры окна диалога для утилиты readme.

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

Для сохранения и загрузки значений применяются методы получения и установки. Имена методов получения совпадают с именем типа соответствующего простого значения. Сохранять и загружать можно значения следующих типов: boolean, long, double, float, int, array и string. Следующий фрагмент исходного кода применяется для инициализации управляющих элементов окна диалога с помощью его параметров.

   protected Control createDialogArea(Composite parent) {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Generate sample section titles");
      // инициализация переключателя в соответствии с параметрами окна диалога
      checkbox.setSelection(settings.getBoolean("GenSections"));
   }

Значение параметра можно сохранить позже, нажав кнопку ОК.

   protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // сохранение значения переключателя
      settings.put("GenSections", checkbox.getSelection());
      super.okPressed();
   }

Параметры границы окна диалога

Вообще, встраиваемый модуль ответственен за определение и интерпретацию параметров окна диалога. Однако, есть несколько специфических ключей параметров окна диалога, определенных внутри структуры диалога JFace, которые используются для запоминания последнего размера и положения окна диалога, чтобы оно при следующем вызове могло быть открыто в том же виде. Структура не будет работать с запросом и сохранять размер и положение окна диалога, но вы должны реализовать метод, который предоставляет экземпляр IDialogSettings, используемый для сохранения информации о границах окна диалога. Следующий фрагмент кода показывает, как SectionsDialog может использовать эту функцию.

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

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