Je souhaite pouvoir désélectionner toutes les lignes de la liste lors du clic sur le bouton “associer”.
Car à la deuxième association, la liste garde les lignes sélectionnées lors de l’association précédente.
J’arrive bien à désélectionner les lignes mais je ne trouve pas le bon hook.
if (isRefInstance()) resetSelectedIds();.
J’ai essayé sur les hooks initRefSelect() et initList() mais ces deux hooks ne sont appelés que à la première initialisation de la liste et ne sont pas appelés à la deuxième association.
J’ai essayé avec le hook initAssociate() mais le hook est appelé à chaque changement de page de la liste du coup ça désélectionne ce que j’ai sélectionnée sur la première page quand je change de page.
Mon besoin : désélectionner uniquement au clic sur le bouton associer.
Des corrections sur cette fonctionnalité ont été apportées en version 5.2.32 : Release note
Le comportement que vous décrivez n’est pas reproduit en 5.3.27, à savoir, le bout de code suivant réinitialise bien les ids sélectionnés lors de l’association :
@Override
public void initAssociate(ObjectDB parent) {
resetSelectedIds();
}
On n’a déjà essayé ce bout de code et cela réinitialise bien les ids sélectionnés, mais notre problème est que ce hook est appelé à chaque changement de page sur une liste paginé.
Confirmez-vous bien que sur la version 5.3.27, le hook initAssociate() n’est pas appelé lors du changement de page d’une liste ?
En l’état la 5.3.27 appelle le hook initAssociate à chaque chargement de page.
On mettra à disposition un hook postAssociate dans les versions à venir permettant de facilement répondre au besoin.
En attendant, tu peux sans doute contourner le comportement standard en vidant les selectedIds dans un hook de l’objet parent, par exemple :
@Override
public void initList(ObjectDB parent) {
getGrant().getRefObject("MyObject").resetSelectedIds();
}