Dialogboksinnstillinger

Pakken org.eclipse.jface.dialogs inneholder funksjonsklassen DialogSettings, for lagring og henting av tastverdier. Du kan bruke denne klassen til å hente enkle datatyper og strengverdier som du knytter til tastnavnene. Innstillingene lastes inn og lagres ved hjelp av en XML-fil.

AbstractUIPlugin gir støtte for dialogboksinnstillinger som går på tvers av plugin-modulene, og lagres i en XML-fil i katalogen for plugin-modulen. Hvis filen med dialogboksinnstillingene ikke blir funnet i katalogen for plugin-modulen, blir det opprettet en tom DialogSettings. Når plugin-modulen avsluttes, vil innstillinger som er lagt til bli lagret i en XML-fil og hentet neste gang plugin-modulen startes.

Du har tilgang til dialogboksinnstillingene overalt i plugin-koden. Snutten nedenfor viser hvordan du kan hente dialogboksinnstillingene for readme-verktøyet.

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

Verdiene lagres og hentes ved hjelp av hente- og plasseringsmetoder. Hentemetodene får navn etter den enkle datatypen som hentes. Du kan lagre og hente verdier som er boolske, lange, og doble samt flytetall-, int-, matrise- og strengverdier. Snutten nedenfor viser hvordan vi kan bruke dialogboksinnstillingene til å initialisere kontrollverdier 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");
      // initialize the checkbox according to the dialog settings
      checkbox.setSelection(settings.getBoolean("GenSections"));
   }

Verdien i innstillingen kan lagres senere ved å klikke på OK-knappen.

   protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // store the value of the generate sections checkbox
      settings.put("GenSections", checkbox.getSelection());
      super.okPressed();
   }

Dialogbegrensede innstillinger

Generelt er definisjon og tolkning av dialogboksinnstillinger plugin-modulens ansvar. Enkelte konkrete nøkler i dialogboksinnstillingene som defineres innenfor rammen av JFace, brukes imidlertid til å huske siste størrelse og posisjon for en dialogboks, slik at dialogboksen kan åpnes med den størrelsen og posisjonen ved neste aktivering. Rammen gjør arbeide med å spørre om og lagre dialogboksens størrelse og posisjon, men du må implementere en metode som besørger IDialogSettings-forekomsten som må brukes for å lagre grenseinformasjon om dialogboksen. Følgende snutt viser hvordan SectionsDialog kan utnytte denne funksjonen:

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

Hvis du implementerer denne metoden, blir størrelse og posisjon for SectionsDialog lagret i forhåndsdefinerte nøkler i plugin-modulens dialogboksinnstillinger, slik at dialogboks blir åpnet ved gjeldende plassering.