Ich habe einige Probleme mit JGraphX und mxGraphModel. Ich konvertiere ein Petri-Netzwerk, das durch eine Hashmap> beschrieben wird, in ein Graphenmodell. Damit habe ich die folgende Schleife erstellt. Bei der Iteration über die Childs eines Knotens scheint es jedoch möglich zu sein, die vorhandenen Zellen im Modell zu finden und ein neues mit demselben Label hinzuzufügen. Die Ligne v2=((mxGraphModel)(graph.getModel())).getCell(childVertex);
funktioniert nicht: Die Methode gibt null zurück, auch wenn eine Scheitelpunkt mit der gleichen ID vorhanden ist. Mehrere Scheitelpunkte mit der gleichen Beschriftung und dem falschen Diagramm.JGraphX getCell (ID) findet nichts
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 * funktioniert nicht. * –
Bearbeitet, um klarer zu sein. Die Methode gibt null zurück, selbst wenn ein Scheitelpunkt mit derselben ID vorhanden ist. Mehrere Scheitelpunkte mit der gleichen Beschriftung und dem falschen Diagramm. – Vanpourix