Nastavení dialogových oken

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

Nastavení mezí dialogových oken

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í.