diff --git a/src/main/java/fucoin/configurations/GephiConfiguration.java b/src/main/java/fucoin/configurations/GephiConfiguration.java index 1465998fabb81dd84e8ee611b4c52c5bed250069..3fb495c2ebf20eacf1216a8e5ffa60f5ee8dbf4b 100644 --- a/src/main/java/fucoin/configurations/GephiConfiguration.java +++ b/src/main/java/fucoin/configurations/GephiConfiguration.java @@ -1,6 +1,7 @@ package fucoin.configurations; import akka.actor.ActorRef; +import akka.dispatch.OnSuccess; import akka.pattern.Patterns; import akka.util.Timeout; import fucoin.actions.transaction.ActionGetAmount; @@ -9,7 +10,6 @@ import fucoin.configurations.internal.ConfigurationName; import fucoin.configurations.internal.GephiLoader; import fucoin.gui.gephi.GraphWindow; import org.gephi.graph.api.Graph; -import scala.concurrent.Await; import scala.concurrent.Future; import scala.concurrent.duration.Duration; @@ -42,13 +42,13 @@ public class GephiConfiguration extends AbstractConfiguration { ActorRef wallet = walletByName(node.getLabel()); Future<Object> future = Patterns.ask(wallet, new ActionGetAmount(), timeout); - ActionGetAmountAnswer answer = null; - try { - answer = (ActionGetAmountAnswer) Await.result(future, timeout.duration()); - } catch (Exception e) { - System.err.println("An error occured while fetching the wallet info: "+e.getMessage()); - } - graphWindow.setInfobarText(node.getLabel()+" has "+answer.amount+" FUCs"); + 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); diff --git a/src/main/java/fucoin/gui/gephi/GraphWindow.java b/src/main/java/fucoin/gui/gephi/GraphWindow.java index 954f6d7fc7d93b4f0b0f98aab029f8dfe1ddf4df..f32bd9a85b3eceb5385f423b57f4bc43d087b324 100644 --- a/src/main/java/fucoin/gui/gephi/GraphWindow.java +++ b/src/main/java/fucoin/gui/gephi/GraphWindow.java @@ -1,6 +1,5 @@ package fucoin.gui.gephi; -import fucoin.configurations.internal.NodeClickHandler; import org.gephi.graph.api.Node; import org.gephi.preview.api.*; import org.gephi.preview.types.DependantOriginalColor; @@ -50,10 +49,10 @@ public class GraphWindow extends JFrame implements NodeMouseListener { JPanel infobar = new JPanel(new BorderLayout()); infobar.add(infobarText, BorderLayout.WEST); - JPanel zoomOptions = new JPanel(new FlowLayout(FlowLayout.CENTER, 5,2)); + JPanel zoomOptions = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 2)); zoomOptions.add(new JLabel("Zoom: ")); - Dimension zoomBtnSize = new Dimension(20,20); + Dimension zoomBtnSize = new Dimension(20, 20); JButton minusButton = new JButton("-"); minusButton.setPreferredSize(zoomBtnSize); @@ -114,10 +113,10 @@ public class GraphWindow extends JFrame implements NodeMouseListener { super.setVisible(b); previewController.refreshPreview(); - previewSketch.repaint(); + previewSketch.refreshSketch(); } - public void setInfobarText(String text){ + public void setInfobarText(String text) { SwingUtilities.invokeLater(() -> infobarText.setText(text)); } } diff --git a/src/main/java/fucoin/configurations/internal/NodeClickHandler.java b/src/main/java/fucoin/gui/gephi/NodeClickHandler.java similarity index 74% rename from src/main/java/fucoin/configurations/internal/NodeClickHandler.java rename to src/main/java/fucoin/gui/gephi/NodeClickHandler.java index 01a207c5e24e928ac61dbce5e252e72a460f82c4..9005017dddecabfb10636be551afaef1883b868c 100644 --- a/src/main/java/fucoin/configurations/internal/NodeClickHandler.java +++ b/src/main/java/fucoin/gui/gephi/NodeClickHandler.java @@ -1,12 +1,10 @@ -package fucoin.configurations.internal; +package fucoin.gui.gephi; import org.gephi.graph.api.Node; import org.gephi.preview.api.PreviewMouseEvent; import java.util.function.BiConsumer; -/** - * @author davidbohn - */ + public interface NodeClickHandler extends BiConsumer<Node, PreviewMouseEvent> { } diff --git a/src/main/java/fucoin/gui/gephi/PreviewSketch.java b/src/main/java/fucoin/gui/gephi/PreviewSketch.java index 255cc1f56378fbb479bc20088b4b33fcb4791df2..4f324bc99fe7dd900b002db11d56247d34cfb8ba 100644 --- a/src/main/java/fucoin/gui/gephi/PreviewSketch.java +++ b/src/main/java/fucoin/gui/gephi/PreviewSketch.java @@ -11,6 +11,7 @@ import java.util.TimerTask; import java.util.concurrent.atomic.AtomicBoolean; import javax.swing.JPanel; import javax.swing.SwingUtilities; + import org.gephi.preview.api.G2DTarget; import org.gephi.preview.api.PreviewController; import org.gephi.preview.api.PreviewMouseEvent; @@ -59,6 +60,10 @@ public class PreviewSketch extends JPanel implements MouseListener, MouseWheelLi g.drawImage(target.getImage(), 0, 0, getWidth(), getHeight(), this); } + public void refreshSketch() { + refreshLoop.refreshSketch(); + } + public void setMoving(boolean moving) { target.setMoving(moving); }