package me.teridax.jcash.gui.deposit; import me.teridax.jcash.Logging; import me.teridax.jcash.banking.accounts.Account; public class DepositDialog { private final DepositView view; private final Account account; private final Runnable onDeposit; public DepositDialog(Account account, Runnable onDeposit) { this.account = account; this.onDeposit = onDeposit; this.view = new DepositView(); this.view.getDeposit().addActionListener(e -> depositMoney()); this.view.getCancel().addActionListener(e -> view.dispose()); this.view.showDialog(); } private void depositMoney() { var amount = view.getAmount(); Logging.LOGGER.fine("Depositing money of account: " + account.getIban() + " amount: " + amount); try { account.deposit(amount); onDeposit.run(); } catch (IllegalArgumentException ex) { Logging.LOGGER.severe("Cannot deposit money of account: " + account.getIban() + " because: " + ex.getMessage()); } finally { view.dispose(); } } }