Ejemplo - Asistencia de campo
Introducción
El ejemplo de asistencia de campo muestra cómo utilizar el soporte proporcionado en
org.eclipse.jface.fieldassist
para proporcionar asistencia de tareas en campos de texto. Un diálogo de
ejemplo muestra cómo configurar la decoraciones de campo para indicar campos necesarios, campos con errores y avisos y
campos que proporcionan asistencia de contenido. El ejemplo también incluye una página de preferencias que permite
configurar las decoraciones y el soporte de la asistencia de contenido.
Ejecución del ejemplo
Cuando el plug-in está instalado, debe ver una acción FieldAssist en la barra de acciones. Elija el elemento de menú
"Abrir diálogo de asistencia de campo..."
Esto abrirá el diálogo de asistencia de campo. El diálogo puede configurarse utilizando las preferencias del ejemplo.
Establecer preferencias de asistencia de campo
Hay dos páginas de preferencias para configurar la forma en que se comporta el diálogo. La página Preferencias de
asistencia de campo permite configurar cómo el diálogo realiza anotaciones en los campos errores y avisos, campos
necesarios y asistencia de contenido. Puede utilizarse una combinación de colores y decoraciones para anotar en los
campos. Esta página de preferencias pretende mostrarle las posibilidades de la configuración de decoraciones.
Está dirigida a la elección de la asistencia de campo por parte del programador y no pretende ser un ejemplo de una
buena página de preferencias que permita a los usuarios finales controlar las anotaciones.
La página Preferencias de asistencia de contenido permite configurar cómo se instala la asistencia de
contenido en el campo de texto del diálogo. La mayoría de las opciones proporcionadas en la API de asistencia de campo
(ContentProposalAdapter) pueden configurarse en esta página.
Tenga en cuenta que es posible configurar la asistencia de contenido de forma que la experiencia del usuario no sea la
deseable. Por ejemplo, establecer que la asistencia de contenido se active en todos los caracteres utilizando un largo
retardo no es deseable. Puede resultar confuso utilizar el filtrado de propuestas acumulativo cuando las claves del
filtro no se devuelven al control. El propósito de exponer la API en la página de preferencias es permite que el
programador de la asistencia de campo intente todas las posibles combinaciones.
No se espera que ninguna de estas preferencias se exponga nunca a un usuario final, debe ser el desarrollador quien
elija la mejor combinación de estos valores para proporcionar un determinado estilo de asistencia de contenido.
Utilizar el diálogo
El diálogo de ejemplo muestra diferentes clases de campos:
- El campo Nombre de usuario está configurado como un campo obligatorio con asistencia de contenido. Este
campos se considera erróneo cuando se teclea en él un carácter no alfabético. Se considera que está en una modalidad de
aviso cuando se teclea el nombre "bob" en el campo.
- El campo Nombre de usuario de recuadro combinado está configurado de la misma manera, pero utiliza un
recuadro combinado en lugar de un campo de texto.
- El campo Edad muestra la utilización de un widget graduador con decoraciones.
Está configurado como un campo obligatorio pero no proporciona un estado de error. Se considera que está en una
modalidad de aviso cuando se establece una edad superior a 65.
- El campo Contraseña no utiliza ninguna decoración ni asistencia de contenido.
Se proporciona simplemente para mostrar que los campos no decorados pueden alinearse con campos decorados.
Código fuente de ejemplo
El diálogo de ejemplo no es muy complejo, pero se pretende demostrar cómo programar la asistencia de campo. A
continuación se proporcionan algunas notas acerca del código fuente:
- Los campos no decorados pueden disponerse alineados con campos decorados utilizando el protocolo
FieldDecorationRegistry.getMaximumDecorationWidth()
.
- El plug-in de ejemplo registra decoradores de campo estándar para indicar la disponibilidad de la asistencia de
contenido, marcar un campo según sea necesario o marcar un campo que tenga un error o un aviso. En los casos en los que
se utiliza una descripción de decorador estándar en todos los campos, se utilizan las decoraciones reales del registro.
En los casos en los que el campo proporciona una descripción exclusiva de un error o asistente, el campo gestiona una
decoración exclusiva que contiene el texto.
- SmartField y las subclases correspondientes se utilizan para proporcionar la validación específica del campo, los
mensajes de error y de aviso y la recuperación de contenido para los distintos campos del diálogo. Esperamos que las
aplicaciones proporcionen infraestructuras parecidas (como por ejemplo enlace de datos) para conseguir este objetivo.
SmartField pretende mostrar una técnica simple para validar diferentes campos dentro de un diálogo. No se considera un
ejemplo de una infraestructura de definición de campo semántica.