Je rencontre des problèmes avec JGraphX et mxGraphModel. Je convertis un réseau de Pétri décrit par Hashmap> en un modèle graphique. Dans l'ordre, j'ai construit la boucle suivante. Cependant, il semble que lors de l'itération sur les enfants d'un nœud, il peut trouver les cellules existantes dans le modèle et ajouter un nouveau avec le même label. La ligne v2=((mxGraphModel)(graph.getModel())).getCell(childVertex);
ne fonctionne pas: La méthode renvoie null même si un vertice avec le même ID est présent. Résultat plusieurs sommets avec le même label et un graphe incorrect.JGraphX getCell (id) ne trouve rien
int j=0;
for(String vertex: dataPetri.keySet())
{
Object v1 =((mxGraphModel)(graph.getModel())).getCell(vertex);
Object v2;
//Add only if new vertex
if(v1 == null)
v1 = graph.insertVertex(parent, null, vertex, 100, 100*j, 40, 40, "whiteSpace=wrap;textOpacity=100");
else
System.out.println("//Found existing parent ////");
//Looking for links from this vertex
ArrayList<String> childs = dataPetri.get(vertex);
if(childs != null)
{
int i = 0;
for(String childVertex: childs)
{
v2=((mxGraphModel)(graph.getModel())).getCell(childVertex);
if(v2 == null)
v2 = graph.insertVertex(parent, null, childVertex, 100*i, 100, 40, 40, "whiteSpace=wrap;textOpacity=100");
else
System.out.println("/////////Found existing");
graph.insertEdge(parent, null, "", v1, v2);
++i;
}
}
++j;
}
define * ne fonctionne pas. * –
Modifié pour être plus clair. La méthode retourne null même si un vertice avec le même ID est présent. Résultat plusieurs sommets avec le même label et un graphe incorrect. – Vanpourix