Dans un formulaire de création, lors du choix d’un objet lié, quel est le meilleur moyen de limiter la liste des objets proposés tout en figeant/empêchant la recherche.?
Concrètement, je voudrait que dans la popup de liste, la recherche ne soit pas possible et que les types d’absence actif soient affichés.
La recherche est toujours autorisée pour l’utilisateur habilité, par contre vous pouvez forcer des filtres techniques sur cette instance d’objet de sélection de référence (ref_ajax_<monobjet>) pour ne jamais voir certaines lignes au moyen d’une search-spec via le hook initRefSelect prévu à cet effet (appelé avant affichage de la liste) :
@Override
public void initRefSelect(ObjectDB parent) {
if (parent!=null && "ObjTypeAbsence".equals(parent.getName()))
setSearchSpec("t.absence_type = 'ACTIF'"); // sera ajouté au where sql
super.initRefSelect(parent);
}
Vous pouvez aussi masquer des champs (comme la couleur de l’absence via getField(…).setVisibility… dans ce hook.
Pour ce genre de sélection simple, vous pouvez aussi autoriser un rendering de sélection en dropdown dans la définition de la foreign-key, ce qui évite d’ouvrit un popup avec filtre = à réserver à une sélection d’objets complexes / à rechercher.