📄 osxadapter.java
字号:
package edu.umd.cs.findbugs.gui;import com.apple.eawt.*;/* * Based on sample code from Apple. * * This is the only class that uses the Apple specific EAWT classes. * This class should only ever be referenced via reflection after * checking that we are running on Mac OS X. */public class OSXAdapter extends ApplicationAdapter { // pseudo-singleton model; no point in making multiple instances // of the EAWT application or our adapter private static OSXAdapter theAdapter; private static com.apple.eawt.Application theApplication; // reference to the app where the existing quit, about, prefs code is private FindBugsFrame mainApp; private OSXAdapter (FindBugsFrame inApp) { mainApp = inApp; } // implemented handler methods. These are basically hooks into // existing functionality from the main app, as if it came // over from another platform. public void handleAbout(ApplicationEvent ae) { if (mainApp != null) { ae.setHandled(true); // We need to invoke modal About Dialog asynchronously // otherwise the Application queue is locked for the duration // of the about Dialog, which results in a deadlock if a URL is // selected, and we get a ReOpenApplication event when user // switches back to Findbugs. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { mainApp.about(); } }); } else { throw new IllegalStateException("handleAbout: " + "MyApp instance detached from listener"); } } public void handlePreferences(ApplicationEvent ae) { if (mainApp != null) {// mainApp.preferences(); ae.setHandled(true); } else { throw new IllegalStateException("handlePreferences: MyApp instance " + "detached from listener"); } } public void handleQuit(ApplicationEvent ae) { if (mainApp != null) { /* * You MUST setHandled(false) if you want to * delay or cancel the quit. This is important * for cross-platform development -- have a * universal quit routine that chooses whether * or not to quit, so the functionality is * identical on all platforms. This example * simply cancels the AppleEvent-based quit and * defers to that universal method. */ ae.setHandled(false); mainApp.exitFindBugs(); } else { throw new IllegalStateException("handleQuit: MyApp instance detached " + "from listener"); } } // The main entry-point for this functionality. This is the only method // that needs to be called at runtime, and it can easily be done using // reflection (see MyApp.java) public static void registerMacOSXApplication(FindBugsFrame inApp) { if (theApplication == null) { theApplication = new com.apple.eawt.Application(); } if (theAdapter == null) { theAdapter = new OSXAdapter(inApp); } theApplication.addApplicationListener(theAdapter); } // Another static entry point for EAWT functionality. Enables the // "Preferences..." menu item in the application menu. public static void enablePrefs(boolean enabled) { if (theApplication == null) { theApplication = new com.apple.eawt.Application(); } theApplication.setEnabledPreferencesMenu(enabled); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -