Dialogboksindstillinger

Pakken org.eclipse.jface.dialogs omfatter en funktionsklasse, DialogSettings, til lagring og hentning af indtastede værdier. Du kan bruge klassen til at gemme og hente primitive datatyper og strengværdier, som er knyttet til tastnavne. Indstillingerne indlæses og gemmes vha. en XML-fil.

AbstractUIPlugin omfatter understøttelse af dialogboksindstillinger på plugin-niveau, som gemmes i en XML-fil i plugin-biblioteket.Hvis der ikke findes en fil med dialogboksindstillinger i plugin-biblioteket, oprettes der automatisk en tom DialogSettings til dig. Når plugin-funktionen lukkes ned, gemmes eventuelle nye indstillinger i en XML-fil og hentes, næste gang plugin-funktionen startes.

Du kan oprette adgang til dialogboksindstillingerne hvor som helst i plugin-koden. Følgende sekvens viser, hvordan du kan hente dialogboksindstillinger til Readme-værktøjet.

      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();

Værdierne gemmes og hentes vha. metoderne 'get' og 'put'. Get-metoderne er opkaldt efter den primitiv-type, der oprettes adgang til. Du kan gemme og hente værdierne boolean, long, double, float, int, array og string. Følgende sekvens viser, hvordan dialogboksindstillinger kan bruges til at initialisere kontrolværdier i en dialogboks.

   protected Control createDialogArea(Composite parent) {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Generate sample section titles");
      // initialisér afkrydsningsfeltet i henhold til dialogboksindstillingerne
      checkbox.setSelection(settings.getBoolean("GenSections"));
   }

Værdien for indstillingen kan gemmes på et senere tidspunkt, når du trykker på OK.

   protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // gem værdien af afkrydsningsfeltet for generering af afsnit
      settings.put("GenSections", checkbox.getSelection());
      super.okPressed();
   }

Indstillinger for dialogboksgrænser

Generelt er plugin'en ansvarlig for definition og fortolkning af indstillinger for dialogbokse. Imidlertid er nogle bestemte indstillingsnøgler for dialogbokse defineret i JFace-dialogboksstrukturen, der anvendes til at opbevare den sidste størrelse på og placering af dialogboksen, så den kan åbnes med denne størrelse og placering ved det næste kald. Strukturen retter forespørgsel om og gemmer dialogboksens størrelse og placering, men du skal implementere en metode, der leverer den forekomst af IDialogSettings, der skal bruges til at gemme oplysninger om dialogboksens grænser. Følgende stykke viser, hvordan SectionsDialog kan udnytte denne facilitet.

   protected IDialogSettings getDialogBoundsSettings() {
	   return ReadmePlugin.getDefault().getDialogSettings();
   }

Ved at implementere metoden gemmes størrelse og placering af SectionsDialog i foruddefinerede nøgler i dialogboksindstillingerne for plugin'en, så dialogboksen åbnes på den tidligere placering.