El paquete org.eclipse.jface.dialogs proporciona una clase de utilidades llamada DialogSettings que permite almacenar y recuperar valores con clave. Podrá utilizar esta clase para guardar y recuperar los valores de tipo serie y tipos de datos primitivos que asocie a nombres de clave. Los valores se cargan y guardan mediante un archivo XML.
AbstractUIPlugin proporciona soporte para valores de diálogo a escala de plug-in almacenados en un archivo XML en el directorio del plug-in. Si en el directorio del plug-in no hay ningún archivo de valores de diálogo, se creará automáticamente un objeto DialogSettings vacío. Cuando se cierra el plug-in, los valores que se hayan añadido al objeto se guardarán en un archivo XML y se recuperarán la próxima vez que se inicie el plug-in.
Puede acceder a los valores de diálogo en cualquier lugar del código del plug-in. El siguiente fragmento de código 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 get y put. Los métodos get se denominan en función del tipo primitivo al que se esté accediendo. Se pueden almacenar y recuperar valores de tipo boolean, long, double, float, int, array y string. El siguiente fragmento de código 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("Generar títulos de sección de ejemplo"); // inicializar el recuadro de selección de acuerdo con los valores del diálogo checkbox.setSelection(settings.getBoolean("GenSections")); }
El valor se puede almacenar 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 de generar secciones settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }
En general, la definición e interpretación de los valores de diálogo es responsabilidad del plug-in. Sin embargo, existen algunas claves de valores de diálogo específicas definidas en la infraestructura de diálogos de JFace que se utilizan para recordar el último tamaño y posición de un diálogo, a fin de que éste pueda abrirse con ese tamaño y posición en la próxima invocación. La infraestructura realizará el trabajo destinado a consultar y almacenar el tamaño y la posición del diálogo, pero el usuario debe implementar un método que suministre la instancia de IDialogSettings que debe utilizarse para almacenar la información de límites de diálogo. El fragmento de código que figura a continuación muestra cómo SectionsDialog puede aprovechar esta característica.
protected IDialogSettings getDialogBoundsSettings() { return ReadmePlugin.getDefault().getDialogSettings(); }
Al implementar este método, el tamaño y la posición de SectionsDialog se almacenarán en claves predefinidas dentro de los valores de diálogo del plug-in, haciendo que el diálogo se abra en su ubicación anterior.