Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8166242

Removal of com.sun.javafx.embed.AbstractEvents

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 8, 9
    • Fix Version/s: tbd
    • Component/s: javafx

      Description

      The information about (to be forwarded) events that is exchanged between JFXPanel/FXCanvas and EmbeddedScene/EmbeddedStage is currently encoded via constants of com.sun.javafx.embed.AbstractEvents. That is, FXCanvas and JFXPanel map SWT respectively AWT event information to constants in AbstractEvents, which are then mapped to respective JavaFX representations within EmbeddedScene/EmbeddedStage.

      As FXCanvas and JFXPanel are dedicated to embedding JavaFX alone (according to Artem Ananiev the motivation for introducing an indirection was that embedding other components was thought to be a potential scenario: http://mail.openjdk.java.net/pipermail/openjfx-dev/2016-September/019695.html), and as both already contain a lot of JavaFX specific code, the indirection no longer makes sense. It is furthermore already bypassed in certain situations. For instance, in case of EmbeddedSceneInterface#inputMethodEvent() EventType is already used as a parameter instead of an AbstractEvents constant. Also, the modifier constants defined within AbstractEvents are only used in case of key events, while for mouse and gesture events, boolean parameters are used to transport this information (which could also be done in case of key events).

      To improve readability and maintainability of the code base, AbstractEvents should be removed, directly using JavaFX abstractions to mediate between FXCanvas/JFXPanel and EmbeddedScene/EmbeddedStage instead. This might also bring a slight performance improvement.

        Attachments

          Activity

            People

            • Assignee:
              anyssen Alexander Nyssen
              Reporter:
              anyssen Alexander Nyssen
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated: