Le 26/02/2013 03:33, Eric Chatellier a écrit :
Le 25/02/2013 16:23, Eric Chatellier a écrit :
Je ne comprend pas ce problème.

Sur la page des molécules, il y a deux tableaux : provenances et
documents.
Le premier est bien mis à jour mais pas le deuxième et il n'y
a aucun code particulier qui force le rechargement des tableaux.
J'ai fini par trouver finalement, je ne maitrise pas encore toutes
les subtilités de wicket ;-).

Dans ce cas là, j'utilisais directement les instances des
entités 'Molecule' au lieu de Model<Molecule>.
Les pages sont instanciées une seule fois, les modèles
aussi, mais les données des modèles sont détacher/rattacher
lorsque l'on change de page.
Il faut donc utiliser des modèles pour que les entités soient
rechargées et les bonnes listes affichées.

Bonjour Eric,

En effet, les modèles sont au début un peu déroutants. On en voit partout dans wicket et on se demande pourquoi faut-il systématiquement passé par eux (une simplification ne serait-elle pas meilleure ?). Mais petit à petit on rentre dans la logique du framework et on comprend leur force.

Dans ton cas, tu as bien identifié le problème, tu ne passais pas par un modèle pour construire ton listview. Cependant tu peux encore clarifier ton code. Actuellement tu charges la liste des documents dans un modèle de list de document après chaque cycle de sérialisation/désérialisation (load()). Cependant cette liste existe déjà, de la même manière que les autres propriétés d'une molécule. La simple utilisation d'un PropertyModel pour constituer ton modèle de liste suffit donc dans ce cas. Tu peux d'ailleurs le passer en paramètre de ton ReadListDocumentsPanel au lieu du modèle de molécule. Ce serait plus cohérent : le panel sert à afficher le modèle de ce qu'il doit afficher.

Tu peux trouver un exemple (sans panel) dans ReadPurificationPage, notamment :

ListView<ParamMethoPuriEffectif> paramMethodes = new ListView<ParamMethoPuriEffectif>(
                "Purification.paramsMethode.List", new PropertyModel<List<ParamMethoPuriEffectif>>(purificationModel,
                        "sortedParamsMetho")) {
...

Bonne journée,
Adrien

--
Adrien Cheype
Ingénieur en Systèmes d'Information
Service « Informatique Scientifique et Appui aux Partenaires du Sud »
Direction du Système d'Information (DSI)
http://www.ird.fr/dsi/
http://www.ird.fr/informatique-scientifique/

INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT
BP A5 - 98848 Nouméa - Nouvelle Calédonie
Tél. +687 260 789