/*
 * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package com.sun.javafx.embed;

import javafx.event.EventType;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.RotateEvent;
import javafx.scene.input.ScrollEvent;
import javafx.scene.input.SwipeEvent;
import javafx.scene.input.ZoomEvent;

import com.sun.javafx.tk.FocusCause;

An utility class to translate input events between embedded application and FX.
/** * An utility class to translate input events between embedded * application and FX. * */
public class AbstractEvents { public final static int MOUSEEVENT_PRESSED = 0; public final static int MOUSEEVENT_RELEASED = 1; public final static int MOUSEEVENT_CLICKED = 2; public final static int MOUSEEVENT_ENTERED = 3; public final static int MOUSEEVENT_EXITED = 4; public final static int MOUSEEVENT_MOVED = 5; public final static int MOUSEEVENT_DRAGGED = 6; public final static int MOUSEEVENT_VERTICAL_WHEEL = 7; public final static int MOUSEEVENT_HORIZONTAL_WHEEL = 8; public final static int MOUSEEVENT_NONE_BUTTON = 0; public final static int MOUSEEVENT_PRIMARY_BUTTON = 1; public final static int MOUSEEVENT_SECONDARY_BUTTON = 2; public final static int MOUSEEVENT_MIDDLE_BUTTON = 4; public final static int MOUSEEVENT_BACK_BUTTON = 8; public final static int MOUSEEVENT_FORWARD_BUTTON = 16; public final static int KEYEVENT_PRESSED = 0; public final static int KEYEVENT_RELEASED = 1; public final static int KEYEVENT_TYPED = 2; public final static int ZOOMEVENT_STARTED = 0; public final static int ZOOMEVENT_ZOOM = 1; public final static int ZOOMEVENT_FINISHED = 2; public final static int ROTATEEVENT_STARTED = 0; public final static int ROTATEEVENT_ROTATE = 1; public final static int ROTATEEVENT_FINISHED = 2; public final static int SCROLLEVENT_STARTED = 0; public final static int SCROLLEVENT_SCROLL = 1; public final static int SCROLLEVENT_FINISHED = 2; public final static int SWIPEEVENT_DOWN = 0; public final static int SWIPEEVENT_UP = 1; public final static int SWIPEEVENT_LEFT = 2; public final static int SWIPEEVENT_RIGHT = 3; public final static int FOCUSEVENT_ACTIVATED = 0; public final static int FOCUSEVENT_TRAVERSED_FORWARD = 1; public final static int FOCUSEVENT_TRAVERSED_BACKWARD = 2; public final static int FOCUSEVENT_DEACTIVATED = 3; public final static int MODIFIER_SHIFT = 1; public final static int MODIFIER_CONTROL = 2; public final static int MODIFIER_ALT = 4; public final static int MODIFIER_META = 8; public static EventType<MouseEvent> mouseIDToFXEventID(int embedMouseID) { switch (embedMouseID) { case MOUSEEVENT_PRESSED: return MouseEvent.MOUSE_PRESSED; case MOUSEEVENT_RELEASED: return MouseEvent.MOUSE_RELEASED; case MOUSEEVENT_CLICKED: return MouseEvent.MOUSE_CLICKED; case MOUSEEVENT_ENTERED: return MouseEvent.MOUSE_ENTERED; case MOUSEEVENT_EXITED: return MouseEvent.MOUSE_EXITED; case MOUSEEVENT_MOVED: return MouseEvent.MOUSE_MOVED; case MOUSEEVENT_DRAGGED: return MouseEvent.MOUSE_DRAGGED; } // Should never reach here return MouseEvent.MOUSE_MOVED; } public static MouseButton mouseButtonToFXMouseButton(int embedButton) { switch (embedButton) { case MOUSEEVENT_PRIMARY_BUTTON: return MouseButton.PRIMARY; case MOUSEEVENT_SECONDARY_BUTTON: return MouseButton.SECONDARY; case MOUSEEVENT_MIDDLE_BUTTON: return MouseButton.MIDDLE; case MOUSEEVENT_BACK_BUTTON: return MouseButton.BACK; case MOUSEEVENT_FORWARD_BUTTON: return MouseButton.FORWARD; } // Should never reach here return MouseButton.NONE; } public static EventType<KeyEvent> keyIDToFXEventType(int embedKeyID) { switch (embedKeyID) { case KEYEVENT_PRESSED: return KeyEvent.KEY_PRESSED; case KEYEVENT_RELEASED: return KeyEvent.KEY_RELEASED; case KEYEVENT_TYPED: return KeyEvent.KEY_TYPED; } // Should never reach here return KeyEvent.KEY_TYPED; } public static EventType<ZoomEvent> zoomIDToFXEventType(int zoomID) { switch(zoomID) { case ZOOMEVENT_STARTED: return ZoomEvent.ZOOM_STARTED; case ZOOMEVENT_ZOOM: return ZoomEvent.ZOOM; case ZOOMEVENT_FINISHED: return ZoomEvent.ZOOM_FINISHED; } // Should never reach here return ZoomEvent.ZOOM; } public static EventType<RotateEvent> rotateIDToFXEventType(int rotateID) { switch(rotateID) { case ROTATEEVENT_STARTED: return RotateEvent.ROTATION_STARTED; case ROTATEEVENT_ROTATE: return RotateEvent.ROTATE; case ROTATEEVENT_FINISHED: return RotateEvent.ROTATION_FINISHED; } // Should never reach here return RotateEvent.ROTATE; } public static EventType<SwipeEvent> swipeIDToFXEventType(int swipeID) { switch(swipeID) { case SWIPEEVENT_UP: return SwipeEvent.SWIPE_UP; case SWIPEEVENT_DOWN: return SwipeEvent.SWIPE_DOWN; case SWIPEEVENT_LEFT: return SwipeEvent.SWIPE_LEFT; case SWIPEEVENT_RIGHT: return SwipeEvent.SWIPE_RIGHT; } // Should never reach here return SwipeEvent.SWIPE_DOWN; } public static EventType<ScrollEvent> scrollIDToFXEventType(int scrollID) { switch(scrollID) { case SCROLLEVENT_STARTED: return ScrollEvent.SCROLL_STARTED; case SCROLLEVENT_FINISHED: return ScrollEvent.SCROLL_FINISHED; case MOUSEEVENT_VERTICAL_WHEEL: case MOUSEEVENT_HORIZONTAL_WHEEL: case SCROLLEVENT_SCROLL: return ScrollEvent.SCROLL; } // Should never reach here return ScrollEvent.SCROLL; } public static FocusCause focusCauseToPeerFocusCause(int focusCause) { switch (focusCause) { case FOCUSEVENT_ACTIVATED: return FocusCause.ACTIVATED; case FOCUSEVENT_TRAVERSED_FORWARD: return FocusCause.TRAVERSED_FORWARD; case FOCUSEVENT_TRAVERSED_BACKWARD: return FocusCause.TRAVERSED_BACKWARD; case FOCUSEVENT_DEACTIVATED: return FocusCause.DEACTIVATED; } // Should never reach here return FocusCause.ACTIVATED; } }