2010-12-01 62 views
2

J'ai suivi le Wicket by Example guide pour que ObjectAutoCompleteField fonctionne, et il le fait très bien.Affichage d'un objet initialement sélectionné dans un objet ObjectAutoCompleteField lors du chargement de la page dans Wicket

J'ai un énorme problème, cependant, et c'est d'afficher un objet initialement défini dans le champ lors du chargement de la page. L'objet est extrait d'un modèle que j'utilise pour le formulaire où ObjectAutoCompleteField est utilisé. La modification du champ ObjectAutoCompleteField modifie l'attribut du modèle auquel il est "connecté", et toute modification ultérieure dans le champ affiche l'étiquette appropriée à sa place, mais pas la première lorsque la page est chargée. La seule chose qui s'affiche est le lien d'édition (pour accéder à la fonctionnalité de saisie semi-automatique).

J'ai regardé dans la documentation de ObjectAutoCompleteBuilder mais je n'ai trouvé aucune méthode correspondante pour définir explicitement la valeur initiale lors du chargement de la page.

Répondre

1

J'ai finalement réussi à trouver une solution en regardant à travers les classes relatives à ObjectAutoCompleteField.

ObjectAutoCompleteField est construit par la méthode de génération dans ObjectAutoCompleteBuilder. Ainsi, en appelant la méthode readOnlyRenderer sur le générateur, en créant un nouvel ObjectReadOnlyRenderer en créant une étiquette à l'intérieur de son getObjectRenderer, j'ai demandé à ObjectAutoCompleteField de restituer un objet présélectionné lors du chargement de la page. On pourrait penser que c'était le comportement standard, mais maintenant je sais pour référence future.