Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-aarch32-jdk8u
Path: blob/jdk8u272-b10-aarch32-20201026/jdk/test/java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java
48795 views
1
/*
2
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
@test
26
@bug 6566434
27
@library ../../regtesthelpers
28
@build Util Sysout AbstractTest
29
@summary Choice in unfocusable window responds to keyboard
30
@author Andrei Dmitriev: area=awt-choice
31
@run main UnfocusableToplevel
32
*/
33
34
/**
35
* UnfocusableToplevel.java
36
*
37
* summary:
38
*/
39
40
import java.awt.*;
41
import java.awt.event.*;
42
import test.java.awt.regtesthelpers.AbstractTest;
43
import test.java.awt.regtesthelpers.Sysout;
44
import test.java.awt.regtesthelpers.Util;
45
46
public class UnfocusableToplevel {
47
48
final static Robot robot = Util.createRobot();
49
final static int REASONABLE_PATH_TIME = 5000;
50
51
public static void main(String []s)
52
{
53
Frame f = new Frame();
54
Window w = new Window(f);
55
final Choice ch = new Choice();
56
57
ch.add("item 1");
58
ch.add("item 2");
59
ch.add("item 3");
60
ch.add("item 4");
61
ch.add("item 5");
62
w.add(ch);
63
w.setLayout(new FlowLayout());
64
w.setSize(200, 200);
65
66
ch.addKeyListener(new KeyAdapter(){
67
public void keyTyped(KeyEvent e){
68
traceEvent("keytyped", e);
69
}
70
public void keyPressed(KeyEvent e){
71
traceEvent("keypress", e);
72
}
73
public void keyReleased(KeyEvent e){
74
traceEvent("keyrelease", e);
75
}
76
});
77
78
ch.addItemListener(new ItemListener(){
79
public void itemStateChanged(ItemEvent ie){
80
traceEvent("stateChanged", ie);
81
}
82
});
83
84
w.setVisible(true);
85
86
Util.waitForIdle(robot);
87
88
Util.clickOnComp(ch, robot);
89
Util.waitForIdle(robot);
90
91
// will not test if the dropdown become opened as there is no reliable
92
// technique to accomplish that rather then checking color of dropdown
93
// Will suppose that the dropdown appears
94
95
testKeys();
96
Util.waitForIdle(robot);
97
}
98
99
private static void testKeys(){
100
typeKey(KeyEvent.VK_UP);
101
typeKey(KeyEvent.VK_DOWN);
102
typeKey(KeyEvent.VK_K);
103
typeKey(KeyEvent.VK_PAGE_UP);
104
typeKey(KeyEvent.VK_PAGE_DOWN);
105
}
106
107
private static void typeKey(int keyChar){
108
try {
109
robot.keyPress(keyChar);
110
robot.delay(5);
111
} finally {
112
robot.keyRelease(keyChar);
113
}
114
robot.delay(100);
115
}
116
117
private static void traceEvent(String message, AWTEvent e){
118
AbstractTest.fail(message + " " + e.toString());
119
}
120
}
121
122