Hallo,
ich schreibe ein Plugin für Gephi in welchem die Label von Knoten in Abhängigkeit von den Labeln der Nachbarknoten verändert werden. Dadurch soll Clustering unterstützt werden.
Sobald sich die Label nicht mehr verändern soll das Programm stoppen.
Und genau hier liegt das Problem, es stoppt nicht.
Ich benutze den ColumnObserver und die overserver.hasColumnChanged() Methode.
Der entscheidene Teil des Codes wäre wie folgt:
Die Abfrage von changed folgt innerhalb der While Schleife und außerhalb der For Schleife. Wenn ich innerhalb der For Schleife abfrage, wird diese ja nur einmal durchlaufen.
Hat jemand eine Idee?
ich schreibe ein Plugin für Gephi in welchem die Label von Knoten in Abhängigkeit von den Labeln der Nachbarknoten verändert werden. Dadurch soll Clustering unterstützt werden.
Sobald sich die Label nicht mehr verändern soll das Programm stoppen.
Und genau hier liegt das Problem, es stoppt nicht.
Ich benutze den ColumnObserver und die overserver.hasColumnChanged() Methode.
Der entscheidene Teil des Codes wäre wie folgt:
Java:
public void execute(GraphModel graphModel){
Table nodeTable = graphModel.getNodeTable();
Column col = nodeTable.getColumn(prob);
if (col == null) {
col = nodeTable.addColumn(prob, String.class);
}
ColumnObserver observer = col.createColumnObserver(true);
Graph graph = graph.Model.getGraph();
Node[] nodes = graph.getNodes().toArray();
...
boolean changed = true;
while(changed){
for (Node n: nodes){
....
n.setLabel(newLabel);
}
if (observer.hasColumnChanged()){
change = true;
}else{
change = false;
}
Die Abfrage von changed folgt innerhalb der While Schleife und außerhalb der For Schleife. Wenn ich innerhalb der For Schleife abfrage, wird diese ja nur einmal durchlaufen.
Hat jemand eine Idee?