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 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á automáticamente un objeto DialogSettings vacío. Cuando se cierra el conector, 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 conector.
Puede acceder a los valores de diálogo en cualquier lugar del código del conector. 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(); }