Class OSXAdapter

  • All Implemented Interfaces:
    java.lang.reflect.InvocationHandler

    public class OSXAdapter
    extends java.lang.Object
    implements java.lang.reflect.InvocationHandler
    Hooks existing preferences/about/quit functionality from an existing Java app into handlers for the Mac OS X application menu. Uses a Proxy object to dynamically implement the com.apple.eawt.ApplicationListener interface and register it with the com.apple.eawt.Application object. This allows the complete project to be both built and run on any platform without any stubs or placeholders. Useful for developers looking to implement Mac OS X features while supporting multiple platforms with minimal impact.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected OSXAdapter​(java.lang.String proxySignature, java.lang.Object target, java.lang.reflect.Method handler)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean callTarget​(java.lang.Object appleEvent)  
      java.lang.Object invoke​(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)  
      protected boolean isCorrectMethod​(java.lang.reflect.Method method, java.lang.Object[] args)  
      private static boolean isMinJdk9()  
      static void setAboutHandler​(java.lang.Object target, java.lang.reflect.Method aboutHandler)  
      protected void setApplicationEventHandled​(java.lang.Object event, boolean handled)  
      static void setFileHandler​(java.lang.Object target, java.lang.reflect.Method fileHandler)  
      static void setHandler​(OSXAdapter adapter)  
      static void setPreferencesHandler​(java.lang.Object target, java.lang.reflect.Method prefsHandler)  
      static void setQuitHandler​(java.lang.Object target, java.lang.reflect.Method quitHandler)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • targetObject

        protected java.lang.Object targetObject
      • targetMethod

        protected java.lang.reflect.Method targetMethod
      • proxySignature

        protected java.lang.String proxySignature
      • macOSXApplication

        static java.lang.Object macOSXApplication
    • Constructor Detail

      • OSXAdapter

        protected OSXAdapter​(java.lang.String proxySignature,
                             java.lang.Object target,
                             java.lang.reflect.Method handler)
    • Method Detail

      • isMinJdk9

        private static boolean isMinJdk9()
      • setQuitHandler

        public static void setQuitHandler​(java.lang.Object target,
                                          java.lang.reflect.Method quitHandler)
      • setAboutHandler

        public static void setAboutHandler​(java.lang.Object target,
                                           java.lang.reflect.Method aboutHandler)
      • setPreferencesHandler

        public static void setPreferencesHandler​(java.lang.Object target,
                                                 java.lang.reflect.Method prefsHandler)
      • setFileHandler

        public static void setFileHandler​(java.lang.Object target,
                                          java.lang.reflect.Method fileHandler)
      • setHandler

        public static void setHandler​(OSXAdapter adapter)
      • callTarget

        public boolean callTarget​(java.lang.Object appleEvent)
                           throws java.lang.reflect.InvocationTargetException,
                                  java.lang.IllegalAccessException
        Throws:
        java.lang.reflect.InvocationTargetException
        java.lang.IllegalAccessException
      • invoke

        public java.lang.Object invoke​(java.lang.Object proxy,
                                       java.lang.reflect.Method method,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable
        Specified by:
        invoke in interface java.lang.reflect.InvocationHandler
        Throws:
        java.lang.Throwable
      • isCorrectMethod

        protected boolean isCorrectMethod​(java.lang.reflect.Method method,
                                          java.lang.Object[] args)
      • setApplicationEventHandled

        protected void setApplicationEventHandled​(java.lang.Object event,
                                                  boolean handled)