Definições do Diálogo

O pacote org.eclipse.jface.dialogs fornece uma classe de utilitário, DialogSettings, para armazenamento e recuperação de valores-chave. É possível utilizar essa classe para salvar e recuperar tipos de dados primitivos e valores de cadeia que você associa aos nomes-chave. As definições são carregadas e salvas utilizando um arquivo XML.

AbstractUIPlugin fornece suporte para definições de diálogo amplas de plug-in armazenadas em um arquivo XML no diretório de plug-in. Se um arquivo de configurações de caixa de diálogo não for localizado no diretório de plug-in, um DialogSettings vazio será criado para você. Quando o plug-in for encerrado, qualquer definição que você incluiu será salva em um arquivo XML e recuperada da próxima vez que o plug-in for inicializado.

É possível acessar as definições da caixa de diálogo em qualquer lugar no código de plug-in. O fragmento a seguir mostra como você poderia obter as definições do diálogo para a ferramenta leia-me.


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

Os valores são armazenados e recuperados utilizando os métodos de obtenção e de colocação. Os métodos de obtenção são nomeados depois do tipo do primitivo que está sendo acessado. É possível armazenar e recuperar os valores booleano, longos, duplos, flutuantes, internos, de matriz e de cadeia. O fragmento a seguir mostra como poderíamos utilizar as definições do diálogo para inicializar valores de controle em um diálogo.

protected Control createDialogArea(Composite parent) {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      checkbox = new Button(parent,SWT.CHECK);
      checkbox.setText("Gerar exemplos de títulos de seção");
      // inicializar a caixa de opção de acordo com as definições do diálogo
 checkbox.setSelection(settings.getBoolean("GenSections"));   }

O valor da definição pode ser armazenado posteriormente quando o botão OK for pressionado.

protected void okPressed() {
      IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
      // armazene o valor da caixa de opção as seções geradas
 settings.put("GenSections", checkbox.getSelection()); super.okPressed();   }

Configurações de Limites de Diálogo

Em geral, a definição e a interpretação de configurações de diálogo são de responsabilidade do plug-in. Entretanto, há algumas chaves específicas de configurações de diálogo definidas na estrutura de diálogo JFace que são utilizadas para lembrar o último tamanho e posição de um diálogo, para que ele possa ser aberto nesse tamanho e posição em sua próxima chamada. A estrutura fará o trabalho de consultar e armazenar o tamanho e a posição do diálogo, mas você deve implementar um método que forneça a instância IDialogSettings que deverá ser utilizada para armazenar as informações sobre limites de diálogo. O snippet a seguir mostra como o SectionsDialog poderia tirar proveito desse recurso.

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

Implementando esse método, o tamanho e a posição do SectionsDialog serão armazenados em chaves predefinidas nas configurações de diálogo do plug-in, fazendo com que o diálogo seja aberto em seu local anterior.