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