/*******************************************************************************
* Copyright (c) 2016 Alex Shapiro - github.com/shpralex
* This program and the accompanying materials
* are made available under the terms of the The MIT License (MIT)
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*******************************************************************************/
package com.sproutlife.panel.gamepanel.handler;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import com.sproutlife.panel.PanelController;
import com.sproutlife.panel.gamepanel.handler.HandlerConsts.RequiredKey;
public class ScrollDragHandler extends BackgroundDragHandler {
private PanelController gc;
private Point lastDragPoint;
//private static Cursor handCursor = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);
private Cursor lastCursor;
public ScrollDragHandler(PanelController panelController, RequiredKey requiredKey) {
super(requiredKey);
this.gc = panelController;
}
@Override
public void mousePressed(MouseEvent mouseEvent) {
lastDragPoint = mouseEvent.getPoint();
lastCursor = gc.getScrollPanel().getCursor();
gc.getScrollPanel().setCursor(new Cursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseReleased(MouseEvent mouseEvent, boolean mouseOverChanged) {
lastDragPoint = null;
gc.getScrollPanel().setCursor(lastCursor);
}
@Override
public void mouseDragged(MouseEvent mouseEvent, boolean mouseOverChanged) {
int deltaX = lastDragPoint.x - mouseEvent.getPoint().x;
int deltaY = lastDragPoint.y - mouseEvent.getPoint().y;
lastDragPoint = mouseEvent.getPoint();
gc.getScrollController().scrollBy(deltaX, deltaY);
}
}