jdk/test/javax/swing/JSplitPane/4514858/bug4514858.java
author kshefov
Tue, 01 Oct 2013 13:46:53 +0400
changeset 20441 f0321cc5becb
permissions -rw-r--r--
7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS Reviewed-by: serb, alexsch Contributed-by: vera.akulova@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20441
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     1
/*
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     2
 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     4
 *
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     7
 * published by the Free Software Foundation.
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     8
 *
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    13
 * accompanied this code).
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    14
 *
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    18
 *
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    21
 * questions.
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    22
 */
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    23
/* @test
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    24
   @bug 4514858 4164779
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    25
   @summary F6, F8 Ctrl-TAB and Ctrl-Shift-TAB in JSplitPane
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    26
   @author Andrey Pikalev
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    27
   @run main/manual bug4514858
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    28
*/
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    29
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    30
import javax.swing.*;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    31
import javax.swing.border.TitledBorder;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    32
import java.awt.*;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    33
import java.awt.event.*;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    34
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    35
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    36
public class bug4514858  implements ActionListener {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    37
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    38
    static String intructions = "Test the F6, F8, Ctrl-TAB and Ctrl-Shift-TAB keybinding functionality in JSplitPane\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    39
            "with different LookAndFeels (switch LookAndFeel with the buttoms at the bottom of the\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    40
            "frame \"Test\"):\n\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    41
            "1. Move focus to the button \"Button 1\" in the frame \"Test\". Then press F6 several times.\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    42
            "The focus should cycle between five buttons in order from 1 to 5.\n\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    43
            "2. Move focus to the button \"Button 2\" in the frame \"Test\". Then press F8 three times.\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    44
            "The splitters of the splitpanes should be highlited in order:\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    45
            "\"JSplitPane 3\", \"JSplitPane 2\", \"JSplitPane 1\".\n\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    46
            "3. Move focus to the button \"Button 2\" in the frame \"Test\". Press Ctrl-TAB.\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    47
            "The focus should go to the \"Button 4\". Then press Ctrl-TAB again.\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    48
            "The focus should go to the first enabled button at the bottom of frame.\n\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    49
            "4. Move focus to the button \"Button 4\" in the frame \"Test\". Press Ctrl-Shift-TAB three times.\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    50
            "The focus should go through the button \"Button 3\", then \"Button 1\", then to the last\n" +
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    51
            "enabled button at the bottom of frame.";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    52
    static Test test = new Test();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    53
    JFrame fr;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    54
    public static void main(String[] argv) throws Exception {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    55
        UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    56
        SwingUtilities.invokeAndWait(new Runnable() {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    57
            public void run() {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    58
                new bug4514858().createAndShowGUI();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    59
            }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    60
        });
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    61
        test.waitTestResult();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    62
    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    63
    public void createAndShowGUI() {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    64
        fr = new JFrame("Test");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    65
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    66
        //-------------------------------------------------------------
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    67
        JButton left2 = new JButton("Button 1");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    68
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    69
        JButton left3 = new JButton("Button 2");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    70
        JButton right3 = new JButton("Button 3");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    71
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    72
        JSplitPane right2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, left3, right3);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    73
        right2.setBorder(new TitledBorder("JSplitPane 3"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    74
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    75
        JSplitPane left1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left2, right2);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    76
        left1.setBorder(new TitledBorder("JSplitPane 2"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    77
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    78
        JButton left4 = new JButton("Button 4");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    79
        JButton right4 = new JButton("Button 5");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    80
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    81
        JSplitPane right1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left4, right4);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    82
        right1.setBorder(new TitledBorder("JSplitPane 4"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    83
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    84
        JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT, left1, right1);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    85
        sp.setBorder(new TitledBorder("JSplitPane 1"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    86
        fr.getContentPane().add(sp);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    87
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    88
        //-------------------------------------------------------------
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    89
        JPanel p = new JPanel();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    90
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    91
        JButton metal = new JButton("Metal");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    92
        metal.setActionCommand("Metal");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    93
        metal.setEnabled(isSupportedLAF("javax.swing.plaf.metal.MetalLookAndFeel"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    94
        metal.addActionListener(this);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    95
        p.add(metal);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    96
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    97
        JButton motif = new JButton("Motif");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    98
        motif.setActionCommand("Motif");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
    99
        motif.setEnabled(isSupportedLAF("com.sun.java.swing.plaf.motif.MotifLookAndFeel"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   100
        motif.addActionListener(this);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   101
        p.add(motif);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   102
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   103
        JButton windows = new JButton("Windows");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   104
        windows.setActionCommand("Windows");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   105
        windows.setEnabled(isSupportedLAF("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   106
        windows.addActionListener(this);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   107
        p.add(windows);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   108
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   109
        fr.getContentPane().add(p, BorderLayout.SOUTH);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   110
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   111
        fr.pack();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   112
        fr.setVisible(true);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   113
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   114
        JFrame instrFrame = test.createTestFrame("bug4514858 instructions", null, intructions, 250);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   115
        instrFrame.setBounds(fr.getWidth() + 50, fr.getHeight(), 600, 400);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   116
        instrFrame.setVisible(true);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   117
    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   118
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   119
    private boolean isSupportedLAF(String str) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   120
        try {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   121
            Class c = Class.forName(str);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   122
            LookAndFeel laf = (LookAndFeel)c.newInstance();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   123
            return laf.isSupportedLookAndFeel();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   124
        } catch (Exception e) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   125
            return false;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   126
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   127
    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   128
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   129
    public void actionPerformed(ActionEvent e) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   130
        String s = e.getActionCommand();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   131
        if (s.equals("Metal")) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   132
            s = "javax.swing.plaf.metal.MetalLookAndFeel";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   133
        } else if (s.equals("Motif")) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   134
            s = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   135
        } else {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   136
            s = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   137
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   138
        try {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   139
            UIManager.setLookAndFeel(s);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   140
            SwingUtilities.updateComponentTreeUI(fr);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   141
            fr.pack();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   142
        } catch(Exception ex) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   143
            ex.printStackTrace();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   144
            throw new RuntimeException(ex);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   145
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   146
    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   147
   static class Test {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   148
        private boolean pass;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   149
        JFrame createTestFrame(String name, Component topComponent, String instructions, int instrHeight) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   150
            final String PASS = "Pass";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   151
            final String FAIL = "Fail";
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   152
            JFrame frame = new JFrame(name);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   153
            frame.setLayout(new BorderLayout());
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   154
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   155
            JPanel testButtonsPanel = new JPanel();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   156
            testButtonsPanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 20));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   157
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   158
            ActionListener btnAL = new ActionListener() {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   159
                public void actionPerformed(ActionEvent event) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   160
                    switch (event.getActionCommand()) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   161
                        case PASS:
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   162
                            pass();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   163
                            break;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   164
                        default:
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   165
                            throw new RuntimeException("Test failed.");
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   166
                    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   167
                }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   168
            };
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   169
            JButton passBtn = new JButton(PASS);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   170
            passBtn.addActionListener(btnAL);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   171
            passBtn.setActionCommand(PASS);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   172
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   173
            JButton failBtn = new JButton(FAIL);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   174
            failBtn.addActionListener(btnAL);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   175
            failBtn.setActionCommand(FAIL);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   176
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   177
            testButtonsPanel.add(BorderLayout.WEST, passBtn);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   178
            testButtonsPanel.add(BorderLayout.EAST, failBtn);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   179
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   180
            JTextArea instrText = new JTextArea();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   181
            instrText.setLineWrap(true);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   182
            instrText.setEditable(false);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   183
            JScrollPane instrScrollPane = new JScrollPane(instrText);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   184
            instrScrollPane.setMaximumSize(new Dimension(Integer.MAX_VALUE, instrHeight));
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   185
            instrText.append(instructions);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   186
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   187
            JPanel servicePanel = new JPanel();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   188
            servicePanel.setLayout(new BorderLayout());
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   189
            if (topComponent == null) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   190
                frame.add(BorderLayout.CENTER, instrScrollPane);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   191
            } else {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   192
                servicePanel.add(BorderLayout.CENTER, instrScrollPane);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   193
                frame.add(BorderLayout.CENTER, topComponent);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   194
            }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   195
            servicePanel.add(BorderLayout.SOUTH, testButtonsPanel);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   196
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   197
            frame.add(BorderLayout.SOUTH, servicePanel);
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   198
            return frame;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   199
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   200
        synchronized void pass() {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   201
            pass = true;
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   202
            notifyAll();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   203
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   204
        synchronized void waitTestResult() throws InterruptedException {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   205
            while (!pass) {
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   206
                wait();
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   207
            }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   208
        }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   209
    }
f0321cc5becb 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS
kshefov
parents:
diff changeset
   210
}