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 leiame.
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, boleano, 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("Generate sample section titles");
// inicialize a caixa de entrada de acordo com as definições da caixa de 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 entrada das seções geradas
settings.put("GenSections", checkbox.getSelection());
super.okPressed();
}