You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/03/15 11:59:37 UTC

cayenne git commit: Modeler: Update MacOS specific initialization code

Repository: cayenne
Updated Branches:
  refs/heads/master f95a813cf -> f8bb12770


Modeler: Update MacOS specific initialization code


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f8bb1277
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f8bb1277
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f8bb1277

Branch: refs/heads/master
Commit: f8bb127708c652ace34ae20d23e40f2ecd8dfcda
Parents: f95a813
Author: Nikita Timofeev <st...@gmail.com>
Authored: Wed Mar 15 14:59:25 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Wed Mar 15 14:59:25 2017 +0300

----------------------------------------------------------------------
 .../modeler/osx/OSXPlatformInitializer.java     | 59 +++++++++-----------
 .../cayenne/modeler/action/ExitAction.java      |  5 +-
 2 files changed, 30 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8bb1277/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
index eaab47c..21142f5 100644
--- a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
+++ b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
@@ -36,9 +36,12 @@ import org.apache.cayenne.modeler.action.ConfigurePreferencesAction;
 import org.apache.cayenne.modeler.action.ExitAction;
 import org.apache.cayenne.modeler.init.platform.PlatformInitializer;
 
+import com.apple.eawt.AboutHandler;
+import com.apple.eawt.AppEvent;
 import com.apple.eawt.Application;
-import com.apple.eawt.ApplicationAdapter;
-import com.apple.eawt.ApplicationEvent;
+import com.apple.eawt.PreferencesHandler;
+import com.apple.eawt.QuitHandler;
+import com.apple.eawt.QuitResponse;
 
 @SuppressWarnings("deprecation")
 public class OSXPlatformInitializer implements PlatformInitializer {
@@ -52,18 +55,34 @@ public class OSXPlatformInitializer implements PlatformInitializer {
         // launcher can only be executed on Mac
 
         // configure special Mac menu handlers though...
+        Application app = Application.getApplication();
+        app.setAboutHandler(new AboutHandler() {
+            @Override
+            public void handleAbout(AppEvent.AboutEvent aboutEvent) {
+                actionManager.getAction(AboutAction.class).showAboutDialog();
+            }
+        });
 
-        Application.getApplication().addAboutMenuItem();
-        Application.getApplication().addPreferencesMenuItem();
-        Application.getApplication().setEnabledAboutMenu(true);
-        Application.getApplication().setEnabledPreferencesMenu(true);
+        app.setPreferencesHandler(new PreferencesHandler() {
+            @Override
+            public void handlePreferences(AppEvent.PreferencesEvent preferencesEvent) {
+                actionManager.getAction(ConfigurePreferencesAction.class).showPreferencesDialog();
+            }
+        });
 
-        Application.getApplication().addApplicationListener(new MacEventsAdapter());
+        app.setQuitHandler(new QuitHandler() {
+            @Override
+            public void handleQuitRequestWith(AppEvent.QuitEvent quitEvent, QuitResponse quitResponse) {
+                if(!actionManager.getAction(ExitAction.class).exit()) {
+                    quitResponse.cancelQuit();
+                }
+            }
+        });
     }
 
     public void setupMenus(JFrame frame) {
 
-        Set<Action> removeActions = new HashSet<Action>();
+        Set<Action> removeActions = new HashSet<>();
         removeActions.add(actionManager.getAction(ExitAction.class));
         removeActions.add(actionManager.getAction(AboutAction.class));
         removeActions.add(actionManager.getAction(ConfigurePreferencesAction.class));
@@ -95,28 +114,4 @@ public class OSXPlatformInitializer implements PlatformInitializer {
             }
         }
     }
-
-    class MacEventsAdapter extends ApplicationAdapter {
-
-        public void handleAbout(ApplicationEvent e) {
-            if (!e.isHandled()) {
-                actionManager.getAction(AboutAction.class).showAboutDialog();
-                e.setHandled(true);
-            }
-        }
-
-        public void handlePreferences(ApplicationEvent e) {
-            actionManager
-                    .getAction(ConfigurePreferencesAction.class)
-                    .showPreferencesDialog();
-            e.setHandled(true);
-        }
-
-        public void handleQuit(ApplicationEvent e) {
-            if (!e.isHandled()) {
-                e.setHandled(true);
-                actionManager.getAction(ExitAction.class).exit();
-            }
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8bb1277/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java
index 6038c22..ccddb7e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java
@@ -43,9 +43,9 @@ public class ExitAction extends ProjectAction {
         exit();
     }
 
-    public void exit() {
+    public boolean exit() {
         if (!checkSaveOnClose()) {
-            return;
+            return false;
         }
 
         // stop logging before JVM shutdown to prevent hanging
@@ -55,6 +55,7 @@ public class ExitAction extends ProjectAction {
 
         // goodbye
         System.exit(0);
+        return true;
     }
 
     /**