package jforex.account;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import com.dukascopy.api.*;

public class UseOfLeverageAlerter implements IStrategy {

    double lastUseOfLeverage;
    private IAccount account;
    private IConsole console;
    
    @Configurable("Use dialog")
    public boolean showDialog = true;
    
    @Override
    public void onStart(IContext context) throws JFException {
        account = context.getAccount();
        console = context.getConsole();
        lastUseOfLeverage = context.getAccount().getUseOfLeverage();

    }

    @Override
    public void onTick(Instrument instrument, ITick tick) throws JFException {
        double currentUseOfLeverage = account.getUseOfLeverage();
        if(Double.compare(currentUseOfLeverage, lastUseOfLeverage) != 0){
            String infoMessage = String.format("Leverage changed from %s to %s",
                    lastUseOfLeverage, currentUseOfLeverage);
            console.getOut().println(infoMessage);
            if(showDialog){
                JOptionPane.showMessageDialog(new JFrame("dialog"),infoMessage);
            }
            lastUseOfLeverage = currentUseOfLeverage;
        }
    }

    @Override
    public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {}

    @Override
    public void onMessage(IMessage message) throws JFException {}

    @Override
    public void onAccount(IAccount account) throws JFException {}

    @Override
    public void onStop() throws JFException {}

}
