package com.niklim.clicktrace.controller.operation;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
/**
* Base class for reusable Clicktrace operations.
*/
public abstract class AbstractOperation {
public abstract void perform();
/**
* Creates {@link ActionListener} triggering this.perform() on action event.
*
* @return
*/
public ActionListener action() {
return new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
perform();
}
};
}
/**
* Creates {@link MouseListener} triggering this.perform() on mouse click.
*
* @return
*/
public MouseListener mouse() {
return new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
perform();
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
};
}
}