diff --git a/platform/applemenu/build.xml b/platform/applemenu/build.xml
index a72a0ab74e5e..29710f0f1d0b 100644
--- a/platform/applemenu/build.xml
+++ b/platform/applemenu/build.xml
@@ -23,14 +23,4 @@
-
-
-
-
-
-
-
-
-
diff --git a/platform/applemenu/external/applemenu-external-desktop-classes-8.2-license.txt b/platform/applemenu/external/applemenu-external-desktop-classes-8.2-license.txt
deleted file mode 100644
index f7a0f76927c7..000000000000
--- a/platform/applemenu/external/applemenu-external-desktop-classes-8.2-license.txt
+++ /dev/null
@@ -1,389 +0,0 @@
-Name: External Desktop Classes
-Description: Provides java.awt.desktop classes to support compilation on JDK 8.
-Version: 8.2
-License: CDDL-1.0
-Source: file://applemenu-external-desktop-classes-8.2.zip
-Origin: NetBeans
-Type: compile-time
-Comment: Allows to build code leveraging JDK 9's java.awt.desktop classes on JDK 8.
-
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. "Contributor" means each individual or entity that
-creates or contributes to the creation of Modifications.
-
-1.2. "Contributor Version" means the combination of the
-Original Software, prior Modifications used by a
-Contributor (if any), and the Modifications made by that
-particular Contributor.
-
-1.3. "Covered Software" means (a) the Original Software, or
-(b) Modifications, or (c) the combination of files
-containing Original Software with files containing
-Modifications, in each case including portions thereof.
-
-1.4. "Executable" means the Covered Software in any form
-other than Source Code.
-
-1.5. "Initial Developer" means the individual or entity
-that first makes Original Software available under this
-License.
-
-1.6. "Larger Work" means a work which combines Covered
-Software or portions thereof with code not governed by the
-terms of this License.
-
-1.7. "License" means this document.
-
-1.8. "Licensable" means having the right to grant, to the
-maximum extent possible, whether at the time of the initial
-grant or subsequently acquired, any and all of the rights
-conveyed herein.
-
-1.9. "Modifications" means the Source Code and Executable
-form of any of the following:
-
-A. Any file that results from an addition to,
-deletion from or modification of the contents of a
-file containing Original Software or previous
-Modifications;
-
-B. Any new file that contains any part of the
-Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made
-available under the terms of this License.
-
-1.10. "Original Software" means the Source Code and
-Executable form of computer software code that is
-originally released under this License.
-
-1.11. "Patent Claims" means any patent claim(s), now owned
-or hereafter acquired, including without limitation,
-method, process, and apparatus claims, in any patent
-Licensable by grantor.
-
-1.12. "Source Code" means (a) the common form of computer
-software code in which modifications are made and (b)
-associated documentation included in or with such code.
-
-1.13. "You" (or "Your") means an individual or a legal
-entity exercising rights under, and complying with all of
-the terms of, this License. For legal entities, "You"
-includes any entity which controls, is controlled by, or is
-under common control with You. For purposes of this
-definition, "control" means (a) the power, direct or
-indirect, to cause the direction or management of such
-entity, whether by contract or otherwise, or (b) ownership
-of more than fifty percent (50%) of the outstanding shares
-or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, the
-Initial Developer hereby grants You a world-wide,
-royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Initial Developer,
-to use, reproduce, modify, display, perform,
-sublicense and distribute the Original Software (or
-portions thereof), with or without Modifications,
-and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using or selling of Original Software, to make, have
-made, use, practice, sell, and offer for sale, and/or
-otherwise dispose of the Original Software (or
-portions thereof).
-
-(c) The licenses granted in Sections 2.1(a) and (b)
-are effective on the date Initial Developer first
-distributes or otherwise makes the Original Software
-available to a third party under the terms of this
-License.
-
-(d) Notwithstanding Section 2.1(b) above, no patent
-license is granted: (1) for code that You delete from
-the Original Software, or (2) for infringements
-caused by: (i) the modification of the Original
-Software, or (ii) the combination of the Original
-Software with other software or devices.
-
-2.2. Contributor Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, each
-Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Contributor to
-use, reproduce, modify, display, perform, sublicense
-and distribute the Modifications created by such
-Contributor (or portions thereof), either on an
-unmodified basis, with other Modifications, as
-Covered Software and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using, or selling of Modifications made by that
-Contributor either alone and/or in combination with
-its Contributor Version (or portions of such
-combination), to make, use, sell, offer for sale,
-have made, and/or otherwise dispose of: (1)
-Modifications made by that Contributor (or portions
-thereof); and (2) the combination of Modifications
-made by that Contributor with its Contributor Version
-(or portions of such combination).
-
-(c) The licenses granted in Sections 2.2(a) and
-2.2(b) are effective on the date Contributor first
-distributes or otherwise makes the Modifications
-available to a third party.
-
-(d) Notwithstanding Section 2.2(b) above, no patent
-license is granted: (1) for any code that Contributor
-has deleted from the Contributor Version; (2) for
-infringements caused by: (i) third party
-modifications of Contributor Version, or (ii) the
-combination of Modifications made by that Contributor
-with other software (except as part of the
-Contributor Version) or other devices; or (3) under
-Patent Claims infringed by Covered Software in the
-absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make
-available in Executable form must also be made available in
-Source Code form and that Source Code form must be
-distributed only under the terms of this License. You must
-include a copy of this License with every copy of the
-Source Code form of the Covered Software You distribute or
-otherwise make available. You must inform recipients of any
-such Covered Software in Executable form as to how they can
-obtain such Covered Software in Source Code form in a
-reasonable manner on or through a medium customarily used
-for software exchange.
-
-3.2. Modifications.
-
-The Modifications that You create or to which You
-contribute are governed by the terms of this License. You
-represent that You believe Your Modifications are Your
-original creation(s) and/or You have sufficient rights to
-grant the rights conveyed by this License.
-
-3.3. Required Notices.
-
-You must include a notice in each of Your Modifications
-that identifies You as the Contributor of the Modification.
-You may not remove or alter any copyright, patent or
-trademark notices contained within the Covered Software, or
-any notices of licensing or any descriptive text giving
-attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-
-You may not offer or impose any terms on any Covered
-Software in Source Code form that alters or restricts the
-applicable version of this License or the recipients'
-rights hereunder. You may choose to offer, and to charge a
-fee for, warranty, support, indemnity or liability
-obligations to one or more recipients of Covered Software.
-However, you may do so only on Your own behalf, and not on
-behalf of the Initial Developer or any Contributor. You
-must make it absolutely clear that any such warranty,
-support, indemnity or liability obligation is offered by
-You alone, and You hereby agree to indemnify the Initial
-Developer and every Contributor for any liability incurred
-by the Initial Developer or such Contributor as a result of
-warranty, support, indemnity or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-
-You may distribute the Executable form of the Covered
-Software under the terms of this License or under the terms
-of a license of Your choice, which may contain terms
-different from this License, provided that You are in
-compliance with the terms of this License and that the
-license for the Executable form does not attempt to limit
-or alter the recipient's rights in the Source Code form
-from the rights set forth in this License. If You
-distribute the Covered Software in Executable form under a
-different license, You must make it absolutely clear that
-any terms which differ from this License are offered by You
-alone, not by the Initial Developer or Contributor. You
-hereby agree to indemnify the Initial Developer and every
-Contributor for any liability incurred by the Initial
-Developer or such Contributor as a result of any such terms
-You offer.
-
-3.6. Larger Works.
-
-You may create a Larger Work by combining Covered Software
-with other code not governed by the terms of this License
-and distribute the Larger Work as a single product. In such
-a case, You must make sure the requirements of this License
-are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-
-Sun Microsystems, Inc. is the initial license steward and
-may publish revised and/or new versions of this License
-from time to time. Each version will be given a
-distinguishing version number. Except as provided in
-Section 4.3, no one other than the license steward has the
-right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. If the Initial Developer includes a
-notice in the Original Software prohibiting it from being
-distributed or otherwise made available under any
-subsequent version of the License, You must distribute and
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. Otherwise, You may also choose to
-use, distribute or otherwise make the Covered Software
-available under the terms of any subsequent version of the
-License published by the license steward.
-
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a
-new license for Your Original Software, You may create and
-use a modified version of this License if You: (a) rename
-the license and remove any references to the name of the
-license steward (except to note that the license differs
-from this License); and (b) otherwise make it clear that
-the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
-BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
-SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
-PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
-COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
-INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
-ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
-WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
-DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will
-terminate automatically if You fail to comply with terms
-herein and fail to cure such breach within 30 days of
-becoming aware of the breach. Provisions which, by their
-nature, must remain in effect beyond the termination of
-this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding
-declaratory judgment actions) against Initial Developer or
-a Contributor (the Initial Developer or Contributor against
-whom You assert such claim is referred to as "Participant")
-alleging that the Participant Software (meaning the
-Contributor Version where the Participant is a Contributor
-or the Original Software where the Participant is the
-Initial Developer) directly or indirectly infringes any
-patent, then any and all rights granted directly or
-indirectly to You by such Participant, the Initial
-Developer (if the Initial Developer is not the Participant)
-and all Contributors under Sections 2.1 and/or 2.2 of this
-License shall, upon 60 days notice from Participant
-terminate prospectively and automatically at the expiration
-of such 60 day notice period, unless if within such 60 day
-period You withdraw Your claim with respect to the
-Participant Software against such Participant either
-unilaterally or pursuant to a written agreement with
-Participant.
-
-6.3. In the event of termination under Sections 6.1 or 6.2
-above, all end user licenses that have been validly granted
-by You or any distributor hereunder prior to termination
-(excluding licenses granted to You by any distributor)
-shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
-INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
-COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
-LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
-LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
-STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
-INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
-APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
-NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
-APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a "commercial item," as that term is
-defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
-computer software" (as that term is defined at 48 C.F.R.
-252.227-7014(a)(1)) and "commercial computer software
-documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
-through 227.7202-4 (June 1995), all U.S. Government End Users
-acquire Covered Software with only those rights set forth herein.
-This U.S. Government Rights clause is in lieu of, and supersedes,
-any other FAR, DFAR, or other clause or provision that addresses
-Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the
-extent necessary to make it enforceable. This License shall be
-governed by the law of the jurisdiction specified in a notice
-contained within the Original Software (except to the extent
-applicable law, if any, provides otherwise), excluding such
-jurisdiction's conflict-of-law provisions. Any litigation
-relating to this License shall be subject to the jurisdiction of
-the courts located in the jurisdiction and venue specified in a
-notice contained within the Original Software, with the losing
-party responsible for costs, including, without limitation, court
-costs and reasonable attorneys' fees and expenses. The
-application of the United Nations Convention on Contracts for the
-International Sale of Goods is expressly excluded. Any law or
-regulation which provides that the language of a contract shall
-be construed against the drafter shall not apply to this License.
-You agree that You alone are responsible for compliance with the
-United States export administration regulations (and the export
-control laws and regulation of any other countries) when You use,
-distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is
-responsible for claims and damages arising, directly or
-indirectly, out of its utilization of rights under this License
-and You agree to work with Initial Developer and Contributors to
-distribute such responsibility on an equitable basis. Nothing
-herein is intended or shall be deemed to constitute any admission
-of liability.
diff --git a/platform/applemenu/external/binaries-list b/platform/applemenu/external/binaries-list
deleted file mode 100644
index 50c1713a7e31..000000000000
--- a/platform/applemenu/external/binaries-list
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-1D14F4B56AD34841339698565B17BBAE755B0E61 applemenu-external-desktop-classes-8.2.zip
-9A7C8D43E0ECC6ACED43970512FF42EF0717DC7C com.massisframework:orange-extensions:1.3.1
diff --git a/platform/applemenu/external/orange-extensions-1.3.1-license.txt b/platform/applemenu/external/orange-extensions-1.3.1-license.txt
deleted file mode 100644
index 97dbf7e86f73..000000000000
--- a/platform/applemenu/external/orange-extensions-1.3.1-license.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-Name: Orange Extensions
-Version: 1.3.1
-License: BSD-Masory
-Description: com.apple classes for cross-compilation.
-Origin: Yuvi Masory
-Type: compile-time
-Comment: Allows to build code leveraging Apple-specficic classes on other platforms.
-
-This jar was created by decompiling AppleJavaExtensions.jar (completely consistent
-with its BSD-like license), and adding the new Java 5 methods.
-
-Apple's license does not specify that their copyright notice should be included
-in modified versions (only complete, unmodified ones), so I'm putting it under 3-clause
-BSD just to protect myself from liability.
-
-Copyright (c) 2010, Yuvi Masory
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name Yuvi Masory nor the
- names of other contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Yuvi Masory BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/platform/applemenu/nbproject/project.properties b/platform/applemenu/nbproject/project.properties
index 7880f3c243ad..ee492f29736a 100644
--- a/platform/applemenu/nbproject/project.properties
+++ b/platform/applemenu/nbproject/project.properties
@@ -16,9 +16,6 @@
# under the License.
javac.compilerargs=-Xlint -Xlint:-serial
-javac.source=1.8
+javac.release=17
nbm.needs.restart=true
is.eager=true
-cp.extra=external/orange-extensions-1.3.1.jar
-bootclasspath.prepend=${build.dir}/desktop-classes-classes
-
diff --git a/platform/applemenu/src/org/netbeans/modules/applemenu/Install.java b/platform/applemenu/src/org/netbeans/modules/applemenu/Install.java
index e848b2e4e048..fe695270e996 100644
--- a/platform/applemenu/src/org/netbeans/modules/applemenu/Install.java
+++ b/platform/applemenu/src/org/netbeans/modules/applemenu/Install.java
@@ -21,7 +21,6 @@
import java.awt.AWTEvent;
import java.awt.Toolkit;
-import java.lang.reflect.*;
import org.openide.modules.ModuleInstall;
import org.openide.util.Utilities;
@@ -32,7 +31,6 @@
*/
public class Install extends ModuleInstall {
private CtrlClickHack listener;
- private Class adapter;
@Override
public void restored () {
@@ -43,39 +41,18 @@ public void restored () {
if (System.getProperty(pn) == null) {
System.setProperty(pn, "true"); // NOI18N
}
- if (!installAdapter("org.netbeans.modules.applemenu.NbApplicationAdapterJDK8")) { // NOI18N
- // JDK 8 failed, try JDK 9
- installAdapter("org.netbeans.modules.applemenu.NbApplicationAdapterJDK9"); // NOI18N
- }
+ NbApplicationAdapter.install();
}
}
- private boolean installAdapter(String className) {
- try {
- adapter = Class.forName(className);
- Method m = adapter.getDeclaredMethod("install", new Class[0] ); // NOI18N
- m.invoke(adapter, new Object[0]);
- return true;
- }catch (NoClassDefFoundError e) {
- }catch (ClassNotFoundException e) {
- }catch (Exception e) {
- }
- return false;
- }
-
@Override
public void uninstalled () {
if (listener != null) {
Toolkit.getDefaultToolkit().removeAWTEventListener(listener);
listener = null;
}
- if (Utilities.isMac() && adapter != null) {
- try {
- Method m = adapter.getDeclaredMethod("uninstall", new Class[0] ); // NOI18N
- m.invoke(adapter, new Object[0]);
- } catch (NoClassDefFoundError e) {
- } catch (Exception e) {
- }
+ if (Utilities.isMac()) {
+ NbApplicationAdapter.uninstall();
}
}
}
diff --git a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapter.java b/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapter.java
index 31c83f74923c..e4f9a5b9dca7 100644
--- a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapter.java
+++ b/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapter.java
@@ -16,12 +16,21 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.netbeans.modules.applemenu;
+import java.awt.Desktop;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.Window;
+import java.awt.desktop.AboutEvent;
+import java.awt.desktop.AboutHandler;
+import java.awt.desktop.OpenFilesEvent;
+import java.awt.desktop.OpenFilesHandler;
+import java.awt.desktop.PreferencesEvent;
+import java.awt.desktop.PreferencesHandler;
+import java.awt.desktop.QuitEvent;
+import java.awt.desktop.QuitHandler;
+import java.awt.desktop.QuitResponse;
import java.awt.event.ActionEvent;
import java.io.File;
@@ -44,18 +53,30 @@
import org.openide.windows.WindowSystemEvent;
import org.openide.windows.WindowSystemListener;
-/** Adapter class which intercepts action events and passes them to the
- * correct action instance as defined in the system filesystem.
+/**
+ * Adapter class which intercepts action events and passes them to the correct
+ * action instance as defined in the system filesystem.
*
- * @author Tim Boudreau
+ * @author Tim Boudreau
*/
+final class NbApplicationAdapter implements AboutHandler, OpenFilesHandler, PreferencesHandler, QuitHandler {
-abstract class NbApplicationAdapter {
-
- NbApplicationAdapter() {
+ private NbApplicationAdapter() {
}
static void install() {
+ try {
+ Desktop app = Desktop.getDesktop();
+ NbApplicationAdapter al = new NbApplicationAdapter();
+
+ app.setAboutHandler(al);
+ app.setOpenFileHandler(al);
+ app.setPreferencesHandler(al);
+ app.setQuitHandler(al);
+ } catch (Throwable ex) {
+ ErrorManager.getDefault().notify(ErrorManager.WARNING, ex);
+ }
+
WindowManager.getDefault().addWindowSystemListener(new WindowSystemListener() {
@Override
@@ -63,10 +84,10 @@ public void beforeLoad(WindowSystemEvent event) {
WindowManager.getDefault().removeWindowSystemListener(this);
try {
Frame main = WindowManager.getDefault().getMainWindow();
- ((RootPaneContainer)main).getRootPane().putClientProperty("apple.awt.fullscreenable", true); // NOI18N
- } catch( Throwable e ) {
- Logger.getLogger(NbApplicationAdapter.class.getName()).log(Level.FINE,
- "Error while setting up full screen support.", e );//NOI18N
+ ((RootPaneContainer) main).getRootPane().putClientProperty("apple.awt.fullscreenable", true); // NOI18N
+ } catch (Throwable e) {
+ Logger.getLogger(NbApplicationAdapter.class.getName()).log(Level.FINE,
+ "Error while setting up full screen support.", e);//NOI18N
}
}
@@ -84,15 +105,50 @@ public void afterSave(WindowSystemEvent event) {
});
}
- void handleAbout() {
+ static void uninstall() {
+ try {
+ Desktop app = Desktop.getDesktop();
+
+ app.setAboutHandler(null);
+ app.setOpenFileHandler(null);
+ app.setPreferencesHandler(null);
+ app.setQuitHandler(null);
+ } catch (Throwable ex) {
+ ErrorManager.getDefault().notify(ErrorManager.WARNING, ex);
+ }
+ }
+
+ @Override
+ public void handleAbout(AboutEvent e) {
+ handleAbout();
+ }
+
+ @Override
+ public void openFiles(OpenFilesEvent e) {
+ openFiles(e.getFiles());
+ }
+
+ @Override
+ public void handlePreferences(PreferencesEvent e) {
+ handlePreferences();
+ }
+
+ @Override
+ public void handleQuitRequestWith(QuitEvent e, QuitResponse response) {
+ handleQuit();
+ //need to do this otherwise the user will never be able to quit again
+ response.cancelQuit();
+ }
+
+ private void handleAbout() {
//#221571 - check if About window is showing already
Window[] windows = Dialog.getWindows();
- if( null != windows ) {
- for( Window w : windows ) {
- if( w instanceof JDialog ) {
+ if (null != windows) {
+ for (Window w : windows) {
+ if (w instanceof JDialog) {
JDialog dlg = (JDialog) w;
- if( Boolean.TRUE.equals(dlg.getRootPane().getClientProperty("nb.about.dialog") ) ) { //NOI18N
- if( dlg.isVisible() ) {
+ if (Boolean.TRUE.equals(dlg.getRootPane().getClientProperty("nb.about.dialog"))) { //NOI18N
+ if (dlg.isVisible()) {
dlg.toFront();
return;
}
@@ -102,15 +158,15 @@ void handleAbout() {
}
performAction("Help", "org.netbeans.core.actions.AboutAction"); // NOI18N
}
-
- void openFiles(List files) {
+
+ private void openFiles(List files) {
for (File f : files) {
if (f.exists() && !f.isDirectory()) {
FileObject obj = FileUtil.toFileObject(f);
if (obj != null) {
try {
DataObject dob = DataObject.find(obj);
- OpenCookie oc = dob.getLookup().lookup (OpenCookie.class);
+ OpenCookie oc = dob.getLookup().lookup(OpenCookie.class);
if (oc != null) {
oc.open();
} else {
@@ -131,14 +187,15 @@ void openFiles(List files) {
}
}
}
-
- public void handlePreferences() {
+
+ private void handlePreferences() {
performAction("Window", "org.netbeans.modules.options.OptionsWindowAction"); // NOI18N
}
- public void handleQuit() {
+
+ private void handleQuit() {
performAction("System", "org.netbeans.core.actions.SystemExit"); // NOI18N
}
-
+
private boolean performAction(String category, String id) {
Action a = Actions.forID(category, id);
if (a == null) {
@@ -153,5 +210,5 @@ private boolean performAction(String category, String id) {
return false;
}
}
-
+
}
diff --git a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK8.java b/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK8.java
deleted file mode 100644
index 8810bcc7a368..000000000000
--- a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK8.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.netbeans.modules.applemenu;
-
-import com.apple.eawt.AboutHandler;
-import com.apple.eawt.AppEvent;
-import com.apple.eawt.Application;
-import com.apple.eawt.OpenFilesHandler;
-import com.apple.eawt.PreferencesHandler;
-import com.apple.eawt.QuitHandler;
-import com.apple.eawt.QuitResponse;
-import org.openide.ErrorManager;
-
-/**
- *
- * @author Tomas Hurka
- *
- * Uses old com.apple.eawt.* API.
- * This class can be deleted once NetBeans is built by JDK 9.
- */
-public class NbApplicationAdapterJDK8 extends NbApplicationAdapter implements AboutHandler, OpenFilesHandler, PreferencesHandler, QuitHandler {
-
- static void install() {
- try {
- Application app = Application.getApplication();
- NbApplicationAdapterJDK8 al = new NbApplicationAdapterJDK8();
-
- app.setAboutHandler(al);
- app.setOpenFileHandler(al);
- app.setPreferencesHandler(al);
- app.setQuitHandler(al);
- } catch (Throwable ex) {
- ErrorManager.getDefault().notify(ErrorManager.WARNING, ex);
- } finally {
- }
- NbApplicationAdapter.install();
- }
-
- static void uninstall() {
- Application app = Application.getApplication();
-
- app.setAboutHandler(null);
- app.setOpenFileHandler(null);
- app.setPreferencesHandler(null);
- app.setQuitHandler(null);
- }
-
- @Override
- public void handleAbout(AppEvent.AboutEvent e) {
- handleAbout();
- }
-
- @Override
- public void openFiles(AppEvent.OpenFilesEvent e) {
- openFiles(e.getFiles());
- }
-
- @Override
- public void handlePreferences(AppEvent.PreferencesEvent e) {
- handlePreferences();
- }
-
- @Override
- public void handleQuitRequestWith(AppEvent.QuitEvent e, QuitResponse response) {
- handleQuit();
- //need to do this otherwise the user will never be able to quit again
- response.cancelQuit();
- }
-}
diff --git a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK9.java b/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK9.java
deleted file mode 100644
index 65523bb0c307..000000000000
--- a/platform/applemenu/src/org/netbeans/modules/applemenu/NbApplicationAdapterJDK9.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.netbeans.modules.applemenu;
-
-import java.awt.Desktop;
-import java.awt.desktop.AboutEvent;
-import java.awt.desktop.AboutHandler;
-import java.awt.desktop.OpenFilesEvent;
-import java.awt.desktop.OpenFilesHandler;
-import java.awt.desktop.PreferencesEvent;
-import java.awt.desktop.PreferencesHandler;
-import java.awt.desktop.QuitEvent;
-import java.awt.desktop.QuitHandler;
-import java.awt.desktop.QuitResponse;
-import org.openide.ErrorManager;
-
-/**
- *
- * @author Tomas Hurka
- *
- * Uses new 'JEP 272: Platform-Specific Desktop Features' API.
- * This class can be merged with superclass, once NetBeans is built by JDK 9.
- */
-public class NbApplicationAdapterJDK9 extends NbApplicationAdapter implements AboutHandler, OpenFilesHandler, PreferencesHandler, QuitHandler {
-
- static void install() {
- try {
- Desktop app = Desktop.getDesktop();
- NbApplicationAdapterJDK9 al = new NbApplicationAdapterJDK9();
-
- app.setAboutHandler(al);
- app.setOpenFileHandler(al);
- app.setPreferencesHandler(al);
- app.setQuitHandler(al);
- } catch (Throwable ex) {
- ErrorManager.getDefault().notify(ErrorManager.WARNING, ex);
- } finally {
- }
- NbApplicationAdapter.install();
- }
-
- static void uninstall() {
- Desktop app = Desktop.getDesktop();
-
- app.setAboutHandler(null);
- app.setOpenFileHandler(null);
- app.setPreferencesHandler(null);
- app.setQuitHandler(null);
- }
-
- @Override
- public void handleAbout(AboutEvent e) {
- handleAbout();
- }
-
- @Override
- public void openFiles(OpenFilesEvent e) {
- openFiles(e.getFiles());
- }
-
- @Override
- public void handlePreferences(PreferencesEvent e) {
- handlePreferences();
- }
-
- @Override
- public void handleQuitRequestWith(QuitEvent e, QuitResponse response) {
- handleQuit();
- //need to do this otherwise the user will never be able to quit again
- response.cancelQuit();
- }
-}