TreeView avec rendu automatique / comment exclure des relations

Tags: #<Tag:0x00007fdd455651b0>

Bonjour,
Nous souhaitons pouvoir exclure explicitement certaines relations d’un objet métier rendu en treeview.
Nous avons considéré l’option d’un treeview structuré une configuration explicite de chaque branche mais nous préférons à ce stade rester sur un paramétrage de rendu automatique.
Cette hypothèse s’appuie sur le fait que lors du rendu du treeview, les relations puissent être masquées par code (certainement en fonction de l’instance de l’objet treeview_* et d’autres règles métier).
Cette approche est-elle supportée ?
J’ajoute @Amandine dans la boucle qui suit le sujet…

Oui c’est justement à quoi servent ces instances particulières treeview_*.

Pour masquer un lien habilité dynamiquement, il y a le hook canReference à positionner sur l’objet père, par exemple :

public boolean canReference(String obj, String fk) {
    if (isTreeviewInstance())
      return "OnlyThisChildObject".equals(obj) && "OnlyThisField".equals(fk);
   return super.canReference(obj, fk); // To test Link visibility...
}

Ou vous pouvez aussi rendre le Link invisible au postLoad de l’objet parent :

public void postLoad() {
    if (isTreeviewInstance()) {
       Link link = getLink("childObjectName", "foreignKeyName");
       if (link!=null) link.setVisible(false);
    }
}
1 Like