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(); // armazenar o valor da caixa de opção para gerar seções settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }