Instellingen van dialoogvensters

Het pakket org.eclipse.jface.dialogs voorziet in een utility-klasse, DialogSettings, voor het opslaan en ophalen van sleutelwaarden. U kunt deze klasse gebruiken voor het opslaan en ophalen van elementaire gegevenstypen en tekenreekswaarden die u koppelt aan sleutelnamen. De instellingen worden geladen uit en opgeslagen in een XML-bestand.

AbstractUIPlugin biedt ondersteuning voor plugin-dialoogvensterinstellingen in een XML-bestand in de directory van uw plugin. Als in de directory van de plugin geen bestand met dialoogvensterinstellingen wordt gevonden, wordt een leeg exemplaar van DialogSettings voor u gemaakt. Wanneer de plugin wordt afgesloten, worden de toegevoegde instellingen opgeslagen in een XML-bestand en weer opgehaald wanneer de plugin opnieuw wordt opgestart.

U kunt uw dialoogvensterinstellingen vanaf elke locatie in de code van de plugin openen. In het volgende stukje code ziet u hoe u de dialoogvensterinstellingen voor de readme-tool kunt opvragen.

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

De waarden worden respectievelijk opgehaald en opgeslagen met ophaal- en instelmethoden (get en put). De getters zijn vernoemd naar het type element dat wordt benaderd. U kunt de volgende soorten waarden ophalen en opslaan: boolean, long, double, float, int, array en string. In het volgende stukje code worden dialoogvensterinstellingen gebruikt om waarden van besturingselementen in een dialoogvenster te initialiseren.

   protected Control createDialogArea(Composite parent) {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Generate sample section titles");
      // selectievakje initialiseren volgens de dialoogvensterinstellingen
      checkbox.setSelection(settings.getBoolean("GenSections"));
   }

De waarde van de instelling kan later worden opgeslagen wanneer de gebruiker op OK klikt.

   protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // de waarde van het selectievakje voor het genereren van secties opslaan
      settings.put("GenSections", checkbox.getSelection());
      super.okPressed();
   }

Grenzen voor dialoogvensters instellen

In het algemeen zijn de definitie en interpretatie van dialooginstellingen de verantwoordelijkheid van uw plugin. Er is echter een aantal specifieke dialoogvensterinstellingen gedefinieerd binnen het JFace-dialoogvensterframework die worden gebruikt om de laatste grootte en positie van een dialoogvenster te onthouden, zodat de volgende keer dat het dialoogvenster wordt opgeroepen, het met dezelfde grootte en positie kan worden geopend. Het framework heeft de taak om de grootte en de positie van het dialoogvenster op te vragen en op te slaan, maar u moet een methode implementeren die de IDialogSettings-instance verstrekt die moet worden gebruikt om de informatie over de grenzen van het dialoogvenster op te slaan. De volgende snippet geeft weer hoe de SectionsDialog van deze functie kan profiteren.

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

Door deze methode te implementeren, worden de grootte en de positie van de SectionsDialog opgeslagen in vooraf gedefinieerde sleutels binnen de dialoogvensterinstellingen van de plugin, waardoor het dialoogvenster op dezelfde positie wordt geopend.