Balíček org.eclipse.jface.dialogs poskytuje obslužnou třídu DialogSettings pro ukládání a načítání hodnot s klíči. Tuto třídu můžete použít k ukládání a načítání primitivních datových typů a řetězcových hodnot, kterým přiřadíte názvy klíčů. Nastavení se načítají a ukládají pomocí souboru XML.
AbstractUIPlugin poskytuje podporu pro nastavení dialogových oken, která platí v rámci celého modulu plug-in a jsou uložena v souboru XML v adresáři vašeho modulu plug-in. Pokud soubor nastavení dialogových oken nebyl v adresáři vašeho modulu plug-in nalezen, vytvoří se prázdný objekt DialogSettings. Když se modul plug-in ukončí, nastavení přidaná do tohoto objektu se uloží do souboru XML a znovu načtou při dalším spuštění modulu.
K nastavení dialogových oken můžete přistupovat kdekoliv v kódu modulu plug-in. Následující úsek ukazuje, jak můžete získat nastavení dialogových oken pro nástroj README.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Hodnoty se ukládají a načítají pomocí metod get a put. Metody get jsou pojmenovány podle typu primitivu, ke kterému se přistupuje. Můžete ukládat a načítat hodnoty typu boolean, long, double, float, int, array a string. Následující úsek ukazuje, jak můžeme použít nastavení dialogových oken k inicializaci hodnot obslužných prvků v dialogovém okně.
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Generovat ukázkové titulky oddílů"); // inicializace zaškrtávacího políčka podle nastavení dialogových oken checkbox.setSelection(settings.getBoolean("GenSections")); }
Hodnotu nastavení lze uložit později, když se stiskne tlačítko OK.
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // uložit hodnotu zaškrtávacího políčka "Generovat oddíly" settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }
Definice a interpretace nastavení dialogových oken je obecně v kompetenci modulu plug-in. Existují ovšem některé specifické klíče nastavení dialogových oken v rámci dialogových oken modulu JFace, které se používají pro zapamatování poslední velikosti a umístění dialogového okna, aby mohlo být toto okno při příštím vyvolání otevřeno ve stejné velikosti a umístění. Rámec za vás provede dotázání a uložení velikosti a umístění dialogového okna, vy ovšem musíte implementovat metodu, která poskytuje instanci IDialogSettings, která se použije pro uložení informací o mezích dialogového okna. Následující úsek ukazuje, jak SectionsDialog může využívat této funkce.
protected IDialogSettings getDialogBoundsSettings() { return ReadmePlugin.getDefault().getDialogSettings(); }
Prostřednictvím implementace této metody budou velikost a umístění okna SectionsDialog uloženy v předdefinovaných klíčích v rámci nastavení dialogových oken modulu plug-in a díky tomu se dialogové okno otevře ve svém předcházejícím umístění.