El paquete org.eclipse.jface.dialogs proporciona una clase de programa de utilidad, DialogSettings, para almacenar y recuperar valores en clave. Se puede utilizar esta clase para guardar y recuperar valores de serie y tipos de datos primitivos que asocia con nombres de clave. Los valores se cargan y guardan mediante un archivo XML.
AbstractUIPlugin proporciona soporte para valores de diálogo a nivel de conector almacenados en un archivo XML en el directorio del conector. Si en el directorio del conector no hay ningún archivo de valores de diálogo, se creará por omisión un DialogSettings vacío. Cuando se desactiva el conector, cualquier valor que se le haya añadido se guardará en un archivo XML y se recuperará cuando se vuelva a activar el conector.
Puede acceder a los valores de diálogo en cualquier lugar del código del conector. El segmento siguiente muestra cómo podría obtener los valores de diálogo para la herramienta readme.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Los valores se almacenen y recuperan mediante los métodos de get y put. Los métodos get se especifican después del tipo primitivo al que se está accediendo. Se pueden almacenar y recuperar valores booleanos, long, dobles, flotantes, int, de matriz y de serie. El segmento siguiente muestra cómo se pueden utilizar valores de diálogo para inicializar valores de control en un diálogo.
protected Control createDialogArea(Composite parent) {
IDialogSettings settings =
ReadmePlugin.getDefault().getDialogSettings();
checkbox = new Button(parent,SWT.CHECK);
checkbox.setText("Generate sample section titles");
// inicializar el recuadro de selección de acuerdo con los valores de diálogo
checkbox.setSelection(settings.getBoolean("GenSections"));
}
El valor puede almacenarse más adelante, cuando se pulsa el botón Aceptar.
protected void okPressed() {
IDialogSettings settings =
ReadmePlugin.getDefault().getDialogSettings();
// almacenar el valor del recuadro de selección para generar acciones
settings.put("GenSections", checkbox.getSelection());
super.okPressed();
}