Le 22 juin 2011 11:08,
<yaroslaw.dafflon AT edu.hefr.ch> a écrit :
bonjour,
je souhaite rapprocher les nœuds sélectionnés dans mon application et les
mettre au premier plan.
j'ai utilisé : e.setAttribute("layout.weight", 0.1);//attire les noeuds e=Edge
C'est la bonne méthode, cela devrait fonctionner. Cependant,
l'algorithme de mise en forme automatique du graphe est basé sur un système de
forces "attraction/répulsion", et certains arcs sont plus ou moins longs. Le poids
change cette longueur mais ne permet pas d'assigner la même longueur à tous les
arcs.
Si vous avez un exemple plus complet, on peut éventuellement tester, si vous le désirez.
mais les nœuds ne se rapproche pas, je dois le faire autrement?
Ma deuxième question serait de savoir comment mettre les nœuds au premier
plan, dans mon application qui comporte plein de nœuds, je voudrais en mettre
certains au premier plan mais je n'ai pas trouvé d'attribut pour cela. Il y en
a?
Vous pouvez utiliser une feuille de style avec la propriété "z-index". L'afficheur dessine
les éléments du graphe dans un ordre "Z" particulier, on peut voir cela comme des calques.
Si un objet a un niveau Z élevé il est dessiné au dessus de ceux qui ont un niveau Z bas.
Par défaut, tous les arcs sont au niveau 1 et tous les nœuds au niveau 2.
En revanche deux objets qui ont le même niveau Z sont dessinés dans un ordre arbitraire. Pour
éviter cela, grosso-modo, vous pouvez procéder ainsi:
...
// Au début du programme.
graph.addAttribute("ui.stylehseet", "node.important { z-index: 10; }");
...
// Lors de la création des nœuds ou quand vous souhaitez les mettre au premier plan, lors de
// la sélection par exemple:
node.addAttribute("ui.class", "important");
Salutations
Antoine