Class PlatformHookOsx
- java.lang.Object
-
- org.openstreetmap.josm.tools.PlatformHookOsx
-
- All Implemented Interfaces:
PlatformHook
public class PlatformHookOsx extends java.lang.Object implements PlatformHook
PlatformHookimplementation for Apple macOS (formerly Mac OS X) systems.- Since:
- 1023
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.openstreetmap.josm.tools.PlatformHook
PlatformHook.JavaExpirationCallback, PlatformHook.NativeOsCallback, PlatformHook.SanityCheckCallback
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringoSBuildNumberprivate PlatformHook.NativeOsCallbackosCallback-
Fields inherited from interface org.openstreetmap.josm.tools.PlatformHook
CONSTRUCT_FROM_PLATFORM
-
-
Constructor Summary
Constructors Constructor Description PlatformHookOsx()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPrefStartupHook()The afterPrefStartupHook will be called early, but after the preferences have been loaded and basic processing of command line arguments is finished.private static voidauto(Shortcut sc)private java.lang.StringbuildOSBuildNumber()booleancanFullscreen()Determines if the platform allows full-screen.static voidenableOSXFullscreen(java.awt.Window window)Enables fullscreen support for the given window.java.io.FilegetDefaultCacheDirectory()Returns the platform-dependent default cache directory.java.io.FilegetDefaultPrefDirectory()Returns the platform-dependent default preferences directory.java.lang.StringgetDefaultStyle()Returns the default LAF to be used on this platform to look almost as a native application.java.io.FilegetDefaultUserDataDirectory()Returns the platform-dependent default user data directory.private static java.lang.StringgetHome()java.lang.StringgetOSBuildNumber()Returns OS build number.java.lang.StringgetOSDescription()Returns a detailed OS description (at least family + version).PlatformgetPlatform()Get the platform corresponding to this platform hook.java.security.cert.X509CertificategetX509Certificate(CertificateAmendment.NativeCertAmend certAmend)Returns theX509Certificatematching the given certificate amendment information.voidinitSystemShortcuts()The initSystemShortcuts hook will be called by the Shortcut class after the modifier groups have been read from the config, but before any shortcuts are read from it or registered from within the application.booleanisHtmlSupportedInMenuTooltips()Determines if HTML rendering is supported in menu tooltips.voidopenUrl(java.lang.String url)The openURL hook will be used to open a URL in the default web browser.voidpreStartupHook()The preStartupHook will be called extremely early.protected voidsetHandlers()Registers Apple handlers.voidsetNativeOsCallback(PlatformHook.NativeOsCallback callback)Registers the native OS callback.voidstartupHook(PlatformHook.JavaExpirationCallback javaCallback, PlatformHook.SanityCheckCallback sanityCheckCallback)The startupHook will be called early, but after the GUI setup has started.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.tools.PlatformHook
checkExpiredJava, exec, getDefaultProj4NadshiftDirectories, getJavaUrl, getMenuShortcutKeyMaskEx, getPossiblePreferenceDirs, isOpenJDK, rename, resolveFileLink, startupSanityChecks, warnSoonToBeUnsupportedJava
-
-
-
-
Field Detail
-
oSBuildNumber
private java.lang.String oSBuildNumber
-
osCallback
private PlatformHook.NativeOsCallback osCallback
-
-
Constructor Detail
-
PlatformHookOsx
public PlatformHookOsx()
-
-
Method Detail
-
getPlatform
public Platform getPlatform()
Description copied from interface:PlatformHookGet the platform corresponding to this platform hook.- Specified by:
getPlatformin interfacePlatformHook- Returns:
- the platform corresponding to this platform hook
-
afterPrefStartupHook
public void afterPrefStartupHook()
Description copied from interface:PlatformHookThe afterPrefStartupHook will be called early, but after the preferences have been loaded and basic processing of command line arguments is finished. It is guaranteed to be called before the GUI setup has started.- Specified by:
afterPrefStartupHookin interfacePlatformHook
-
preStartupHook
public void preStartupHook()
Description copied from interface:PlatformHookThe preStartupHook will be called extremely early. It is guaranteed to be called before the GUI setup has started.Reason: On OSX we need to inform the Swing libraries that we want to be integrated with the OS before we setup our GUI.
- Specified by:
preStartupHookin interfacePlatformHook
-
startupHook
public void startupHook(PlatformHook.JavaExpirationCallback javaCallback, PlatformHook.SanityCheckCallback sanityCheckCallback)
Description copied from interface:PlatformHookThe startupHook will be called early, but after the GUI setup has started.Reason: On OSX we need to register some callbacks with the OS, so we'll receive events from the system menu.
- Specified by:
startupHookin interfacePlatformHook- Parameters:
javaCallback- Java expiration callback, providing GUI feedbacksanityCheckCallback- Sanity check callback, providing GUI feedback
-
isHtmlSupportedInMenuTooltips
public boolean isHtmlSupportedInMenuTooltips()
Description copied from interface:PlatformHookDetermines if HTML rendering is supported in menu tooltips.- Specified by:
isHtmlSupportedInMenuTooltipsin interfacePlatformHook- Returns:
trueif HTML rendering is supported in menu tooltips
-
setHandlers
protected void setHandlers()
Registers Apple handlers.
-
enableOSXFullscreen
public static void enableOSXFullscreen(java.awt.Window window)
Enables fullscreen support for the given window.- Parameters:
window- The window for which full screen will be available- Since:
- 7482
-
setNativeOsCallback
public void setNativeOsCallback(PlatformHook.NativeOsCallback callback)
Description copied from interface:PlatformHookRegisters the native OS callback. Currently only needed for macOS.- Specified by:
setNativeOsCallbackin interfacePlatformHook- Parameters:
callback- the native OS callback
-
openUrl
public void openUrl(java.lang.String url) throws java.io.IOException
Description copied from interface:PlatformHookThe openURL hook will be used to open a URL in the default web browser.- Specified by:
openUrlin interfacePlatformHook- Parameters:
url- The URL to open- Throws:
java.io.IOException- if any I/O error occurs
-
initSystemShortcuts
public void initSystemShortcuts()
Description copied from interface:PlatformHookThe initSystemShortcuts hook will be called by the Shortcut class after the modifier groups have been read from the config, but before any shortcuts are read from it or registered from within the application.Please note that you are not allowed to register any shortcuts from this hook, but only "systemCuts"!
BTW: SystemCuts should be named "system:<whatever>", and it'd be best if you'd recycle the names already used by the Windows and OSX hooks. Especially the latter has really many of them.
You should also register any and all shortcuts that the operating system handles itself to block JOSM from trying to use them---as that would just not work. Call setAutomatic on them to prevent the keyboard preferences from allowing the user to change them.
- Specified by:
initSystemShortcutsin interfacePlatformHook
-
getHome
private static java.lang.String getHome()
-
getDefaultStyle
public java.lang.String getDefaultStyle()
Description copied from interface:PlatformHookReturns the default LAF to be used on this platform to look almost as a native application.- Specified by:
getDefaultStylein interfacePlatformHook- Returns:
- The default native LAF for this platform
-
canFullscreen
public boolean canFullscreen()
Description copied from interface:PlatformHookDetermines if the platform allows full-screen.- Specified by:
canFullscreenin interfacePlatformHook- Returns:
trueif full screen is allowed,falseotherwise
-
getOSDescription
public java.lang.String getOSDescription()
Description copied from interface:PlatformHookReturns a detailed OS description (at least family + version).- Specified by:
getOSDescriptionin interfacePlatformHook- Returns:
- A detailed OS description.
-
buildOSBuildNumber
private java.lang.String buildOSBuildNumber()
-
getOSBuildNumber
public java.lang.String getOSBuildNumber()
Description copied from interface:PlatformHookReturns OS build number.- Specified by:
getOSBuildNumberin interfacePlatformHook- Returns:
- OS build number.
-
getDefaultCacheDirectory
public java.io.File getDefaultCacheDirectory()
Description copied from interface:PlatformHookReturns the platform-dependent default cache directory.- Specified by:
getDefaultCacheDirectoryin interfacePlatformHook- Returns:
- the platform-dependent default cache directory
-
getDefaultPrefDirectory
public java.io.File getDefaultPrefDirectory()
Description copied from interface:PlatformHookReturns the platform-dependent default preferences directory.- Specified by:
getDefaultPrefDirectoryin interfacePlatformHook- Returns:
- the platform-dependent default preferences directory
-
getDefaultUserDataDirectory
public java.io.File getDefaultUserDataDirectory()
Description copied from interface:PlatformHookReturns the platform-dependent default user data directory.- Specified by:
getDefaultUserDataDirectoryin interfacePlatformHook- Returns:
- the platform-dependent default user data directory
-
getX509Certificate
public java.security.cert.X509Certificate getX509Certificate(CertificateAmendment.NativeCertAmend certAmend) throws java.io.IOException
Description copied from interface:PlatformHookReturns theX509Certificatematching the given certificate amendment information.- Specified by:
getX509Certificatein interfacePlatformHook- Parameters:
certAmend- certificate amendment- Returns:
- the
X509Certificatematching the given certificate amendment information, ornull - Throws:
java.io.IOException- in case of error
-
-