Exemple - Assistant de zone
Introduction
L'exemple Assistant de zone illustre comment utiliser le support fourni dans org.eclipse.jface.fieldassist
pour proposer une assistance aux tâches des zones de texte. Une boîte de dialogue d'exemple explique comment configurer des décorations de zone afin d'indiquer les zones obligatoires, les zones affichant les erreurs et les avertissements et les zones qui fournissent l'assistant de contenu. L'exemple contient également une page de préférences vous permettant de configurer les décorations ainsi que le support de l'assistant de contenu.
Exécution de l'exemple
Lorsque le plug-in est installé, vous devez voir une action FieldAssist sur la barre d'actions. Sélectionnez l'option de menu Open Field Assist Dialog..."
Cette option permet de lancer la boîte de dialogue de l'assistant de zone. La boîte de dialogue peut être configurée à l'aide des préférences de l'exemple.
Définition des préférences de l'assistant de zone
Deux pages de préférences sont fournies afin de configurer le comportement de la boîte de dialogue. La page Field Assist Example Preferences vous permet de configurer la manière dont la boîte de dialogue annote les zones comprenant des erreurs et des avertissements, les zones obligatoires et l'assistant de contenu. Une combinaison de couleurs et de décorations peut être utilisée pour annoter les zones. Cette page de préférences est conçue pour représenter ce qu'il est possible de faire lors de la configuration des décorations.
Elle s'adresse davantage au programmeur qui expérimente l'assistant de zone et en aucun cas ne cherche pas à servir d'exemple de page de préférences modèle pour laisser les utilisateurs contrôler les annotations.
La page Préférences de l'assistant de contenu vous permet de configurer la manière dont l'assistant de contenu est installé dans la zone de texte de la boîte de dialogue. La plupart des options fournies dans l'API assistant de zone (ContentProposalAdapter) sont configurables sur cette page.
Notez qu'il est possible de configurer l'assistant de contenu pour une expérience utilisateur non souhaitée. Par exemple, la définition d'un assistant de contenu de sorte qu'il soit activé de manière automatique sur tous les caractères avec un long délai n'est pas souhaitable. Il peut être gênant d'utiliser le filtrage cumulatif des propositions lorsque les touches de filtre ne sont pas propagées vers la commande. L'affichage de l'API dans la page de préférences a pour objectif de permettre au programmeur de l'assistant de zone d'expérimenter toutes les combinaisons possibles.
Il n'est pas prévu que l'une de ces préférences soit présentée à un utilisateur final, mais plutôt que le développeur choisisse la meilleure combinaison de ces valeurs afin de fournir un certain style d'assistant de contenu.
Utilisation de la boîte de dialogue
La boîte de dialogue affiche différents types de zones :
- La zone Nom de l'utilisateur est configurée comme une zone obligatoire avec un assistant de contenu. Cette zone est considérée comme non valide lorsqu'un caractère non alphabétique est saisi dans la zone. Elle est considérée comme étant en mode avertissement lorsque le nom "bob" est saisi dans la zone.
- La zone Liste utilisateur est configurée de la même manière, à la différence qu'elle utilise une zone de liste déroulante au lieu d'une
zone de texte.
- La zone Age décrit l'utilisation d'un widget Spinner avec des décorations.
Elle est configurée comme étant obligatoire, mais n'indique pas d'état d'erreur. Elle est considérée comme étant en mode avertissement lorsqu'un age supérieur à 65 ans est défini.
- La zone Mot de passe n'utilise aucune décoration, ni l'assistant de contenu.
Elle est simplement fournie pour représenter comment les zones non décorées peuvent être alignées aux zones décorées.
Code source d'exemple
La boîte de dialogue d'exemple n'est pas très complexe. Elle sert à illustrer la manière de programmer un assistant de zone. Ci-dessous figurent quelques remarques à propos du code source :
- Les zones non décorées peuvent être alignées aux zones décorées à l'aide du protocole
FieldDecorationRegistry.getMaximumDecorationWidth()
.
- Le plug-in d'exemple enregistre les décorateurs de zones standard dans le but d'indiquer la disponibilité de l'assistant de contenu, de marquer une zone comme obligatoire ou de signaler une zone comportement une erreur ou un avertissement. Dans les cas où une description de décorateur standard est utilisée dans l'ensemble des zones, ce sont les décorations issues du registre qui sont utilisées. Lorsque la zone fournit une description unique d'une erreur ou d'un avertissement, une décoration unique contenant le texte est gérée par la zone.
- SmartField et ses sous-classes permettent de fournir des messages de confirmation, d'erreur et d'avertissement spécifiques à la zone et d'extraire le contenu des différentes zones comprises dans la boîte de dialogue. Pour ce faire, des applications sont censées fournir des infrastructures similaires (telles que la liaison de données). SmartField
est conçu pour afficher une technique simple pour la validation des différentes zones au sein de la boîte de dialogue.
Cet outil n'est pas considéré comme un exemple d'infrastructure de définition de zone sémantique.