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(); - } -}