I paketet org.eclipse.jface.dialogs finns en hjälpklass, DialogSettings, för lagring och hämtning av kodade värden. Du kan använda denna klass för att spara och hämta ursprungliga datatyper och strängvärden som du associerar till kodnamn. Inställningarna blir inlästa och sparade med hjälp av en XML-fil.
AbstractUIPlugin tillhandahåller stöd för insticksbreda dialoginställningar som lagras i en XML-fil i insticksprogrammets katalog. Om en dialoginställningsfil inte hittas i ditt insticksprograms katalog, skapas en tom DialogSettings. När insticksprogrammet stängs, sparas tillagda inställningar i en XML-fil och dessa hämtas nästa gång insticksprogrammet startas.
Du kan accessa dialoginställningarna varsomhelst i insticksprogrammets kod. Följande kodstycke visar hur du kan hämta dialoginställningarna för Readme-verktyget.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Värdena lagras och hämtas med hjälp av Get- och Put-metoder. Get-metoderna namnges efter typen på det ursprung som accessas. Du kan lagra och hämta booleska, långa, dubbla, flytande, int-, vektor- och strängvärden. Följande kodstycke visar hur vi kan använda dialoginställningarna för att initiera styrvärden i en dialogruta.
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Generate sample section titles"); // initiera kryssrutan enligt dialoginställningarna checkbox.setSelection(settings.getBoolean("GenSections")); }
Värdet på inställningen kan lagras senare när OK-knappen trycks ner.
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // lagra värdet för kryssrutan för genereringssektioner settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }
I allmänhet ansvarar insticksprogrammet för definition och tolkning av dialogruteinställningar. Det finns dock några specifika nycklar för dialogrutekonfiguration som definieras i JFace-dialogruteramverket och som används till att lagra information om en dialogrutas senaste storlek och placering så att dialogrutan kan öppnas med den storleken och placeringen nästa gång den anropas. Ramverket frågor efter och lagrar storlek och placering för dialogrutan men du måste implementera en metod som tillhandahåller förekomsten IDialogSettings som ska användas till att lagra gränsinformationen för dialogrutan. I följande kodstycke visas hur SectionsDialog kan utnyttja den här funktionen.
protected IDialogSettings getDialogBoundsSettings() { return ReadmePlugin.getDefault().getDialogSettings(); }
Genom att implementera den här metoden kan du se till att storlek och placering för SectionsDialog lagras i fördefinierade nycklar i dialogruteinställningarna i insticksprogrammet så att dialogrutan öppnas på samma plats som tidigare.