8
8
import tudelft .ti2806 .pl3 .visualization .GraphMovedListener ;
9
9
10
10
import java .awt .Component ;
11
+ import java .awt .event .MouseAdapter ;
11
12
import java .awt .event .MouseEvent ;
12
- import java .awt .event .MouseListener ;
13
+ import java .awt .event .MouseMotionAdapter ;
13
14
14
15
/**
15
16
* Controller that controls the zoom bar at the bottom of the screen.
16
17
* The zoom bar is used to navigate through and zoom in on the graph.
17
18
* Created by Boris Mattijssen on 06-05-15.
18
19
*/
19
- public class ZoomBarController implements Controller , GraphMovedListener , GraphLoadedListener , MouseListener {
20
+ public class ZoomBarController implements Controller , GraphMovedListener , GraphLoadedListener {
20
21
21
22
private ZoomBarView zoomBarView ;
22
23
private ControllerContainer cc ;
@@ -31,7 +32,8 @@ public class ZoomBarController implements Controller, GraphMovedListener, GraphL
31
32
public ZoomBarController (ControllerContainer cc ) {
32
33
this .cc = cc ;
33
34
zoomBarView = new ZoomBarView ();
34
- zoomBarView .addMouseListener (this );
35
+ zoomBarView .addMouseListener (new ZoomBarMouseClicked ());
36
+ zoomBarView .addMouseMotionListener (new ZoomBarMouseDragged ());
35
37
cc .getGraphController ().addGraphMovedListener (this );
36
38
cc .getGraphController ().getGraphView ().addGraphLoadedListener (this );
37
39
cc .getGraphController ().getFilteredObservable ().addObserver (zoomBarView );
@@ -63,33 +65,38 @@ private void updateView() {
63
65
zoomBarView .moved ();
64
66
}
65
67
66
- @ Override
67
- public void mouseClicked (MouseEvent e ) {
68
+ /**
69
+ * Navigate to the graph on the given mouse x position.
70
+ *
71
+ * @param mouseX
72
+ * The mouse x position
73
+ */
74
+ private void navigateInGraph (float mouseX ) {
68
75
double size = cc .getGraphController ().getGraphView ().getGraphDimension ();
69
- float factor = (float ) e . getX ()
76
+ float factor = (float ) mouseX
70
77
/ (float ) ScreenSize .getInstance ().getWidth ();
71
78
float newPos = (float ) (factor * size );
72
79
cc .getGraphController ().moveView (newPos );
73
80
}
74
81
75
- @ Override
76
- public void mousePressed (MouseEvent e ) {
77
-
78
- }
79
-
80
- @ Override
81
- public void mouseReleased (MouseEvent e ) {
82
-
83
- }
84
-
85
- @ Override
86
- public void mouseEntered (MouseEvent e ) {
87
-
82
+ /**
83
+ * Class that handles the mouse click.
84
+ */
85
+ private class ZoomBarMouseClicked extends MouseAdapter {
86
+ @ Override
87
+ public void mouseClicked (MouseEvent e ) {
88
+ navigateInGraph (e .getX ());
89
+ }
88
90
}
89
91
90
- @ Override
91
- public void mouseExited (MouseEvent e ) {
92
-
92
+ /**
93
+ * Class that handles the mouse drag.
94
+ */
95
+ private class ZoomBarMouseDragged extends MouseMotionAdapter {
96
+ @ Override
97
+ public void mouseDragged (MouseEvent e ) {
98
+ navigateInGraph (e .getX ());
99
+ }
93
100
}
94
101
95
102
public Component getPanel () {
0 commit comments