Comment fonctionne l’option “tout sélectionner” sur une liste ?
J’ai une publication excel qui fonctionne lorsque j’utilise l’option “Sélectionner cette page” ou lorsque je ne sélectionne rien; mais lorsque j’utilise l’option “tout sélectionner” j’ai une exception :
il doit manque le cas null dans l’exemple :
getSelectedIds
vaut une liste d’ids sélectionné, potentiellement vide
mais vaut null quand tout est sélectionné pour une question d’optimisation de la mémoire
imaginons un objet à 10M de lignes, l’utilisateur peut en sélectionner certains (taille limitée), mais l’action “tout sélectionner” ne mémorisera pas 10M d’ids en mémoire, juste null (qui ne signifie pas liste vide, mais bien “tout”).
Il est donc impossible de tout sélectionner et décocher quelques lignes uniquement.
L’action “Tout sélectionner” positionne des check non modifiable.
Bref il faut gérer le cas ids==null explicitement.
cette méthode retourne null si l’utilisateur a coché “Sélectionner toutes les pages” pour éviter d’exploser la mémoire (mettre tous les ids en mémoire)
ou elle contient la liste des Ids des cases cochées unitairement par l’utilisateur (ou la sélection de la page uniquement)
Cela indépendamment des filtres.
Chaque nouvelle recherche (avec de nouveaux filtres) fait un “reset” des lignes précédemment sélectionnées. Par contre, elles sont bien gardées en mémoire de page en page, car l’utilisateur peut “picorer” au sein de sa recherche courante.