Select Git revision
GephiConfiguration.java
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
GephiConfiguration.java 1.83 KiB
package fucoin.configurations;
import akka.actor.ActorRef;
import akka.dispatch.OnSuccess;
import akka.pattern.Patterns;
import akka.util.Timeout;
import fucoin.actions.transaction.ActionGetAmount;
import fucoin.actions.transaction.ActionGetAmountAnswer;
import fucoin.configurations.internal.ConfigurationName;
import fucoin.configurations.internal.GephiLoader;
import fucoin.gui.gephi.GraphWindow;
import org.gephi.graph.api.Graph;
import scala.concurrent.Future;
import scala.concurrent.duration.Duration;
import java.io.FileNotFoundException;
import java.net.URISyntaxException;
@ConfigurationName("Gephi Test Configuration")
public class GephiConfiguration extends AbstractConfiguration {
private Timeout timeout = new Timeout(Duration.create(10, "seconds"));
@Override
public void run() {
initSupervisor();
GephiLoader gephiLoader = new GephiLoader();
Graph g;
try {
g = gephiLoader.loadFileFromResources("/topology2.gexf");
} catch (URISyntaxException | FileNotFoundException e) {
e.printStackTrace();
return;
}
createOverlayNetwork(g);
GraphWindow graphWindow = new GraphWindow();
graphWindow.addNodeClickHandler((node, event) -> {
ActorRef wallet = walletByName(node.getLabel());
Future<Object> future = Patterns.ask(wallet, new ActionGetAmount(), timeout);
future.onSuccess(new OnSuccess<Object>() {
@Override
public void onSuccess(Object result) throws Throwable {
ActionGetAmountAnswer answer = (ActionGetAmountAnswer) result;
graphWindow.setInfobarText(node.getLabel()+" has "+answer.amount+" FUCs");
}
}, context().dispatcher());
});
graphWindow.setVisible(true);
}
}