A org.eclipse.jface.dialogs csomag egy DialogSettings, nevű segédprogram-osztályt biztosít a rögzített értékek tárolásához és lekéréséhez. Az osztály segítségével elmentheti és lekérheti a kulcsnevekhez rendelt primitív adattípusokat és karaktersorozat-értékeket. Ezek a beállítások egy XML fájl segítségével kerülnek betöltésre és mentésre.
Az AbstractUIPlugin támogatást biztosít a bedolgozó könyvtárában lévő XML fájlban tárolt bedolgozó szintű párbeszédablak-beállításokhoz. Ha a párbeszédablak-beállítás nem található a bedolgozókönyvtárban, akkor egy üres DialogSettings beállítás jön létre. Ha a bedolgozó le van állítva, akkor a hozzáadott beállítások mentésre kerülnek az XML fájlban és lekérésére kerülnek a bedolgozó következő elindításakor.
A párbeszédablak-beállítások a bedolgozókód tetszőleges helyén elérhetők. Az alábbi részlet megjeleníti, hogy a párbeszédablak-beállítások hogyan kérhetők le a readme eszközhöz.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Az értékek a get és put metódusok segítségével kerülnek tárolásra és lekérésre. A get metódusok az elért primitív típusa után kerülnek elnevezésre. Logikai, hosszú egész, dupla pontosságú, lebegőpontos, egész, tömb és karaktersorozat értékek tárolhatók és kérhetők le. Az alábbi részlet megjeleníti, hogy a párbeszédablak-beállítások segítségével hogyan inicializálhatók a vezérlőértékek a párbeszédablakban.
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Generate sample section titles"); // a jelölőnégyzet inicializálása a párbeszédablak-beállításoknak megfelelően checkbox.setSelection(settings.getBoolean("GenSections")); }
A beállítás értéke később az ok gomb megnyomásakor tárolható.
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // az előállítási szakaszok jelölőnégyzetének értéket tárolja settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }