Re: [Cantharella-devel] CR Réunion Cantharella du 19/02/2013
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
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. Ok, merci pour ce retour. Je me doutais bien que le model (load()) ne servait
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. En fait je me sers quand même de la molécule pour ajouter les documents dessus quand on passe en édition. Je trouves le couplage avec l'entité sauvegardée en base plus fort qu'une simple
Le 26/02/2013 00:12, Adrien Cheype a écrit : pas a grand chose. Avec un simple PropertyModel, c'est tout de suite plus propre. liste (lazy) qui pourrait peut être poser d'autres problèmes. Du coup, l'interface DocumentAttachable (sur les entités sur lequelles ont peut ajouter des documents) ne servirait pas non plus ? -- Éric Chatellier - Code Lutin Tel: 02.40.50.29.28 - http://www.codelutin.com
participants (2)
-
Adrien Cheype -
Eric Chatellier