From c7c99b605baec62fc77ec8540f695814fb4c5c6a Mon Sep 17 00:00:00 2001
From: Luca Keidel <info@lucakeidel.de>
Date: Sat, 18 Jun 2016 13:47:23 +0200
Subject: [PATCH] Implemented option to spawn wallets without a GUI

---
 src/main/java/fucoin/Main.java                 |  5 +++--
 src/main/java/fucoin/MainRemote.java           |  2 +-
 src/main/java/fucoin/wallet/WalletCreator.java | 12 +++++++++---
 src/main/java/fucoin/wallet/WalletImpl.java    |  4 ++--
 4 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/main/java/fucoin/Main.java b/src/main/java/fucoin/Main.java
index c715d6f..be9fc41 100644
--- a/src/main/java/fucoin/Main.java
+++ b/src/main/java/fucoin/Main.java
@@ -18,6 +18,7 @@ import java.util.List;
 public class Main {
 
     private static int numberOfWallets = 2;
+    private static boolean createGUI = false;
 
     private static ActorSystem cSystem;
 
@@ -56,9 +57,9 @@ public class Main {
 
             if (i > 0) {
                 //chain the wallets. wallet2 knows wallet1, wallet3 knows wallet2 and so on.
-                props = WalletImpl.props(cActiveActors.get(i - 1), nameOfTheWallet);
+                props = WalletImpl.props(cActiveActors.get(i - 1), nameOfTheWallet, createGUI);
             } else {
-                props = WalletImpl.props(null, nameOfTheWallet);
+                props = WalletImpl.props(null, nameOfTheWallet, createGUI);
             }
 
             ActorRef actorRef = cSystem.actorOf(props, nameOfTheWallet);
diff --git a/src/main/java/fucoin/MainRemote.java b/src/main/java/fucoin/MainRemote.java
index 67c8520..dd1c1aa 100644
--- a/src/main/java/fucoin/MainRemote.java
+++ b/src/main/java/fucoin/MainRemote.java
@@ -91,7 +91,7 @@ public class MainRemote {
         }
 
         // spawn wallet
-        system.actorOf(WalletImpl.props(preknownNeighbour, walletName), walletName);
+        system.actorOf(WalletImpl.props(preknownNeighbour, walletName, true), walletName);
 
     }
 }
diff --git a/src/main/java/fucoin/wallet/WalletCreator.java b/src/main/java/fucoin/wallet/WalletCreator.java
index 2a512b9..f8f6e4d 100644
--- a/src/main/java/fucoin/wallet/WalletCreator.java
+++ b/src/main/java/fucoin/wallet/WalletCreator.java
@@ -7,18 +7,24 @@ import fucoin.gui.WalletGuiControlImpl;
 public class WalletCreator implements Creator<AbstractWallet> {
     private ActorRef preKnownNeighbour;
     private String walletName;
+    private boolean createGUI;
 
-    public WalletCreator(ActorRef preKnownNeighbour, String walletName) {
+    public WalletCreator(ActorRef preKnownNeighbour, String walletName, boolean createGUI) {
         this.preKnownNeighbour = preKnownNeighbour;
         this.walletName = walletName;
+        this.createGUI = createGUI;
     }
 
     @Override
     public WalletImpl create() throws Exception {
+
         WalletImpl wallet = new WalletImpl(preKnownNeighbour, walletName);
 
-        WalletGuiControlImpl gui = new WalletGuiControlImpl(wallet);
-        wallet.setGui(gui);
+        if (createGUI) {
+            WalletGuiControlImpl gui = new WalletGuiControlImpl(wallet);
+            wallet.setGui(gui);
+        }
+
         return wallet;
     }
 }
diff --git a/src/main/java/fucoin/wallet/WalletImpl.java b/src/main/java/fucoin/wallet/WalletImpl.java
index 4a46881..e2cdbef 100644
--- a/src/main/java/fucoin/wallet/WalletImpl.java
+++ b/src/main/java/fucoin/wallet/WalletImpl.java
@@ -32,8 +32,8 @@ public class WalletImpl extends AbstractWallet {
         }
     }
 
-    public static Props props(ActorRef preKnownNeighbour, String walletName) {
-        return Props.create(new WalletCreator(preKnownNeighbour, walletName));
+    public static Props props(ActorRef preKnownNeighbour, String walletName, boolean createGUI) {
+        return Props.create(new WalletCreator(preKnownNeighbour, walletName, createGUI));
     }
 
     /**
-- 
GitLab