From 1fa683f549852c87a2018a1ab22436427d5224f5 Mon Sep 17 00:00:00 2001 From: Luca Keidel <info@lucakeidel.de> Date: Sat, 18 Jun 2016 03:11:45 +0200 Subject: [PATCH] Consistent logging for supervisor and wallets --- src/main/java/Example.java | 84 +++++++++++++++++++ src/main/java/fucoin/AbstractNode.java | 5 -- .../fucoin/actions/join/ActionJoinAnswer.java | 2 +- .../search/ActionSearchWalletReference.java | 2 +- ...ionCommitDistributedCommittedTransfer.java | 12 +-- ...ionInvokeDistributedCommittedTransfer.java | 2 +- .../transaction/ActionInvokeSentMoney.java | 2 +- ...areDistributedCommittedTransferAnswer.java | 7 +- .../java/fucoin/gui/FilteredLogModel.java | 60 +++++++++++++ src/main/java/fucoin/gui/LogCellRenderer.java | 2 +- .../java/fucoin/gui/SuperVisorGuiControl.java | 4 +- .../fucoin/gui/SuperVisorGuiControlImpl.java | 51 ++++++++--- .../java/fucoin/gui/TransactionLogger.java | 25 ++++++ .../java/fucoin/gui/WalletGuiControl.java | 8 +- .../java/fucoin/gui/WalletGuiControlImpl.java | 29 ++----- .../fucoin/supervisor/SuperVisorImpl.java | 28 ++++++- .../java/fucoin/wallet/AbstractWallet.java | 17 +--- src/main/java/fucoin/wallet/WalletImpl.java | 48 ++++------- 18 files changed, 276 insertions(+), 112 deletions(-) create mode 100644 src/main/java/Example.java create mode 100644 src/main/java/fucoin/gui/FilteredLogModel.java create mode 100644 src/main/java/fucoin/gui/TransactionLogger.java diff --git a/src/main/java/Example.java b/src/main/java/Example.java new file mode 100644 index 0000000..13a1d66 --- /dev/null +++ b/src/main/java/Example.java @@ -0,0 +1,84 @@ +import java.awt.event.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +import javax.swing.*; + +@SuppressWarnings("serial") +public class Example extends JFrame { + public Example() { + super(); + OuterView theGUI = new OuterView(); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setResizable(false); + add(theGUI); + pack(); + setVisible(true); + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + new Example(); + } + }); + } +} + +class OuterView extends JPanel { + private String innerValue = ""; + + public OuterView() { + super(); + InnerView innerPanel = new InnerView(); + innerPanel.addPropertyChangeListener(new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals(InnerView.COMBO_CHANGED)) { + innerValue = evt.getNewValue().toString(); + System.out.println("new value from inside of OuterView: " + + innerValue); + } + } + }); + JButton button = new JButton("display OuterView's model"); + button.addActionListener(new ButtonListener()); + add(innerPanel); + add(button); + } + + private class ButtonListener implements ActionListener { + @Override + public void actionPerformed(ActionEvent ae) { + System.out.println("button was clicked. innerValue: " + innerValue); + } + } +} + +class InnerView extends JPanel { + public static final String COMBO_CHANGED = "Combo Changed"; + // private SwingPropertyChangeSupport pcSupport = new + // SwingPropertyChangeSupport(this); + String oldValue = ""; + + public InnerView() { + super(); + String[] items = new String[] { "item 1", "item 2", "item 3" }; + JComboBox comboBox = new JComboBox(items); + comboBox.addActionListener(new ComboBoxListener()); + add(comboBox); + + } + + private class ComboBoxListener implements ActionListener { + @Override + public void actionPerformed(ActionEvent ae) { + String text = ((JComboBox) ae.getSource()).getSelectedItem() + .toString(); + firePropertyChange(COMBO_CHANGED, oldValue, text); + oldValue = text; + System.out.println("store " + text + " in InnerView's model"); + } + } +} \ No newline at end of file diff --git a/src/main/java/fucoin/AbstractNode.java b/src/main/java/fucoin/AbstractNode.java index 437262c..9777980 100644 --- a/src/main/java/fucoin/AbstractNode.java +++ b/src/main/java/fucoin/AbstractNode.java @@ -68,9 +68,4 @@ public abstract class AbstractNode extends UntypedActor implements Serializable public HashMap<String, ActorRef> getKnownNeighbors() { return knownNeighbors; } - - public void log(String string) { - System.out.println(getSelf().path().name() + ": " + string); - } - } \ No newline at end of file diff --git a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java index 49cecf1..e20bbcc 100644 --- a/src/main/java/fucoin/actions/join/ActionJoinAnswer.java +++ b/src/main/java/fucoin/actions/join/ActionJoinAnswer.java @@ -29,7 +29,7 @@ public class ActionJoinAnswer extends ClientAction { protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - wallet.log("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors); + wallet.addLogMsg("Addressed to " + self.path().name() + " from " + sender.path().name() + ": someNeighbors:" + someNeighbors); // your neighbours? my neighbours! for (Entry<String, ActorRef> neighbor : someNeighbors.entrySet()) { diff --git a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java index fe514e2..9d0727a 100644 --- a/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java +++ b/src/main/java/fucoin/actions/search/ActionSearchWalletReference.java @@ -23,7 +23,7 @@ public class ActionSearchWalletReference extends Search { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - wallet.log(wallet.getKnownNeighbors() + "contains " + name + "?"); + wallet.addLogMsg(wallet.getKnownNeighbors() + "contains " + name + "?"); ttl.add(self); ActionSearchWalletReferenceAnswer answer = null; if (this.name.equals(wallet.getName())) { diff --git a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java index 884c132..6cddc6d 100644 --- a/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java +++ b/src/main/java/fucoin/actions/transaction/ActionCommitDistributedCommittedTransfer.java @@ -39,7 +39,7 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - wallet.log("ActionCommitDistributedCommittedTransfer is granted? " + granted); + wallet.addLogMsg("ActionCommitDistributedCommittedTransfer is granted? " + granted); if (granted) { Integer sourceAmount = wallet.amounts.getOrDefault(source, 0); @@ -49,21 +49,21 @@ public class ActionCommitDistributedCommittedTransfer extends ClientAction { if (source.compareTo(self) == 0) { wallet.setAmount(wallet.getAmount() - amount); - wallet.logTransactionSuccess("Sent " + amount + " FUC to " + target.path().name()); + wallet.addTransactionLogMessageSuccess("Sent " + amount + " FUC to " + target.path().name()); } else if (target.compareTo(self) == 0) { wallet.setAmount(wallet.getAmount() + amount); - wallet.logTransactionSuccess("Received " + amount + " FUC from " + source.path().name()); + wallet.addTransactionLogMessageSuccess("Received " + amount + " FUC from " + source.path().name()); } } else { - wallet.log("abort transaction with id" + id); + wallet.addLogMsg("abort transaction with id" + id); if (source.compareTo(self) == 0) { - wallet.logTransactionFail("Failed to send " + amount + " FUC to " + target.path().name() + " (Commit has not been granted)"); + wallet.addTransactionLogMessageFail("Failed to send " + amount + " FUC to " + target.path().name() + " (Commit has not been granted)"); } } - wallet.log("wallet.amounts:" + wallet.amounts); + wallet.addLogMsg("wallet.amounts:" + wallet.amounts); } } diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java index f3bf02d..13f2ca1 100644 --- a/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java +++ b/src/main/java/fucoin/actions/transaction/ActionInvokeDistributedCommittedTransfer.java @@ -21,7 +21,7 @@ public class ActionInvokeDistributedCommittedTransfer extends CoordinatorTransac @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, SuperVisorImpl superVisor) { - superVisor.log("invoke transaction " + source.path().name() + + superVisor.addLogMsg("invoke transaction " + source.path().name() + " sends " + amount + " to " + target.path().name()); diff --git a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java index 6f3bd3e..0327d8c 100644 --- a/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java +++ b/src/main/java/fucoin/actions/transaction/ActionInvokeSentMoney.java @@ -18,7 +18,7 @@ public class ActionInvokeSentMoney extends Transaction { @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, AbstractWallet wallet) { - wallet.log(wallet.getKnownNeighbors() + ""); + wallet.addLogMsg(wallet.getKnownNeighbors() + ""); if (wallet.getKnownNeighbors().containsKey(name)) { wallet.getRemoteSuperVisorActor().tell( new ActionInvokeDistributedCommittedTransfer(self, wallet.getKnownNeighbors().get(name), amount), sender); diff --git a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java index 3d2a0c0..658b149 100644 --- a/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java +++ b/src/main/java/fucoin/actions/transaction/ActionPrepareDistributedCommittedTransferAnswer.java @@ -27,8 +27,8 @@ public class ActionPrepareDistributedCommittedTransferAnswer extends Coordinator @Override protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, SuperVisorImpl superVisor) { - superVisor.log("" + superVisor.getKnownNeighbors()); - superVisor.log("granted?" + granted); + superVisor.addLogMsg("" + superVisor.getKnownNeighbors()); + superVisor.addLogMsg("granted?" + granted); DistributedCommittedTransferRequest request = superVisor.getRequest(id); if (granted) { if (request == null)//unknown DistributedCommittedTransferRequest ignore @@ -37,6 +37,7 @@ public class ActionPrepareDistributedCommittedTransferAnswer extends Coordinator if (newCount == superVisor.getKnownNeighbors().size()) { ActionCommitDistributedCommittedTransfer acdct = new ActionCommitDistributedCommittedTransfer(source, target, amount, true, timestamp, id); + superVisor.addTransactionLogMessageSuccess("Transfer of " + amount + " FUC from" + source.path().name() + " to " + target.path().name()); for (ActorRef neighbor : request.getAnswers()) { neighbor.tell(acdct, self); } @@ -45,7 +46,7 @@ public class ActionPrepareDistributedCommittedTransferAnswer extends Coordinator } else { //A client wants to rollback if (request != null) { - superVisor.log("Client does not grant commit of " + amount + " FUC (" + source.path().name() + " -> " + target.path().name() + ")"); + superVisor.addTransactionLogMessageFail("Client does not grant commit of " + amount + " FUC (" + source.path().name() + " -> " + target.path().name() + ")"); ActionCommitDistributedCommittedTransfer acdct = new ActionCommitDistributedCommittedTransfer(source, target, amount, false, timestamp, id); for (ActorRef neighbor : request.getAnswers()) { neighbor.tell(acdct, self); diff --git a/src/main/java/fucoin/gui/FilteredLogModel.java b/src/main/java/fucoin/gui/FilteredLogModel.java new file mode 100644 index 0000000..501c883 --- /dev/null +++ b/src/main/java/fucoin/gui/FilteredLogModel.java @@ -0,0 +1,60 @@ +package fucoin.gui; + +import javax.swing.*; +import java.util.ArrayList; +import java.util.List; + + +public class FilteredLogModel extends AbstractListModel<LogMessage> { + + private List<LogMessage> log; + private List<LogMessage> filteredLog; + + private boolean filterTransactions = false; + + public FilteredLogModel() { + super(); + this. + log = new ArrayList<>(); + filteredLog = new ArrayList<>(); + } + + public void setTransactionFilter() { + filterTransactions = true; + refilter(); + } + + public void clearFilter(){ + filterTransactions = false; + refilter(); + } + + private void refilter() { + filteredLog.clear(); + for (LogMessage msg : log) { + if (!filterTransactions + || (msg.getContext() == LogMessage.Context.TRANSACTION_SUCCESS + || msg.getContext() == LogMessage.Context.TRANSACTION_FAIL)) { + filteredLog.add(msg); + + } + } + fireContentsChanged(this, 0, getSize()-1); + } + + @Override + public int getSize() { + return filteredLog.size(); + } + + @Override + public LogMessage getElementAt(int index) { + return filteredLog.get(index); + } + + + public void addElement(LogMessage message) { + log.add(message); + refilter(); + } +} diff --git a/src/main/java/fucoin/gui/LogCellRenderer.java b/src/main/java/fucoin/gui/LogCellRenderer.java index 5087dae..1f787a5 100644 --- a/src/main/java/fucoin/gui/LogCellRenderer.java +++ b/src/main/java/fucoin/gui/LogCellRenderer.java @@ -28,7 +28,7 @@ public class LogCellRenderer extends DefaultListCellRenderer { } } - if(isSelected){ + if (isSelected) { setForeground(Color.WHITE); } diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControl.java b/src/main/java/fucoin/gui/SuperVisorGuiControl.java index bea5e7a..1d6919d 100644 --- a/src/main/java/fucoin/gui/SuperVisorGuiControl.java +++ b/src/main/java/fucoin/gui/SuperVisorGuiControl.java @@ -1,10 +1,10 @@ package fucoin.gui; -public interface SuperVisorGuiControl { +public interface SuperVisorGuiControl extends TransactionLogger { + /** * Call from SuperVisorImpl after poison pill or kill */ void onLeave(); - void log(String message); } diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java index 81a379a..91efa95 100644 --- a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java +++ b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java @@ -4,16 +4,20 @@ import fucoin.supervisor.SuperVisorImpl; import javax.swing.*; import java.awt.*; +import java.awt.event.ItemEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; public class SuperVisorGuiControlImpl implements SuperVisorGuiControl { private SuperVisorImpl superVisor; private JFrame frame; - private DefaultListModel<String> log = new DefaultListModel<>(); - private JList<String> txtLog = new JList<>(log); + private FilteredLogModel log = new FilteredLogModel(); + private JList<LogMessage> txtLog = new JList<>(log); private JScrollPane logPane = new JScrollPane(txtLog); + private JCheckBox showDebug; public SuperVisorGuiControlImpl(SuperVisorImpl sv) { superVisor = sv; @@ -31,7 +35,23 @@ public class SuperVisorGuiControlImpl implements SuperVisorGuiControl { JTable amountListView = new JTable(superVisor.getAmountTableModel()); contentPanel.add(new JScrollPane(amountListView)); - contentPanel.add(logPane); + JPanel logPanel = new JPanel(new BorderLayout()); + + txtLog.setCellRenderer(new LogCellRenderer()); + + showDebug = new JCheckBox("Show debug messages in transaction log"); + showDebug.setSelected(true); + showDebug.addItemListener(e -> { + if (e.getStateChange() == ItemEvent.SELECTED) { + log.clearFilter(); + } else { + log.setTransactionFilter(); + } + }); + + logPanel.add(showDebug, BorderLayout.NORTH); + logPanel.add(logPane, BorderLayout.CENTER); + contentPanel.add(logPanel); frame.add(contentPanel, BorderLayout.CENTER); @@ -60,16 +80,27 @@ public class SuperVisorGuiControlImpl implements SuperVisorGuiControl { frame.dispose(); } - @Override - public void log(String message) { - // One day, we may have a server log GUI as well.. - // Until then, we just print it to the console - //System.out.println(message); + private void log(LogMessage logMessage) { SwingUtilities.invokeLater(() -> { - log.addElement(message); + log.addElement(logMessage); // auto scroll to the bottom - txtLog.ensureIndexIsVisible(log.size() - 1); + txtLog.ensureIndexIsVisible(log.getSize() - 1); }); } + + @Override + public void addLogMsg(String msg) { + log(new LogMessage(msg)); + } + + @Override + public void addTransactionLogMessageSuccess(String message) { + log(new LogMessage(message, LogMessage.Context.TRANSACTION_SUCCESS)); + } + + @Override + public void addTransactionLogMessageFail(String message) { + log(new LogMessage(message, LogMessage.Context.TRANSACTION_FAIL)); + } } diff --git a/src/main/java/fucoin/gui/TransactionLogger.java b/src/main/java/fucoin/gui/TransactionLogger.java new file mode 100644 index 0000000..4a3a00d --- /dev/null +++ b/src/main/java/fucoin/gui/TransactionLogger.java @@ -0,0 +1,25 @@ +package fucoin.gui; + +/** + * All nodes implementing some kind of logging should implement this interface. + */ +public interface TransactionLogger { + + /** + * Adds a debug log message or a generic log message to the log + * @param message + */ + public void addLogMsg(String message); + + /** + * Adds a log message concerning a successful transaction + * @param message + */ + public void addTransactionLogMessageSuccess(String message); + + /** + * Adds a log message concerning a failed transaction + * @param message + */ + public void addTransactionLogMessageFail(String message); +} diff --git a/src/main/java/fucoin/gui/WalletGuiControl.java b/src/main/java/fucoin/gui/WalletGuiControl.java index 90bdbdb..301e22d 100644 --- a/src/main/java/fucoin/gui/WalletGuiControl.java +++ b/src/main/java/fucoin/gui/WalletGuiControl.java @@ -1,19 +1,13 @@ package fucoin.gui; -public interface WalletGuiControl { +public interface WalletGuiControl extends TransactionLogger { void setAddress(String address); void setAmount(int amount); void addKnownAddress(String address); - void addLogMsg(String msg); - - void addTransactionLogMessageSuccess(String message); - - void addTransactionLogMessageFail(String message); - /** * Tell the GUI, that the wallet is a remote wallet. */ diff --git a/src/main/java/fucoin/gui/WalletGuiControlImpl.java b/src/main/java/fucoin/gui/WalletGuiControlImpl.java index 2a2e008..49c69b9 100644 --- a/src/main/java/fucoin/gui/WalletGuiControlImpl.java +++ b/src/main/java/fucoin/gui/WalletGuiControlImpl.java @@ -10,7 +10,7 @@ import java.util.Enumeration; public class WalletGuiControlImpl implements WalletGuiControl { - private DefaultListModel<LogMessage> log = new DefaultListModel<>(); + private FilteredLogModel log = new FilteredLogModel(); private JFrame window = new JFrame("test"); private JPanel topPanel = new JPanel(); @@ -110,12 +110,14 @@ public class WalletGuiControlImpl implements WalletGuiControl { bottomPanel.setLayout(new BorderLayout()); + log.setTransactionFilter(); + showDebug = new JCheckBox("Show debug messages in transaction log"); showDebug.addItemListener(e -> { if (e.getStateChange() == ItemEvent.SELECTED) { - txtLog.setModel(log); + log.clearFilter(); } else { - updateFilteredLog(); + log.setTransactionFilter(); } }); @@ -222,27 +224,8 @@ public class WalletGuiControlImpl implements WalletGuiControl { SwingUtilities.invokeLater(() -> { log.addElement(logMessage); - if (!showDebug.isSelected()) { - updateFilteredLog(); - } - // auto scroll to the bottom - txtLog.ensureIndexIsVisible(log.size() - 1); + txtLog.ensureIndexIsVisible(log.getSize() - 1); }); } - - private void updateFilteredLog() { - - DefaultListModel<LogMessage> filteredLog = new DefaultListModel<>(); - Enumeration<LogMessage> elements = log.elements(); - while (elements.hasMoreElements()) { - LogMessage logMessage = elements.nextElement(); - LogMessage.Context context = logMessage.getContext(); - if (context == LogMessage.Context.TRANSACTION_FAIL || context == LogMessage.Context.TRANSACTION_SUCCESS) { - filteredLog.addElement(logMessage); - } - } - - txtLog.setModel(filteredLog); - } } diff --git a/src/main/java/fucoin/supervisor/SuperVisorImpl.java b/src/main/java/fucoin/supervisor/SuperVisorImpl.java index 1252f1c..2333a97 100644 --- a/src/main/java/fucoin/supervisor/SuperVisorImpl.java +++ b/src/main/java/fucoin/supervisor/SuperVisorImpl.java @@ -7,6 +7,7 @@ import fucoin.actions.transaction.ActionGetAmountAnswer; import fucoin.actions.transaction.SuperVisorAction; import fucoin.gui.SuperVisorGuiControl; import fucoin.AbstractNode; +import fucoin.gui.TransactionLogger; import java.util.ArrayList; import java.util.HashMap; @@ -14,7 +15,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -public class SuperVisorImpl extends AbstractNode { +public class SuperVisorImpl extends AbstractNode implements TransactionLogger{ private AmountTableModel amountTableModel; @@ -116,9 +117,28 @@ public class SuperVisorImpl extends AbstractNode { this.amountTableModel = amountTableModel; } - public void log(String message) { - if (this.gui != null) { - this.gui.log(message); + @Override + public void addLogMsg(String message) { + if (gui != null) { + gui.addLogMsg(message); + } else { + System.out.println(message); + } + } + + @Override + public void addTransactionLogMessageSuccess(String message) { + if (gui != null) { + gui.addTransactionLogMessageSuccess(message); + } else { + System.out.println(message); + } + } + + @Override + public void addTransactionLogMessageFail(String message) { + if (gui != null) { + gui.addTransactionLogMessageFail(message); } else { System.out.println(message); } diff --git a/src/main/java/fucoin/wallet/AbstractWallet.java b/src/main/java/fucoin/wallet/AbstractWallet.java index bc44d05..afcbcfa 100644 --- a/src/main/java/fucoin/wallet/AbstractWallet.java +++ b/src/main/java/fucoin/wallet/AbstractWallet.java @@ -2,13 +2,14 @@ package fucoin.wallet; import akka.actor.ActorRef; import fucoin.AbstractNode; +import fucoin.gui.TransactionLogger; import java.io.Serializable; /** * */ -public abstract class AbstractWallet extends AbstractNode implements Serializable { +public abstract class AbstractWallet extends AbstractNode implements Serializable, TransactionLogger { /** * Currently amount of this wallet @@ -94,20 +95,6 @@ public abstract class AbstractWallet extends AbstractNode implements Serializabl */ public abstract void setRemoteSuperVisorActor(ActorRef remoteSuperVisorActor); - /** - * Appends a message related to a successful transaction to the log - * - * @param msg - */ - public abstract void logTransactionSuccess(String msg); - - /** - * Appends a message related to a successful transaction to the log - * - * @param msg - */ - public abstract void logTransactionFail(String msg); - /** * Sends amount FUCs to the wallet with the address adress * diff --git a/src/main/java/fucoin/wallet/WalletImpl.java b/src/main/java/fucoin/wallet/WalletImpl.java index f35d620..4a46881 100644 --- a/src/main/java/fucoin/wallet/WalletImpl.java +++ b/src/main/java/fucoin/wallet/WalletImpl.java @@ -43,7 +43,7 @@ public class WalletImpl extends AbstractWallet { */ public void addAmount(int amount) { setAmount(this.getAmount() + amount); - log(" My amount is now " + this.getAmount()); + addLogMsg(" My amount is now " + this.getAmount()); } @Override @@ -54,7 +54,7 @@ public class WalletImpl extends AbstractWallet { @Override public void onReceive(Object message) { - log(getSender().path().name() + " invokes " + getSelf().path().name() + " to do " + message.getClass().getSimpleName()); + addLogMsg(getSender().path().name() + " invokes " + getSelf().path().name() + " to do " + message.getClass().getSimpleName()); if (message instanceof ActionInvokeRevive) { ((ActionInvokeRevive) message).doAction(this); } @@ -161,25 +161,13 @@ public class WalletImpl extends AbstractWallet { this.gui = gui; } - public String getPreKnownNeighbourName() { - return preKnownNeighbourName; - } - - public void setPreKnownNeighbourName(String preKnownNeighbourName) { - this.preKnownNeighbourName = preKnownNeighbourName; - } - - public boolean isActive() { - return isActive; - } - public void setActive(boolean isActive) { this.isActive = isActive; } @Override public boolean addKnownNeighbor(String key, ActorRef value) { - log(key + " is newNeighbor of " + name + "?" + !getKnownNeighbors().containsKey(key)); + addLogMsg(key + " is newNeighbor of " + name + "?" + !getKnownNeighbors().containsKey(key)); if (getKnownNeighbors().containsKey(key) || key.equals(name)) { return false; } @@ -191,38 +179,34 @@ public class WalletImpl extends AbstractWallet { return newNeighbor; } + public void send(String address, int amount) { + getSelf().tell(new ActionInvokeSentMoney(address, amount), getSelf()); + } + @Override - public void log(String msg) { + public void addLogMsg(String message) { if (gui != null) { - gui.addLogMsg(msg); + gui.addLogMsg(message); } else { - System.out.println(msg); + System.out.println(message); } } - @Override - public void logTransactionSuccess(String msg) { + public void addTransactionLogMessageSuccess(String message) { if (gui != null) { - gui.addTransactionLogMessageSuccess(msg); + gui.addTransactionLogMessageSuccess(message); } else { - System.out.println(msg); + System.out.println(message); } } - @Override - public void logTransactionFail(String msg) { + public void addTransactionLogMessageFail(String message) { if (gui != null) { - gui.addTransactionLogMessageFail(msg); + gui.addTransactionLogMessageFail(message); } else { - System.out.println(msg); + System.out.println(message); } } - - @Override - public void send(String address, int amount) { - getSelf().tell(new ActionInvokeSentMoney(address, amount), getSelf()); - } - } -- GitLab