Skip to content
Snippets Groups Projects
SuperVisorGuiControlImpl.java 2.09 KiB
Newer Older
import fucoin.supervisor.AmountTableModel;
import fucoin.supervisor.SuperVisorImpl;

import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import java.awt.event.ItemEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class SuperVisorGuiControlImpl implements SuperVisorGuiControl {
    private SuperVisorImpl superVisor;

    private AmountTableModel amountTableModel;

    private SuperVisorThreadGUI threadGUI;

    private boolean logActive = false;
David Bohn's avatar
David Bohn committed

    public SuperVisorGuiControlImpl(SuperVisorImpl sv) {
        superVisor = sv;
        init();
    }

    private void init() {

        amountTableModel = new AmountTableModel();

        threadGUI = new SuperVisorThreadGUI(this);
        threadGUI.init();

    }

    public void guiTerminated() {
        superVisor.exit();
    }

    @Override
    public void onLeave() {
        threadGUI.dispose();
    @Override
    public void updateTable(String address, String name, int amount) {
        this.amountTableModel.updateTable(address, name, amount);
    }
David Bohn's avatar
David Bohn committed

    private void log(LogMessage logMessage) {
        if (logActive) {
            threadGUI.log(logMessage);
        }

    @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));
    }

    public AmountTableModel getAmountTableModel() {
        return amountTableModel;
    }

    public void setAmountTableModel(AmountTableModel amountTableModel) {
        this.amountTableModel = amountTableModel;
    }

    public void activateLogging() {
        this.logActive = true;
    }

    public void disableLogging() {
        this.logActive = false;
    }

    public boolean isLogActive() {
        return logActive;
    }