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(); }