Initialize OSX OpenFileHandler in invokeAndWait
This commit is contained in:
parent
d7946bd070
commit
076d7caf5c
@ -6,6 +6,7 @@ import java.awt.desktop.OpenFilesEvent;
|
|||||||
import java.awt.desktop.OpenFilesHandler;
|
import java.awt.desktop.OpenFilesHandler;
|
||||||
import java.awt.desktop.PreferencesHandler;
|
import java.awt.desktop.PreferencesHandler;
|
||||||
import java.awt.desktop.QuitHandler;
|
import java.awt.desktop.QuitHandler;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -92,7 +93,6 @@ final class OSXSetup {
|
|||||||
|
|
||||||
// Set handlers
|
// Set handlers
|
||||||
osxDesktop.setAboutHandler(ABOUT_HANDLER);
|
osxDesktop.setAboutHandler(ABOUT_HANDLER);
|
||||||
osxDesktop.setOpenFileHandler(OPEN_FILE_HANDLER);
|
|
||||||
osxDesktop.setPreferencesHandler(PREFERENCES_HANDLER);
|
osxDesktop.setPreferencesHandler(PREFERENCES_HANDLER);
|
||||||
osxDesktop.setQuitHandler(QUIT_HANDLER);
|
osxDesktop.setQuitHandler(QUIT_HANDLER);
|
||||||
|
|
||||||
@ -115,4 +115,20 @@ final class OSXSetup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up the open file handler, which handles file association on macOS.
|
||||||
|
*/
|
||||||
|
public static void setupOSXOpenFileHandler() {
|
||||||
|
if (SystemInfo.getPlatform() != Platform.MAC_OS) {
|
||||||
|
log.warn("Attempting to set up OSX file handler on non-MAC_OS");
|
||||||
|
}
|
||||||
|
final Desktop osxDesktop = Desktop.getDesktop();
|
||||||
|
if (osxDesktop == null) {
|
||||||
|
// Application is null: Something is wrong, give up on OS setup
|
||||||
|
throw new NullPointerException("com.apple.eawt.Application.getApplication() returned NULL. "
|
||||||
|
+ "Aborting OSX UI Setup.");
|
||||||
|
}
|
||||||
|
osxDesktop.setOpenFileHandler(OPEN_FILE_HANDLER);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -85,6 +85,8 @@ public class SwingStartup {
|
|||||||
SwingUtilities.invokeAndWait(new Runnable() {
|
SwingUtilities.invokeAndWait(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
// Set up the OSX file open handler here so that it can handle files that are opened when OR is not yet running.
|
||||||
|
OSXSetup.setupOSXOpenFileHandler();
|
||||||
runner.runInEDT(args);
|
runner.runInEDT(args);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user