~tapaal-contributor/tapaal/Remove-ExportPNXML-button-1718642

« back to all changes in this revision

Viewing changes to src/dk/aau/cs/gui/components/handlers/DragHandler.java

  • Committer: srba.jiri at gmail
  • Date: 2018-07-06 10:33:18 UTC
  • mfrom: (952.5.187 guirefactor)
  • Revision ID: srba.jiri@gmail.com-20180706103318-u96e2a9ekuqtq08m
merged in branch lp:tapaal/anniversary-next10 refactoring the GUI

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package dk.aau.cs.gui.components.handlers;
2
 
 
3
 
import java.awt.Point;
4
 
import java.awt.event.MouseEvent;
5
 
 
6
 
import javax.swing.JComponent;
7
 
 
8
 
import pipe.gui.Grid;
9
 
import dk.aau.cs.gui.DrawingSurface;
10
 
 
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;
16
 
 
17
 
        public DragHandler(JComponent draggableComponent,
18
 
                        DrawingSurface drawingSurface, boolean snapToGrid) {
19
 
                this.draggableComponent = draggableComponent;
20
 
                this.drawingSurface = drawingSurface;
21
 
                this.snapToGrid = snapToGrid;
22
 
        }
23
 
 
24
 
        @Override
25
 
        public void mouseMoved(MouseEvent e) {
26
 
                anchorPoint = e.getPoint();
27
 
        }
28
 
 
29
 
        @Override
30
 
        public void mouseDragged(MouseEvent e) {
31
 
                int anchorX = anchorPoint.x;
32
 
                int anchorY = anchorPoint.y;
33
 
 
34
 
                Point parentOnScreen = draggableComponent.getParent().getLocationOnScreen();
35
 
                Point mouseOnScreen = e.getLocationOnScreen();
36
 
 
37
 
                int x = Math.max(0, mouseOnScreen.x - parentOnScreen.x - anchorX);
38
 
                int y = Math.max(0, mouseOnScreen.y - parentOnScreen.y - anchorY);
39
 
 
40
 
                if (snapToGrid) {
41
 
                        x = Grid.getModifiedX(x);
42
 
                        y = Grid.getModifiedY(y);
43
 
                }
44
 
 
45
 
                Point position = new Point(x, y);
46
 
                draggableComponent.setLocation(position);
47
 
 
48
 
                drawingSurface.updatePreferredSize();
49
 
        }
50
 
}
 
 
b'\\ No newline at end of file'