Package org.testfx.service.adapter.impl
Class JavafxRobotAdapter
- java.lang.Object
-
- org.testfx.service.adapter.impl.JavafxRobotAdapter
-
- All Implemented Interfaces:
RobotAdapter<JavafxRobotAdapter>
public class JavafxRobotAdapter extends java.lang.Object implements RobotAdapter<JavafxRobotAdapter>
ARobotAdapterimplementation that uses the only the JavaFX public API.Developer's Note: Forcing the type parameter to be
JavafxRobotAdapteris a bit of a kludge. Ideally we would use aJavafxRobotinstead but such a type does not exist.
-
-
Field Summary
Fields Modifier and Type Field Description private booleanisAltDownprivate booleanisButton1Pressedprivate booleanisButton2Pressedprivate booleanisButton3Pressedprivate booleanisControlDownprivate booleanisMetaDownprivate booleanisShiftDownprivate javafx.scene.input.MouseButtonlastButtonPressedprivate javafx.scene.Scenesceneprivate doublesceneMouseXprivate doublesceneMouseYprivate doublescreenMouseXprivate doublescreenMouseY
-
Constructor Summary
Constructors Constructor Description JavafxRobotAdapter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private javafx.scene.input.KeyEventcreateKeyEvent(javafx.event.EventType<javafx.scene.input.KeyEvent> eventType, javafx.scene.input.KeyCode keyCode, java.lang.String character)private javafx.scene.input.MouseEventcreateMouseEvent(javafx.event.EventType<javafx.scene.input.MouseEvent> eventType, double x, double y, javafx.scene.input.MouseButton mouseButton, int clickCount)private javafx.scene.input.ScrollEventcreateScrollEvent(int wheelAmount)javafx.scene.paint.ColorgetCapturePixelColor(javafx.geometry.Point2D location)Gets the color of a pixel at the given JavaFx coordinates.javafx.scene.image.ImagegetCaptureRegion(javafx.geometry.Rectangle2D region)Captures a region of the screen.private javafx.event.EventTargetgetEventTarget(javafx.scene.Scene scene)javafx.geometry.Point2DgetMouseLocation()Returns the current position of the cursor in JavaFx coordinatesvoidkeyPress(javafx.scene.input.KeyCode key)Function used to make the robot press a key.voidkeyRelease(javafx.scene.input.KeyCode key)Function used to make the robot release a key.voidkeyType(javafx.scene.input.KeyCode key, java.lang.String character)voidmouseClick(javafx.scene.input.MouseButton button)voidmouseClick(javafx.scene.input.MouseButton button, int clickCount)voidmouseDrag(javafx.scene.input.MouseButton button)voidmouseMove(javafx.geometry.Point2D location)Moves the mouse cursor to the given position in JavaFx coordinatesvoidmousePress(javafx.scene.input.MouseButton button)Makes the robot press a mouse button.voidmousePress(javafx.scene.input.MouseButton button, int clickCount)voidmouseRelease(javafx.scene.input.MouseButton button)Makes the robot release a mouse button.voidmouseRelease(javafx.scene.input.MouseButton button, int clickCount)voidmouseWheel(int wheelAmount)Makes the robot to simulate a action of the mouse wheel.
Negative values indicate movement up/away from the user, positive values indicate movement down/towards the user.voidrobotCreate()Creates a robot.voidrobotCreate(javafx.scene.Scene scene)voidrobotDestroy()Destroys the robot
-
-
-
Field Detail
-
scene
private javafx.scene.Scene scene
-
isShiftDown
private boolean isShiftDown
-
isControlDown
private boolean isControlDown
-
isAltDown
private boolean isAltDown
-
isMetaDown
private boolean isMetaDown
-
lastButtonPressed
private javafx.scene.input.MouseButton lastButtonPressed
-
isButton1Pressed
private boolean isButton1Pressed
-
isButton2Pressed
private boolean isButton2Pressed
-
isButton3Pressed
private boolean isButton3Pressed
-
sceneMouseX
private double sceneMouseX
-
sceneMouseY
private double sceneMouseY
-
screenMouseX
private double screenMouseX
-
screenMouseY
private double screenMouseY
-
-
Method Detail
-
robotCreate
public void robotCreate(javafx.scene.Scene scene)
-
robotCreate
public void robotCreate()
Description copied from interface:RobotAdapterCreates a robot.- Specified by:
robotCreatein interfaceRobotAdapter<JavafxRobotAdapter>
-
robotDestroy
public void robotDestroy()
Description copied from interface:RobotAdapterDestroys the robot- Specified by:
robotDestroyin interfaceRobotAdapter<JavafxRobotAdapter>
-
keyPress
public void keyPress(javafx.scene.input.KeyCode key)
Description copied from interface:RobotAdapterFunction used to make the robot press a key. The key must be a physical existing key on the keyboard.- Specified by:
keyPressin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
key- the key to press (must exist on a keyboard)
-
keyRelease
public void keyRelease(javafx.scene.input.KeyCode key)
Description copied from interface:RobotAdapterFunction used to make the robot release a key. The key must be a physical existing key on the keyboard.- Specified by:
keyReleasein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
key- the key to press (must exist on a keyboard)
-
keyType
public void keyType(javafx.scene.input.KeyCode key, java.lang.String character)
-
getMouseLocation
public javafx.geometry.Point2D getMouseLocation()
Description copied from interface:RobotAdapterReturns the current position of the cursor in JavaFx coordinates- Specified by:
getMouseLocationin interfaceRobotAdapter<JavafxRobotAdapter>- Returns:
- the current position of the mouse cursor
-
mouseMove
public void mouseMove(javafx.geometry.Point2D location)
Description copied from interface:RobotAdapterMoves the mouse cursor to the given position in JavaFx coordinates- Specified by:
mouseMovein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
location- the location in JavaFx coordinates to move the cursor to
-
mousePress
public void mousePress(javafx.scene.input.MouseButton button, int clickCount)
-
mouseRelease
public void mouseRelease(javafx.scene.input.MouseButton button, int clickCount)
-
mouseClick
public void mouseClick(javafx.scene.input.MouseButton button, int clickCount)
-
mousePress
public void mousePress(javafx.scene.input.MouseButton button)
Description copied from interface:RobotAdapterMakes the robot press a mouse button.- Specified by:
mousePressin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
button- the button to press
-
mouseRelease
public void mouseRelease(javafx.scene.input.MouseButton button)
Description copied from interface:RobotAdapterMakes the robot release a mouse button.- Specified by:
mouseReleasein interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
button- the button to release
-
mouseClick
public void mouseClick(javafx.scene.input.MouseButton button)
-
mouseDrag
public void mouseDrag(javafx.scene.input.MouseButton button)
-
mouseWheel
public void mouseWheel(int wheelAmount)
Description copied from interface:RobotAdapterMakes the robot to simulate a action of the mouse wheel.
Negative values indicate movement up/away from the user, positive values indicate movement down/towards the user.- Specified by:
mouseWheelin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
wheelAmount- the amount to scroll
-
getCapturePixelColor
public javafx.scene.paint.Color getCapturePixelColor(javafx.geometry.Point2D location)
Description copied from interface:RobotAdapterGets the color of a pixel at the given JavaFx coordinates. The returned Color is in the JavaFx color space. //TODO Due to technical reasons, there might be a deviation in color.- Specified by:
getCapturePixelColorin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
location- of the pixel in JavaFx coordinates, to retrieve the color for- Returns:
- the Color of the given Pixel in the JavaFx color space
-
getCaptureRegion
public javafx.scene.image.Image getCaptureRegion(javafx.geometry.Rectangle2D region)
Description copied from interface:RobotAdapterCaptures a region of the screen. The returned Image is in the JavaFx color space. //TODO Due to technical reasons, there might be a deviation.- Specified by:
getCaptureRegionin interfaceRobotAdapter<JavafxRobotAdapter>- Parameters:
region- the region to capture in JavaFx coordinates- Returns:
- a image of the region
-
getEventTarget
private javafx.event.EventTarget getEventTarget(javafx.scene.Scene scene)
-
createKeyEvent
private javafx.scene.input.KeyEvent createKeyEvent(javafx.event.EventType<javafx.scene.input.KeyEvent> eventType, javafx.scene.input.KeyCode keyCode, java.lang.String character)
-
createMouseEvent
private javafx.scene.input.MouseEvent createMouseEvent(javafx.event.EventType<javafx.scene.input.MouseEvent> eventType, double x, double y, javafx.scene.input.MouseButton mouseButton, int clickCount)
-
createScrollEvent
private javafx.scene.input.ScrollEvent createScrollEvent(int wheelAmount)
-
-