jdk/test/javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
author goetz
Thu, 07 Jul 2016 16:21:45 +0200
changeset 40128 e635645d2a8a
parent 40127 2720cd366dc2
child 40703 ce049694fe74
permissions -rw-r--r--
8160974: [TESTBUG] Mark more headful tests with @key headful. Reviewed-by: serb, simonis
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     1
/*
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     4
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     7
 * published by the Free Software Foundation.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     8
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    13
 * accompanied this code).
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    14
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    18
 *
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    21
 * questions.
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    22
 */
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    23
40128
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    24
/* @test
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    25
 * @key headful
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    26
 * @bug 8129940 8132770 8161470
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    27
 * @summary JRadioButton should run custom FocusTraversalKeys for all LaFs
e635645d2a8a 8160974: [TESTBUG] Mark more headful tests with @key headful.
goetz
parents: 40127
diff changeset
    28
 * @run main FocusTraversal
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    29
 */
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    30
import java.awt.BorderLayout;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    31
import java.awt.Component;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    32
import java.awt.KeyboardFocusManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    33
import java.awt.Robot;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    34
import java.awt.event.KeyEvent;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    35
import java.util.HashSet;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    36
import java.util.Set;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    37
import javax.swing.ButtonGroup;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    38
import javax.swing.FocusManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    39
import javax.swing.JButton;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    40
import javax.swing.JFrame;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    41
import javax.swing.JPanel;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    42
import javax.swing.JRadioButton;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    43
import javax.swing.JTextField;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    44
import javax.swing.KeyStroke;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    45
import javax.swing.LookAndFeel;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    46
import javax.swing.SwingUtilities;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    47
import javax.swing.UIManager;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    48
import javax.swing.UnsupportedLookAndFeelException;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    49
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    50
public class FocusTraversal {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    51
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    52
    private static JFrame frame;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    53
    private static JRadioButton a;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    54
    private static JRadioButton b;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    55
    private static JRadioButton c;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    56
    private static JRadioButton d;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    57
    private static JTextField next;
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    58
    private static JTextField prev;
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    59
    private static Robot robot;
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    60
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    61
    public static void main(String[] args) throws Exception {
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    62
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    63
        robot = new Robot();
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    64
        robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    65
        UIManager.LookAndFeelInfo[] lookAndFeelArray
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    66
                = UIManager.getInstalledLookAndFeels();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    67
        for (UIManager.LookAndFeelInfo lookAndFeelItem : lookAndFeelArray) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    68
            executeCase(lookAndFeelItem.getClassName());
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    69
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    70
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    71
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    72
    private static void executeCase(String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    73
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    74
        if (tryLookAndFeel(lookAndFeelString)) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    75
            createUI(lookAndFeelString);
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    76
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    77
            runTestCase();
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    78
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    79
            cleanUp();
40127
2720cd366dc2 8161470: Failure javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java
aniyogi
parents: 34402
diff changeset
    80
            robot.waitForIdle();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    81
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    82
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    83
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    84
    private static void createUI(final String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    85
            throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    86
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    87
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    88
            public void run() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    89
                Set<KeyStroke> keystrokes = new HashSet<KeyStroke>();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    90
                keystrokes.add(KeyStroke.getKeyStroke("TAB"));
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    91
                keystrokes.add(KeyStroke.getKeyStroke("ENTER"));
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    92
                frame = new JFrame("FocusTraversalTest " + lookAndFeelString);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    93
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
    94
                frame.setUndecorated(true);
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    95
                frame.setFocusTraversalKeys(
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    96
                        KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    97
                        keystrokes);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    98
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
    99
                a = new JRadioButton("a");
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   100
                b = new JRadioButton("b");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   101
                c = new JRadioButton("c");
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   102
                d = new JRadioButton("d");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   103
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   104
                ButtonGroup radioButtonGroup = new ButtonGroup();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   105
                radioButtonGroup.add(a);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   106
                radioButtonGroup.add(b);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   107
                radioButtonGroup.add(c);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   108
                radioButtonGroup.add(d);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   109
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   110
                JPanel panel = new JPanel();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   111
                prev = new JTextField("text");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   112
                panel.add(prev);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   113
                panel.add(a);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   114
                panel.add(b);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   115
                panel.add(c);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   116
                panel.add(d);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   117
                next = new JTextField("text");
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   118
                panel.add(next);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   119
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   120
                JPanel root = new JPanel();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   121
                root.setLayout(new BorderLayout());
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   122
                root.add(panel, BorderLayout.CENTER);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   123
                root.add(new JButton("OK"), BorderLayout.SOUTH);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   124
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   125
                frame.add(root);
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   126
                frame.pack();
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   127
                frame.setLocationRelativeTo(null);
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   128
                frame.setVisible(true);
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   129
                frame.toFront();
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   130
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   131
        });
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   132
    }
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   133
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   134
    private static void runTestCase() throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   135
        LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   136
        focusOn(a);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   137
        if (isExcludedLookAndFeel(lookAndFeel)) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   138
            robot.keyPress(KeyEvent.VK_ENTER);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   139
            robot.keyRelease(KeyEvent.VK_ENTER);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   140
            robot.waitForIdle();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   141
            isFocusOwner(b, "forward");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   142
            robot.keyPress(KeyEvent.VK_SHIFT);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   143
            robot.keyPress(KeyEvent.VK_TAB);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   144
            robot.keyRelease(KeyEvent.VK_TAB);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   145
            robot.keyRelease(KeyEvent.VK_SHIFT);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   146
            robot.waitForIdle();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   147
            isFocusOwner(a, "backward");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   148
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   149
        } else {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   150
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   151
            robot.keyPress(KeyEvent.VK_ENTER);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   152
            robot.keyRelease(KeyEvent.VK_ENTER);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   153
            robot.waitForIdle();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   154
            isFocusOwner(next, "forward");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   155
            robot.keyPress(KeyEvent.VK_SHIFT);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   156
            robot.keyPress(KeyEvent.VK_TAB);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   157
            robot.keyRelease(KeyEvent.VK_TAB);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   158
            robot.keyRelease(KeyEvent.VK_SHIFT);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   159
            robot.waitForIdle();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   160
            isFocusOwner(d, "backward");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   161
        }
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   162
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   163
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   164
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   165
    private static boolean isExcludedLookAndFeel(LookAndFeel lookAndFeel) {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   166
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   167
        return lookAndFeel.toString().toLowerCase().contains("aqua")
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   168
                || lookAndFeel.toString().toLowerCase().contains("nimbus")
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   169
                || lookAndFeel.toString().toLowerCase().contains("gtk");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   170
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   171
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   172
    private static void focusOn(Component component)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   173
            throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   174
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   175
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   176
            public void run() {
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   177
                component.requestFocusInWindow();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   178
            }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   179
        });
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   180
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   181
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   182
    private static void isFocusOwner(Component queriedFocusOwner,
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   183
            String direction)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   184
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   185
        SwingUtilities.invokeAndWait(new Runnable() {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   186
            @Override
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   187
            public void run() {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   188
                Component actualFocusOwner
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   189
                        = FocusManager.getCurrentManager().getFocusOwner();
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   190
                if (actualFocusOwner != queriedFocusOwner) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   191
                    frame.dispose();
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   192
                    throw new RuntimeException(
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   193
                            "Focus component is wrong after " + direction
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   194
                            + " direction ");
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   195
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   196
                }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   197
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   198
        });
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   199
    }
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   200
34402
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   201
    private static boolean tryLookAndFeel(String lookAndFeelString)
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   202
            throws Exception {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   203
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   204
        try {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   205
            UIManager.setLookAndFeel(
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   206
                    lookAndFeelString);
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   207
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   208
        } catch (UnsupportedLookAndFeelException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   209
                | ClassNotFoundException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   210
                | InstantiationException
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   211
                | IllegalAccessException e) {
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   212
            return false;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   213
        }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   214
        return true;
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   215
    }
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   216
3b1729d04dbb 8132770: Test javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails in MacOSX
alexsch
parents: 31664
diff changeset
   217
    private static void cleanUp() throws Exception {
31664
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   218
        SwingUtilities.invokeAndWait(new Runnable() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   219
            @Override
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   220
            public void run() {
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   221
                frame.dispose();
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   222
            }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   223
        });
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   224
    }
5ba702169503 8129940: JRadioButton does not honor non-standard FocusTraversalKeys
ssadetsky
parents:
diff changeset
   225
}