X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FShortcutKeyMaskExWrapper.java;h=93ce13e718a69d1f37a0a30bb39fdbf69ec76159;hb=refs%2Fheads%2FJAL-3253_applet_omnibus-BH;hp=c83da4e1f83e857379bde966d8c4ef15860156f4;hpb=ab0e5f2223a993371761baf240d815abdfcbb950;p=jalview.git diff --git a/src/jalview/util/ShortcutKeyMaskExWrapper.java b/src/jalview/util/ShortcutKeyMaskExWrapper.java index c83da4e..93ce13e 100644 --- a/src/jalview/util/ShortcutKeyMaskExWrapper.java +++ b/src/jalview/util/ShortcutKeyMaskExWrapper.java @@ -1,49 +1,65 @@ package jalview.util; +import java.awt.Toolkit; import java.awt.event.MouseEvent; +/** + * retrieve KeyEvent masks for Java 8 or Java 11+ + * + * @author hansonr + * + */ public class ShortcutKeyMaskExWrapper { - - private static final Float specversion; - - private static final float modern; - public static final int SHIFT_DOWN_MASK; public static final int ALT_DOWN_MASK; - private static final ShortcutKeyMaskExWrapperI wrapper; + public static final int SHORTCUT_MASK; static { - specversion = Platform.isJS() ? Float.valueOf(8) - : Float.parseFloat( - System.getProperty("java.specification.version")); - modern = 11; - - if (specversion >= modern) + float specversion = Platform.getJavaVersion(); + String method; + // BH technically, these are not masks; they are bits. + if (specversion >= 11) { - wrapper = new jalview.util.ShortcutKeyMaskExWrapper11(); - SHIFT_DOWN_MASK = jalview.util.ShortcutKeyMaskExWrapper11.SHIFT_DOWN_MASK; - ALT_DOWN_MASK = jalview.util.ShortcutKeyMaskExWrapper11.ALT_DOWN_MASK; + SHIFT_DOWN_MASK = 0x040; // KeyEvent.SHIFT_DOWN_MASK; + ALT_DOWN_MASK = 0x200; // KeyEvent.ALT_DOWN_MASK; + method = "getMenuShortcutKeyMaskEx"; } else { - wrapper = new jalview.util.ShortcutKeyMaskExWrapper8(); - SHIFT_DOWN_MASK = jalview.util.ShortcutKeyMaskExWrapper8.SHIFT_DOWN_MASK; - ALT_DOWN_MASK = jalview.util.ShortcutKeyMaskExWrapper8.ALT_DOWN_MASK; + SHIFT_DOWN_MASK = 0x01; // KeyEvent.SHIFT_MASK; + ALT_DOWN_MASK = 0x08; // KeyEvent.ALT_MASK; + method = "getMenuShortcutKeyMask"; } + + int mask = 0; + try + { + // Just use reflection -- doesn't matter what version is running. + Toolkit tk = Toolkit.getDefaultToolkit(); + mask = (int) (tk.getClass().getMethod(method, new Class[0]) + .invoke(tk, new Object[0])); + } catch (Exception e) + { + System.out.println("Shortcut exception: " + e); + } + + SHORTCUT_MASK = mask; } + // BH Q: Why not just use the public static field? public static int getMenuShortcutKeyMaskEx() { - return wrapper.getMenuShortcutKeyMaskEx(); + return SHORTCUT_MASK; } + // BH Q: Why is this here? public static int getModifiersEx(MouseEvent e) { - return wrapper.getModifiersEx(e); + return e.getModifiersEx(); } }