1
package dk.aau.cs.gui.components.handlers;
4
import java.awt.event.MouseEvent;
6
import javax.swing.JComponent;
9
import dk.aau.cs.gui.DrawingSurface;
11
public class DragHandler extends javax.swing.event.MouseInputAdapter {
12
private Point anchorPoint;
13
private JComponent draggableComponent;
14
private DrawingSurface drawingSurface;
15
private boolean snapToGrid;
17
public DragHandler(JComponent draggableComponent,
18
DrawingSurface drawingSurface, boolean snapToGrid) {
19
this.draggableComponent = draggableComponent;
20
this.drawingSurface = drawingSurface;
21
this.snapToGrid = snapToGrid;
25
public void mouseMoved(MouseEvent e) {
26
anchorPoint = e.getPoint();
30
public void mouseDragged(MouseEvent e) {
31
int anchorX = anchorPoint.x;
32
int anchorY = anchorPoint.y;
34
Point parentOnScreen = draggableComponent.getParent().getLocationOnScreen();
35
Point mouseOnScreen = e.getLocationOnScreen();
37
int x = Math.max(0, mouseOnScreen.x - parentOnScreen.x - anchorX);
38
int y = Math.max(0, mouseOnScreen.y - parentOnScreen.y - anchorY);
41
x = Grid.getModifiedX(x);
42
y = Grid.getModifiedY(y);
45
Point position = new Point(x, y);
46
draggableComponent.setLocation(position);
48
drawingSurface.updatePreferredSize();
b'\\ No newline at end of file'