javafx-embed-swing/src/javafx/embed/swing/SwingEvents.java
Print this page
*** 29,38 ****
--- 29,39 ----
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import com.sun.javafx.embed.AbstractEvents;
+ import javafx.event.EventType;
/**
* An utility class to translate cursor types between embedded
* application and Swing.
*/
*** 119,124 ****
--- 120,226 ----
if ((extModifiers & InputEvent.META_DOWN_MASK) != 0) {
embedModifiers |= AbstractEvents.MODIFIER_META;
}
return embedModifiers;
}
+
+ // FX -> Swing conversion methods
+
+ static int fxMouseEventTypeToMouseID(javafx.scene.input.MouseEvent event) {
+ EventType<?> type = event.getEventType();
+ if (type == javafx.scene.input.MouseEvent.MOUSE_MOVED) {
+ return MouseEvent.MOUSE_MOVED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_PRESSED) {
+ return MouseEvent.MOUSE_PRESSED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_RELEASED) {
+ return MouseEvent.MOUSE_RELEASED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_CLICKED) {
+ return MouseEvent.MOUSE_CLICKED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_ENTERED) {
+ return MouseEvent.MOUSE_ENTERED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_EXITED) {
+ return MouseEvent.MOUSE_EXITED;
+ }
+ if (type == javafx.scene.input.MouseEvent.MOUSE_DRAGGED) {
+ return MouseEvent.MOUSE_DRAGGED;
+ }
+ if (type == javafx.scene.input.MouseEvent.DRAG_DETECTED) {
+ return -1;
+ }
+ throw new RuntimeException("Unknown MouseEvent type: " + type);
+ }
+
+ static int fxMouseModsToMouseMods(javafx.scene.input.MouseEvent event) {
+ int mods = 0;
+ if (event.isAltDown()) {
+ mods |= InputEvent.ALT_DOWN_MASK;
+ }
+ if (event.isControlDown()) {
+ mods |= InputEvent.CTRL_DOWN_MASK;
+ }
+ if (event.isMetaDown()) {
+ mods |= InputEvent.META_DOWN_MASK;
+ }
+ if (event.isShiftDown()) {
+ mods |= InputEvent.SHIFT_DOWN_MASK;
+ }
+ if (event.isPrimaryButtonDown()) {
+ mods |= MouseEvent.BUTTON1_DOWN_MASK;
+ }
+ if (event.isSecondaryButtonDown()) {
+ mods |= MouseEvent.BUTTON2_DOWN_MASK;
+ }
+ if (event.isMiddleButtonDown()) {
+ mods |= MouseEvent.BUTTON3_DOWN_MASK;
+ }
+ return mods;
+ }
+
+ static int fxMouseButtonToMouseButton(javafx.scene.input.MouseEvent event) {
+ switch (event.getButton()) {
+ case PRIMARY:
+ return MouseEvent.BUTTON1;
+ case SECONDARY:
+ return MouseEvent.BUTTON2;
+ case MIDDLE:
+ return MouseEvent.BUTTON3;
+ }
+ return 0;
+ }
+
+ static int fxKeyEventTypeToKeyID(javafx.scene.input.KeyEvent event) {
+ EventType<?> eventType = event.getEventType();
+ if (eventType == javafx.scene.input.KeyEvent.KEY_PRESSED) {
+ return KeyEvent.KEY_PRESSED;
+ }
+ if (eventType == javafx.scene.input.KeyEvent.KEY_RELEASED) {
+ return KeyEvent.KEY_RELEASED;
+ }
+ if (eventType == javafx.scene.input.KeyEvent.KEY_TYPED) {
+ return KeyEvent.KEY_TYPED;
+ }
+ throw new RuntimeException("Unknown KeyEvent type: " + eventType);
+ }
+
+ static int fxKeyModsToKeyMods(javafx.scene.input.KeyEvent event) {
+ int mods = 0;
+ if (event.isAltDown()) {
+ mods |= InputEvent.ALT_DOWN_MASK;
+ }
+ if (event.isControlDown()) {
+ mods |= InputEvent.CTRL_DOWN_MASK;
+ }
+ if (event.isMetaDown()) {
+ mods |= InputEvent.META_DOWN_MASK;
+ }
+ if (event.isShiftDown()) {
+ mods |= InputEvent.SHIFT_DOWN_MASK;
+ }
+ return mods;
+ }
+
}