Package org.apache.pdfbox.debugger.ui
Class OSXAdapter
- java.lang.Object
-
- org.apache.pdfbox.debugger.ui.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.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static java.lang.Object
macOSXApplication
protected java.lang.String
proxySignature
protected java.lang.reflect.Method
targetMethod
protected java.lang.Object
targetObject
-
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)
-
-
-
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 interfacejava.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)
-
-