package jforex.charts;
import com.dukascopy.api.*;
import com.dukascopy.api.chart.mouse.IChartPanelMouseEvent;
import com.dukascopy.api.chart.mouse.IChartPanelMouseListener;
public class MouseListenerStrat implements IStrategy {
private IConsole console;
private IChart chart;
private IChartPanelMouseListener listener;
@Override
public void onStart(IContext context) throws JFException {
console = context.getConsole();
chart = context.getChart(Instrument.EURUSD);
if(chart == null){
console.getErr().println("EURUSDチャートが開かれていません");
context.stop();
}
chart.addMouseListener(false, listener = new IChartPanelMouseListener(){
public void mouseClicked( IChartPanelMouseEvent e) { print(e, "マウスボタンクリック");}
public void mousePressed( IChartPanelMouseEvent e) { print(e, "マウスボタンが押された");}
public void mouseReleased(IChartPanelMouseEvent e) { print(e, "マウスボタンが離された");}
public void mouseEntered( IChartPanelMouseEvent e) { print(e, "マウスカーソルがチャート内に入った");}
public void mouseExited( IChartPanelMouseEvent e) { print(e, "マウスカーソルがチャート外に出た");}
public void mouseDragged( IChartPanelMouseEvent e) { print(e, "マウスドラッグされた");}
public void mouseMoved( IChartPanelMouseEvent e) { print(e, "マウス移動した");}
});
}
private void print(IChartPanelMouseEvent e, String comment){
console.getOut().println(
String.format("%s 時間:%s X軸=%s Y軸=%s",
comment,
e.toString(),
e.getSourceEvent().getXOnScreen(),
e.getSourceEvent().getYOnScreen()
)
);
}
@Override
public void onStop() throws JFException {
chart.removeMouseListener(listener);
}
@Override
public void onTick(Instrument instrument, ITick tick) throws JFException {}
@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 {}
}