Ustawienia okna dialogowego

Pakiet org.eclipse.jface.dialogs udostępnia klasę narzędziową - DialogSettings - służącą do zapisywania i pobierania wpisywanych wartości. Tej klasy można używać do zapisywania i pobierania wartości podstawowych typów danych i wartości łańcuchowych powiązanych z nazwami kluczy. Ustawienia są ładowane i zapisywane przy użyciu pliku XML.

Klasa AbstractUIPlugin obsługuje ustawienia okna dialogowego całego modułu dodatkowego przechowywane w pliku XML w katalogu modułu dodatkowego. Jeśli w katalogu modułu dodatkowego nie zostanie znaleziony plik ustawień okna dialogowego, zostanie utworzony pusty obiekt klasy DialogSettings. Gdy moduł dodatkowy będzie zamykany, wszystkie ustawienia dodane do niego zostaną zapisane w pliku XML i pobrane przy ponownym jego uruchomieniu.

Dostęp do ustawień okna dialogowego jest możliwy z każdego miejsca kodu modułu dodatkowego. Poniższy fragment kodu pokazuje, w jaki sposób można pobrać ustawienia okna dialogowego dla narzędzia pliku readme.

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

Wartości są zapisywane i pobierane przy użyciu metod get i put. Metody get są nazywane w zależności od podstawowego typu danych, do których uzyskują dostęp. Zapisywać i pobierać można wartości typu boolean, long, double, float, int, array i string. Poniższy fragment kodu pokazuje sposób zastosowania ustawień okna dialogowego do inicjowania wartości jego elementów sterujących.

   protected Control createDialogArea(Composite parent) {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Generate sample section titles");
      // zainicjuj pole wyboru zgodnie z ustawieniami okna dialogowego
      checkbox.setSelection(settings.getBoolean("GenSections"));
   }

Wartość ustawienia może zostać zapisana dopiero po naciśnięciu przycisku OK.

   protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // zapisz wartość pola wyboru generowania sekcji
      settings.put("GenSections", checkbox.getSelection());
      super.okPressed();
   }