Commit | Line | Data |
---|---|---|
739b9fec AM |
1 | package org.eclipse.tracecompass.internal.provisional.tmf.ui.views.timegraph2.swtjfx.examples; |
2 | ||
3 | import org.eclipse.jdt.annotation.Nullable; | |
4 | ||
5 | import javafx.application.Application; | |
6 | import javafx.event.EventHandler; | |
7 | import javafx.scene.Cursor; | |
8 | import javafx.scene.Group; | |
9 | import javafx.scene.Scene; | |
10 | import javafx.scene.input.MouseEvent; | |
11 | import javafx.scene.paint.Color; | |
12 | import javafx.scene.shape.Circle; | |
13 | import javafx.stage.Stage; | |
14 | ||
15 | /** | |
16 | * @web http://java-buddy.blogspot.com/ | |
17 | */ | |
18 | public class ExampleMouseDrag extends Application { | |
19 | ||
20 | private double orgSceneX, orgSceneY; | |
21 | private double orgTranslateX, orgTranslateY; | |
22 | ||
23 | @Override | |
24 | public void start(@Nullable Stage primaryStage) { | |
25 | if (primaryStage == null) { | |
26 | return; | |
27 | } | |
28 | ||
29 | //Create Circles | |
30 | Circle circleRed = new Circle(50.0, Color.RED); | |
31 | circleRed.setCursor(Cursor.HAND); | |
32 | circleRed.setOnMousePressed(circleOnMousePressedEventHandler); | |
33 | circleRed.setOnMouseDragged(circleOnMouseDraggedEventHandler); | |
34 | ||
35 | Circle circleGreen = new Circle(50.0, Color.GREEN); | |
36 | circleGreen.setCursor(Cursor.MOVE); | |
37 | circleGreen.setCenterX(150); | |
38 | circleGreen.setCenterY(150); | |
39 | circleGreen.setOnMousePressed(circleOnMousePressedEventHandler); | |
40 | circleGreen.setOnMouseDragged(circleOnMouseDraggedEventHandler); | |
41 | ||
42 | Circle circleBlue = new Circle(50.0, Color.BLUE); | |
43 | circleBlue.setCursor(Cursor.CROSSHAIR); | |
44 | circleBlue.setTranslateX(300); | |
45 | circleBlue.setTranslateY(100); | |
46 | circleBlue.setOnMousePressed(circleOnMousePressedEventHandler); | |
47 | circleBlue.setOnMouseDragged(circleOnMouseDraggedEventHandler); | |
48 | ||
49 | Group root = new Group(); | |
50 | root.getChildren().addAll(circleRed, circleGreen, circleBlue); | |
51 | ||
52 | primaryStage.setResizable(false); | |
53 | primaryStage.setScene(new Scene(root, 400,350)); | |
54 | ||
55 | primaryStage.setTitle("java-buddy"); | |
56 | primaryStage.show(); | |
57 | } | |
58 | ||
59 | public static void main(String[] args) { | |
60 | launch(args); | |
61 | } | |
62 | ||
63 | private EventHandler<MouseEvent> circleOnMousePressedEventHandler = new EventHandler<MouseEvent>() { | |
64 | @Override | |
65 | public void handle(MouseEvent t) { | |
66 | orgSceneX = t.getSceneX(); | |
67 | orgSceneY = t.getSceneY(); | |
68 | orgTranslateX = ((Circle)(t.getSource())).getTranslateX(); | |
69 | orgTranslateY = ((Circle)(t.getSource())).getTranslateY(); | |
70 | } | |
71 | }; | |
72 | ||
73 | private EventHandler<MouseEvent> circleOnMouseDraggedEventHandler = new EventHandler<MouseEvent>() { | |
74 | @Override | |
75 | public void handle(MouseEvent t) { | |
76 | double offsetX = t.getSceneX() - orgSceneX; | |
77 | double offsetY = t.getSceneY() - orgSceneY; | |
78 | double newTranslateX = orgTranslateX + offsetX; | |
79 | double newTranslateY = orgTranslateY + offsetY; | |
80 | ||
81 | ((Circle)(t.getSource())).setTranslateX(newTranslateX); | |
82 | ((Circle)(t.getSource())).setTranslateY(newTranslateY); | |
83 | } | |
84 | }; | |
85 | } |