Skip to content
Snippets Groups Projects
Select Git revision
  • dev-group3-qdigest
  • dev-group2-all-aggregations
  • master default
  • dev-group2-graphs
  • dev-group2-limit-neighbors
  • dev-group1-stefan
  • dev-group3-kim
  • dev-group1-simon
8 results

GephiConfiguration.java

Blame
  • user avatar
    David Bohn authored
    76c6e39b
    History
    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);
        }
    }