Class PlatformHookOsx
- java.lang.Object
-
- org.openstreetmap.josm.tools.PlatformHookOsx
-
- All Implemented Interfaces:
PlatformHook
public class PlatformHookOsx extends java.lang.Object implements PlatformHook
PlatformHook
implementation 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.String
oSBuildNumber
private PlatformHook.NativeOsCallback
osCallback
-
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 void
afterPrefStartupHook()
The afterPrefStartupHook will be called early, but after the preferences have been loaded and basic processing of command line arguments is finished.private static void
auto(Shortcut sc)
private java.lang.String
buildOSBuildNumber()
boolean
canFullscreen()
Determines if the platform allows full-screen.static void
enableOSXFullscreen(java.awt.Window window)
Enables fullscreen support for the given window.java.io.File
getDefaultCacheDirectory()
Returns the platform-dependent default cache directory.java.io.File
getDefaultPrefDirectory()
Returns the platform-dependent default preferences directory.java.lang.String
getDefaultStyle()
Returns the default LAF to be used on this platform to look almost as a native application.java.io.File
getDefaultUserDataDirectory()
Returns the platform-dependent default user data directory.private static java.lang.String
getHome()
java.lang.String
getOSBuildNumber()
Returns OS build number.java.lang.String
getOSDescription()
Returns a detailed OS description (at least family + version).Platform
getPlatform()
Get the platform corresponding to this platform hook.java.security.cert.X509Certificate
getX509Certificate(CertificateAmendment.NativeCertAmend certAmend)
Returns theX509Certificate
matching the given certificate amendment information.void
initSystemShortcuts()
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.boolean
isHtmlSupportedInMenuTooltips()
Determines if HTML rendering is supported in menu tooltips.void
openUrl(java.lang.String url)
The openURL hook will be used to open a URL in the default web browser.void
preStartupHook()
The preStartupHook will be called extremely early.protected void
setHandlers()
Registers Apple handlers.void
setNativeOsCallback(PlatformHook.NativeOsCallback callback)
Registers the native OS callback.void
startupHook(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:PlatformHook
Get the platform corresponding to this platform hook.- Specified by:
getPlatform
in interfacePlatformHook
- Returns:
- the platform corresponding to this platform hook
-
afterPrefStartupHook
public void afterPrefStartupHook()
Description copied from interface:PlatformHook
The 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:
afterPrefStartupHook
in interfacePlatformHook
-
preStartupHook
public void preStartupHook()
Description copied from interface:PlatformHook
The 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:
preStartupHook
in interfacePlatformHook
-
startupHook
public void startupHook(PlatformHook.JavaExpirationCallback javaCallback, PlatformHook.SanityCheckCallback sanityCheckCallback)
Description copied from interface:PlatformHook
The 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:
startupHook
in interfacePlatformHook
- Parameters:
javaCallback
- Java expiration callback, providing GUI feedbacksanityCheckCallback
- Sanity check callback, providing GUI feedback
-
isHtmlSupportedInMenuTooltips
public boolean isHtmlSupportedInMenuTooltips()
Description copied from interface:PlatformHook
Determines if HTML rendering is supported in menu tooltips.- Specified by:
isHtmlSupportedInMenuTooltips
in interfacePlatformHook
- Returns:
true
if 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:PlatformHook
Registers the native OS callback. Currently only needed for macOS.- Specified by:
setNativeOsCallback
in interfacePlatformHook
- Parameters:
callback
- the native OS callback
-
openUrl
public void openUrl(java.lang.String url) throws java.io.IOException
Description copied from interface:PlatformHook
The openURL hook will be used to open a URL in the default web browser.- Specified by:
openUrl
in 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:PlatformHook
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.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:
initSystemShortcuts
in interfacePlatformHook
-
getHome
private static java.lang.String getHome()
-
getDefaultStyle
public java.lang.String getDefaultStyle()
Description copied from interface:PlatformHook
Returns the default LAF to be used on this platform to look almost as a native application.- Specified by:
getDefaultStyle
in interfacePlatformHook
- Returns:
- The default native LAF for this platform
-
canFullscreen
public boolean canFullscreen()
Description copied from interface:PlatformHook
Determines if the platform allows full-screen.- Specified by:
canFullscreen
in interfacePlatformHook
- Returns:
true
if full screen is allowed,false
otherwise
-
getOSDescription
public java.lang.String getOSDescription()
Description copied from interface:PlatformHook
Returns a detailed OS description (at least family + version).- Specified by:
getOSDescription
in interfacePlatformHook
- Returns:
- A detailed OS description.
-
buildOSBuildNumber
private java.lang.String buildOSBuildNumber()
-
getOSBuildNumber
public java.lang.String getOSBuildNumber()
Description copied from interface:PlatformHook
Returns OS build number.- Specified by:
getOSBuildNumber
in interfacePlatformHook
- Returns:
- OS build number.
-
getDefaultCacheDirectory
public java.io.File getDefaultCacheDirectory()
Description copied from interface:PlatformHook
Returns the platform-dependent default cache directory.- Specified by:
getDefaultCacheDirectory
in interfacePlatformHook
- Returns:
- the platform-dependent default cache directory
-
getDefaultPrefDirectory
public java.io.File getDefaultPrefDirectory()
Description copied from interface:PlatformHook
Returns the platform-dependent default preferences directory.- Specified by:
getDefaultPrefDirectory
in interfacePlatformHook
- Returns:
- the platform-dependent default preferences directory
-
getDefaultUserDataDirectory
public java.io.File getDefaultUserDataDirectory()
Description copied from interface:PlatformHook
Returns the platform-dependent default user data directory.- Specified by:
getDefaultUserDataDirectory
in 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:PlatformHook
Returns theX509Certificate
matching the given certificate amendment information.- Specified by:
getX509Certificate
in interfacePlatformHook
- Parameters:
certAmend
- certificate amendment- Returns:
- the
X509Certificate
matching the given certificate amendment information, ornull
- Throws:
java.io.IOException
- in case of error
-
-