[JGraph] Générer un graphe automatiquement
Bonjour,
avant tout je m'excuse d'avoir posté dans la section Générale mais je ne voyais pas de forum plus adapté.
Ma question est simple, je viens d'installer la librairie JGraph et devant l'étendue de ses fonctionnalité je suis un peu perdu.
Existe-t-il une fonction permettant de dessiner de manière automatisé un graphe à partir d'une liste de sommets et d'arêtes ? Ou est-il dans tous les cas nécessaire de renseigner au minimum la position de chacun des noeuds/sommets ?
Merci de vos réponses
Comment faire un routage automatique??
Salut,
J'ai une question et une réponse
Réponse :
1) JGraph te permet de calculer un positionnement automatique de tes noeuds
2) JGraph te permet de calculer un routage automatique pour tes arcs
J'arrive à peu prèt à faire le 1) mais par contre je ne comprend pas du tout comment faire le 2)
Pour faire 1) il faut regarder du coté des layout. Par exemple si tu veux donner un aspect hiérarchique à ton graphe, tu peux utiliser la classe JGraphHierarchicalLayout et lancer sa fonction run.
Avant toute chose tu as du créer la partie model de ton graphe DefaultGraphModel et la partie vue
new GraphLayoutCache(model, new DefaultCellViewFactory())
inserer des noeuds et des arcs avec la fonction view.insert
créer des noeuds DefaultGraphCell et indiquer leur dimension
GraphConstants.setBounds(cell.getAttributes(), new Rectangle2D.Double(x, y, w, h));
créer des arcs DefaultEdge
Et une fois la fonction run lancé, il faut faire une mise à jour
view.edit(facade.createNestedMap(true, true));
Question :
Comment faire le routage automatique avec des arcs orthogonaux??
J'ai créé mes arcs en attachant leurs extrémités aux ports des noeuds, et avec l'attribut
GraphConstants.setLineStyle(attributes, GraphConstants.STYLE_ORTHOGONAL);
que j'ai seté dans tous mes arcs arc.setAttributes(attributes);
Comment demander à JGraph de calculer les points par lesquels passent chacun de mes arcs??
Merci pour votre aide