package GKA.Controler.MouseControler;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import GKA.Controler.MainControler;
import GKA.Graph.GKAGraphInterface;
import com.mxgraph.model.mxCell;
import com.mxgraph.swing.mxGraphComponent;
public class MouseEventControler {
private static MouseEventInterface runningEvent;
public static MouseAdapter getMouseAdapter(mxGraphComponent graphComponent, GKAGraphInterface graph){
return new MouseAdapter()
{
public void mouseReleased(MouseEvent e)
{
Object cell = graphComponent.getCellAt(e.getX(), e.getY());
if (cell != null && cell instanceof mxCell)
{
runEvent((mxCell) cell);
}
}
};
}
public static void newEvent(MouseEventInterface mouseEvent){
if (runningEvent == null || runningEvent.isFinished()){
runningEvent = mouseEvent;
}else{
runningEvent.cancelOperation();
runningEvent = mouseEvent;
}
}
private static void runEvent(mxCell cell){
if(runningEvent != null && !runningEvent.isFinished()){
runningEvent.addEventObject(cell);
}
}
public static void cancel() {
runningEvent.cancelOperation();
MainControler.sendMessage("Canceled Operation");
}
}