jdk/src/java.desktop/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java
changeset 36959 d839463825a2
parent 36853 9001df2d68e9
parent 36958 8a320111d9fe
child 36960 d7731fdfe7c3
--- a/jdk/src/java.desktop/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java	Thu Apr 07 10:07:02 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.apple.eawt;
-
-import java.awt.Toolkit;
-import java.io.File;
-import java.util.*;
-
-import com.apple.eawt.AppEvent.*;
-
-@SuppressWarnings("deprecation")
-class _AppEventLegacyHandler implements AboutHandler, PreferencesHandler, _OpenAppHandler, AppReOpenedListener, OpenFilesHandler, PrintFilesHandler, QuitHandler {
-    final _AppEventHandler parent;
-    final Vector<ApplicationListener> legacyAppListeners = new Vector<ApplicationListener>();
-    boolean blockLegacyAPI;
-    boolean initializedParentDispatchers;
-
-    _AppEventLegacyHandler(final _AppEventHandler parent) {
-        this.parent = parent;
-    }
-
-    void blockLegacyAPI() {
-        blockLegacyAPI = true;
-    }
-
-    void checkIfLegacyAPIBlocked() {
-        if (!blockLegacyAPI) return;
-        throw new IllegalStateException("Cannot add com.apple.eawt.ApplicationListener after installing an app event handler");
-    }
-
-    void addLegacyAppListener(final ApplicationListener listener) {
-        checkIfLegacyAPIBlocked();
-
-        if (!initializedParentDispatchers) {
-            final _AppMenuBarHandler menuBarHandler = Application.getApplication().menuBarHandler;
-            final boolean prefsMenuAlreadyExplicitlySet = menuBarHandler.prefsMenuItemExplicitlySet;
-
-            parent.aboutDispatcher.setHandler(this);
-            parent.preferencesDispatcher.setHandler(this);
-            if (!prefsMenuAlreadyExplicitlySet) {
-                menuBarHandler.setPreferencesMenuItemVisible(false); // default behavior is not to have a preferences item
-            }
-            parent.openAppDispatcher.setHandler(this);
-            parent.reOpenAppDispatcher.addListener(this);
-            parent.openFilesDispatcher.setHandler(this);
-            parent.printFilesDispatcher.setHandler(this);
-            parent.quitDispatcher.setHandler(this);
-
-            initializedParentDispatchers = true;
-        }
-
-        synchronized (legacyAppListeners) {
-            legacyAppListeners.addElement(listener);
-        }
-    }
-
-    public void removeLegacyAppListener(final ApplicationListener listener) {
-        checkIfLegacyAPIBlocked();
-
-        synchronized (legacyAppListeners) {
-            legacyAppListeners.removeElement(listener);
-        }
-    }
-
-    @Override
-    public void handleAbout(final AboutEvent e) {
-        final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit());
-        sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-            public void dispatchEvent(final ApplicationListener listener) {
-                listener.handleAbout(ae);
-            }
-        });
-
-        if (ae.isHandled()) return;
-        parent.openCocoaAboutWindow();
-    }
-
-    @Override
-    public void handlePreferences(final PreferencesEvent e) {
-        final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit());
-        sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-            public void dispatchEvent(final ApplicationListener listener) {
-                listener.handlePreferences(ae);
-            }
-        });
-    }
-
-    @Override
-    public void handleOpenApp() {
-        final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit());
-        sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-            public void dispatchEvent(final ApplicationListener listener) {
-                listener.handleOpenApplication(ae);
-            }
-        });
-    }
-
-    @Override
-    public void appReOpened(final AppReOpenedEvent e) {
-        final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit());
-        sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-            public void dispatchEvent(final ApplicationListener listener) {
-                listener.handleReOpenApplication(ae);
-            }
-        });
-    }
-
-    @Override
-    public void openFiles(final OpenFilesEvent e) {
-        final List<File> files = e.getFiles();
-        for (final File file : files) { // legacy ApplicationListeners only understood one file at a time
-            final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit(), file.getAbsolutePath());
-            sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-                public void dispatchEvent(final ApplicationListener listener) {
-                    listener.handleOpenFile(ae);
-                }
-            });
-        }
-    }
-
-    @Override
-    public void printFiles(PrintFilesEvent e) {
-        final List<File> files = e.getFiles();
-        for (final File file : files) { // legacy ApplicationListeners only understood one file at a time
-            final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit(), file.getAbsolutePath());
-            sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-                public void dispatchEvent(final ApplicationListener listener) {
-                    listener.handlePrintFile(ae);
-                }
-            });
-        }
-    }
-
-    @Override
-    public void handleQuitRequestWith(final QuitEvent e, final QuitResponse response) {
-        final ApplicationEvent ae = new ApplicationEvent(Toolkit.getDefaultToolkit());
-        sendEventToEachListenerUntilHandled(ae, new EventDispatcher() {
-            public void dispatchEvent(final ApplicationListener listener) {
-                listener.handleQuit(ae);
-            }
-        });
-
-        if (ae.isHandled()) {
-            parent.performQuit();
-        } else {
-            parent.cancelQuit();
-        }
-    }
-
-    interface EventDispatcher {
-        void dispatchEvent(final ApplicationListener listener);
-    }
-
-    // helper that cycles through the loop and aborts if the event is handled, or there are no listeners
-    void sendEventToEachListenerUntilHandled(final ApplicationEvent event, final EventDispatcher dispatcher) {
-        synchronized (legacyAppListeners) {
-            if (legacyAppListeners.size() == 0) return;
-
-            final Enumeration<ApplicationListener> e = legacyAppListeners.elements();
-            while (e.hasMoreElements() && !event.isHandled()) {
-                dispatcher.dispatchEvent(e.nextElement());
-            }
-        }
-    }
-}