From 578c287a68f38f21a91d200b7a0657aaeb721b3f Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Wed, 4 Jan 2023 22:45:39 +0000 Subject: [PATCH] 8081507: Open or Save button in JFileChooser has OK title in GTK LaF Reviewed-by: serb, tr --- .../swing/plaf/gtk/resources/gtk.properties | 4 +- .../TestFileChooserOpenSaveButtonText.java | 78 +++++++++++++++++++ .../SwingSet/src/FileChooserDemoTest.java | 4 +- 3 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 test/jdk/com/sun/java/swing/plaf/gtk/TestFileChooserOpenSaveButtonText.java diff --git a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties index a126e580023..960c762bc8e 100644 --- a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties +++ b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties @@ -60,8 +60,8 @@ FileChooser.newFolderNoDirectoryError.textAndMnemonic=Error creating directory " FileChooser.deleteFileButton.textAndMnemonic=De&lete File FileChooser.renameFileButton.textAndMnemonic=&Rename File FileChooser.cancelButton.textAndMnemonic=Cancel -FileChooser.saveButton.textAndMnemonic=OK -FileChooser.openButton.textAndMnemonic=OK +FileChooser.saveButton.textAndMnemonic=Save +FileChooser.openButton.textAndMnemonic=Open FileChooser.saveDialogTitle.textAndMnemonic=Save FileChooser.openDialogTitle.textAndMnemonic=Open FileChooser.pathLabel.textAndMnemonic=&Selection: diff --git a/test/jdk/com/sun/java/swing/plaf/gtk/TestFileChooserOpenSaveButtonText.java b/test/jdk/com/sun/java/swing/plaf/gtk/TestFileChooserOpenSaveButtonText.java new file mode 100644 index 00000000000..be9417875c0 --- /dev/null +++ b/test/jdk/com/sun/java/swing/plaf/gtk/TestFileChooserOpenSaveButtonText.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2022, 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. + * + * 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. + */ + +/* + * @test + * @bug 8081507 + * @library /java/awt/regtesthelpers + * @build PassFailJFrame + * @requires (os.family == "linux") + * @summary Verifies if Open/Save button shows text as Open/Save. + * @run main/manual TestFileChooserOpenSaveButtonText + */ + +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; + +public class TestFileChooserOpenSaveButtonText { + private static JFrame frame; + private static final String INSTRUCTIONS = + "Instructions: \n\n" + + "1. Check the text on button in bottom panel is Open.\n" + + "2. Press Cancel button.\n" + + "3. Check the text on button in bottom panel is Save.\n" + + "4. Press Cancel button.\n" + + "5. If above instructions are confirmed, " + + "Press Pass else Fail."; + + public static void main(String[] args) throws Exception { + UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); + PassFailJFrame passFailJFrame = new PassFailJFrame( + "JFileChooser Test Instructions", INSTRUCTIONS, 5, 8, 35); + try { + SwingUtilities.invokeAndWait( + TestFileChooserOpenSaveButtonText::createAndShowUI); + passFailJFrame.awaitAndCheck(); + } finally { + SwingUtilities.invokeAndWait(() -> { + if (frame != null) { + frame.dispose(); + } + }); + } + } + + private static void createAndShowUI() { + frame = new JFrame("Test File Chooser Open/Save button text"); + PassFailJFrame.addTestWindow(frame); + PassFailJFrame.positionTestWindow( + frame, PassFailJFrame.Position.HORIZONTAL); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setVisible(true); + JFileChooser fileChooser = new JFileChooser(); + fileChooser.showOpenDialog(null); + fileChooser.showSaveDialog(null); + } +} diff --git a/test/jdk/sanity/client/SwingSet/src/FileChooserDemoTest.java b/test/jdk/sanity/client/SwingSet/src/FileChooserDemoTest.java index 4462bf2e12d..d6d9469c589 100644 --- a/test/jdk/sanity/client/SwingSet/src/FileChooserDemoTest.java +++ b/test/jdk/sanity/client/SwingSet/src/FileChooserDemoTest.java @@ -272,8 +272,8 @@ public class FileChooserDemoTest { fileChooser = new JFileChooserOperator(); fileChooserDialog = new JDialogOperator(OPEN); String openButtonText = OPEN; - // In GTK and Motif L&F, open button text is 'OK' - if (LookAndFeel.isMotif() || LookAndFeel.isGTK()) { + // In Motif L&F, open button text is 'OK' + if (LookAndFeel.isMotif()) { openButtonText = OK; } openButton = new JButtonOperator(fileChooser, openButtonText);