Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/awt/Modal/helpers/TestFrame.java
41152 views
1
/*
2
* Copyright (c) 2007, 2018, 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
import java.awt.*;
25
import java.awt.event.*;
26
27
import static jdk.test.lib.Asserts.*;
28
29
30
31
public class TestFrame extends Frame implements ActionListener,
32
FocusListener, WindowFocusListener, WindowListener {
33
34
public Button closeButton, openButton, dummyButton;
35
36
public Flag closeClicked, openClicked, dummyClicked;
37
public Flag closeGained, openGained, dummyGained;
38
public Flag closeLost, openLost, dummyLost;
39
public Flag focusGained, focusLost;
40
public Flag activated;
41
42
public Panel topPanel;
43
44
public static int delay = 500;
45
public static int keyDelay = 100;
46
47
public TestFrame() {
48
super();
49
initializeGUI();
50
}
51
52
private void initFlags() {
53
closeClicked = new Flag();
54
openClicked = new Flag();
55
dummyClicked = new Flag();
56
closeGained = new Flag();
57
openGained = new Flag();
58
dummyGained = new Flag();
59
closeLost = new Flag();
60
openLost = new Flag();
61
dummyLost = new Flag();
62
focusGained = new Flag();
63
focusLost = new Flag();
64
activated = new Flag();
65
}
66
67
public void resetStatus() {
68
activated.reset();
69
focusGained.reset();
70
closeGained.reset();
71
openGained.reset();
72
closeClicked.reset();
73
openClicked.reset();
74
}
75
76
private void initializeGUI() {
77
78
initFlags();
79
this.setTitle("Frame");
80
81
this.addWindowFocusListener(this);
82
this.addWindowListener(this);
83
84
this.setLayout(new GridLayout(3, 1));
85
86
topPanel = new Panel();
87
topPanel.setFocusable(false);
88
this.add(topPanel);
89
90
Panel p = new Panel();
91
p.setLayout(new GridLayout(1, 3));
92
93
closeButton = new Button("Close");
94
closeButton.addActionListener(this);
95
closeButton.addFocusListener(this);
96
97
openButton = new Button("Open");
98
openButton.addActionListener(this);
99
openButton.addFocusListener(this);
100
101
dummyButton = new Button("Dummy");
102
dummyButton.addActionListener(this);
103
dummyButton.addFocusListener(this);
104
105
p.add(closeButton);
106
p.add(openButton);
107
p.add(dummyButton);
108
109
this.add(p);
110
111
Panel bottomPanel = new Panel();
112
bottomPanel.setFocusable(false);
113
this.add(bottomPanel);
114
115
setSize(150, 150);
116
}
117
118
public void doOpenAction() {}
119
public void doCloseAction() {}
120
public void doDummyAction() {}
121
122
@Override
123
public void actionPerformed(ActionEvent event) {
124
if (closeButton.equals(event.getSource())) {
125
closeClicked.flagTriggered();
126
doCloseAction();
127
} else if (openButton.equals(event.getSource())) {
128
openClicked.flagTriggered();
129
doOpenAction();
130
} else if (dummyButton.equals(event.getSource())) {
131
dummyClicked.flagTriggered();
132
doDummyAction();
133
}
134
}
135
136
@Override
137
public void focusGained(FocusEvent event) {
138
if (closeButton.equals(event.getSource())) {
139
closeGained.flagTriggered();
140
} else if (openButton.equals(event.getSource())) {
141
openGained.flagTriggered();
142
} else if (dummyButton.equals(event.getSource())) {
143
dummyGained.flagTriggered();
144
}
145
}
146
147
@Override
148
public void focusLost(FocusEvent event) {
149
if (closeButton.equals(event.getSource())) {
150
closeLost.flagTriggered();
151
} else if (openButton.equals(event.getSource())) {
152
openLost.flagTriggered();
153
} else if (dummyButton.equals(event.getSource())) {
154
dummyLost.flagTriggered();
155
}
156
}
157
158
@Override
159
public void windowGainedFocus(WindowEvent event) {
160
focusGained.flagTriggered();
161
}
162
163
@Override
164
public void windowLostFocus(WindowEvent event) {
165
focusLost.flagTriggered();
166
}
167
168
@Override
169
public void windowActivated(WindowEvent e) {
170
activated.flagTriggered();
171
}
172
173
@Override
174
public void windowClosed(WindowEvent e) {}
175
176
@Override
177
public void windowClosing(WindowEvent e) {
178
assertTrue(false, "user closed window");
179
}
180
181
@Override
182
public void windowDeactivated(WindowEvent e) {}
183
@Override
184
public void windowDeiconified(WindowEvent e) {}
185
@Override
186
public void windowIconified(WindowEvent e) {}
187
@Override
188
public void windowOpened(WindowEvent e) {}
189
190
public void clickButton(Button b, ExtendedRobot robot) {
191
try {
192
Flag.waitTillShown(b);
193
} catch (InterruptedException e) {}
194
195
if ((closeButton.equals(b) || openButton.equals(b) ||
196
dummyButton.equals(b)) && robot != null) {
197
robot.mouseMove((int) b.getLocationOnScreen().x + b.getSize().width / 2,
198
(int) b.getLocationOnScreen().y + b.getSize().height / 2);
199
robot.delay(delay);
200
robot.click();
201
robot.delay(delay);
202
}
203
}
204
205
public void clickOpenButton(ExtendedRobot robot) throws Exception {
206
clickOpenButton(robot, true, "");
207
}
208
209
public void clickOpenButton(ExtendedRobot robot,
210
boolean refState,
211
String message) throws Exception {
212
openClicked.reset();
213
clickButton(openButton, robot);
214
openClicked.waitForFlagTriggered();
215
216
String msg = "Clicking the frame Open button " + (refState ?
217
"did not trigger an action." :
218
"triggered an action when it should not.");
219
assertEQ(openClicked.flag(), refState, msg + " " + message);
220
}
221
222
public void clickCloseButton(ExtendedRobot robot) throws Exception {
223
clickCloseButton(robot, true, "");
224
}
225
226
public void clickCloseButton(ExtendedRobot robot,
227
boolean refState,
228
String message) throws Exception {
229
closeClicked.reset();
230
clickButton(closeButton, robot);
231
closeClicked.waitForFlagTriggered();
232
233
String msg = "Clicking the frame Close button " + (refState ?
234
"did not trigger an action." :
235
"triggered an action when it should not.");
236
assertEQ(closeClicked.flag(), refState, msg + " " + message);
237
}
238
239
public void clickDummyButton(ExtendedRobot robot) throws Exception {
240
clickDummyButton(robot, Flag.ATTEMPTS);
241
}
242
243
public void clickDummyButton(ExtendedRobot robot,
244
int attempts) throws Exception {
245
clickDummyButton(robot, attempts, true, "");
246
}
247
248
public void clickDummyButton(ExtendedRobot robot,
249
int attempts,
250
boolean refState,
251
String message) throws Exception {
252
dummyClicked.reset();
253
clickButton(dummyButton, robot);
254
dummyClicked.waitForFlagTriggered();
255
256
String msg = "Clicking the frame Dummy button " + (refState ?
257
"did not trigger an action." :
258
"triggered an action when it should not.");
259
assertEQ(dummyClicked.flag(), refState, msg + " " + message);
260
}
261
262
public void clickInside(ExtendedRobot robot) throws Exception {
263
try {
264
Flag.waitTillShown(topPanel);
265
} catch (InterruptedException e) {}
266
267
if (robot != null) {
268
robot.mouseMove((int) topPanel.getLocationOnScreen().x + topPanel.getSize().width / 2,
269
(int) topPanel.getLocationOnScreen().y + topPanel.getSize().height / 2);
270
robot.delay(delay);
271
robot.click();
272
robot.delay(delay);
273
}
274
}
275
276
public void transferFocusToFrame(ExtendedRobot robot,
277
String message,
278
Button b) throws Exception {
279
focusGained.reset();
280
clickInside(robot);
281
282
focusGained.waitForFlagTriggered();
283
assertTrue(focusGained.flag(),
284
"Clicking inside the Frame did not make it focused. " + message);
285
286
if (b != null) {
287
assertTrue(b.hasFocus(), "Button " + b.getLabel() +
288
" did not gain focus when Frame brought to top");
289
}
290
}
291
292
public void transferFocusToBlockedFrame(ExtendedRobot robot,
293
String message,
294
Button b) throws Exception {
295
focusGained.reset();
296
clickInside(robot);
297
298
robot.waitForIdle(delay);
299
300
assertFalse(focusGained.flag(),
301
"Clicking inside a blocked Frame made it focused. " + message);
302
303
robot.waitForIdle(delay);
304
if (b != null) {
305
assertFalse(b.hasFocus(), "Button " + b.getLabel() +
306
" present in a blocked frame gained focus");
307
}
308
}
309
310
public void checkBlockedFrame(
311
ExtendedRobot robot, String message) throws Exception {
312
313
dummyGained.reset();
314
dummyClicked.reset();
315
focusGained.reset();
316
317
clickButton(dummyButton, robot);
318
319
robot.waitForIdle(delay);
320
321
assertFalse(dummyClicked.flag(),
322
"DummyButton on blocked Frame triggered action when clicked. " + message);
323
324
assertFalse(dummyGained.flag(),
325
"DummyButton on blocked Frame gained focus when clicked. " + message);
326
327
assertFalse(focusGained.flag(),
328
"A blocked Frame gained focus when component clicked. " + message);
329
}
330
331
public void checkUnblockedFrame(ExtendedRobot robot,
332
String message) throws Exception {
333
dummyGained.reset();
334
dummyClicked.reset();
335
clickButton(dummyButton, robot);
336
337
dummyGained.waitForFlagTriggered();
338
assertTrue(dummyGained.flag(),
339
"DummyButton on Frame did not gain focus on clicking. " + message);
340
341
dummyClicked.waitForFlagTriggered();
342
assertTrue(dummyClicked.flag(),
343
"DummyButton on Frame did not trigger action on clicking. " + message);
344
345
closeGained.reset();
346
robot.type(KeyEvent.VK_TAB);
347
348
closeGained.waitForFlagTriggered();
349
assertTrue(closeGained.flag(),
350
"FAIL: Tab navigation did not happen properly on Frame. First " +
351
"button did not gain focus on tab press. " + message);
352
}
353
354
public void checkCloseButtonFocusGained(boolean refState) {
355
checkCloseButtonFocusGained(refState, Flag.ATTEMPTS);
356
}
357
358
public void checkCloseButtonFocusGained(boolean refState, int attempts) {
359
try {
360
closeGained.waitForFlagTriggered(attempts);
361
} catch (InterruptedException e) {}
362
363
String msg = "frame Close button ";
364
msg += (refState ? "did not gain focus" :
365
"gained focus when it should not");
366
367
assertTrue(closeGained.flag() == refState, msg);
368
}
369
370
public void checkOpenButtonFocusGained(boolean refState) {
371
checkOpenButtonFocusGained(refState, Flag.ATTEMPTS);
372
}
373
374
public void checkOpenButtonFocusGained(boolean refState, int attempts) {
375
try {
376
openGained.waitForFlagTriggered(attempts);
377
} catch (InterruptedException e) {}
378
379
String msg = "frame Open button ";
380
msg += (refState ? "did not gain focus" :
381
"gained focus when it should not");
382
383
assertTrue(openGained.flag() == refState, msg);
384
}
385
386
public void checkOpenButtonFocusLost(boolean refState) {
387
checkOpenButtonFocusLost(refState, Flag.ATTEMPTS);
388
}
389
390
public void checkOpenButtonFocusLost(boolean refState, int attempts) {
391
try {
392
openLost.waitForFlagTriggered(attempts);
393
} catch (InterruptedException e) {}
394
395
String msg = "frame Open button ";
396
msg += (refState ? "did not lose focus" :
397
"lost focus when it should not");
398
assertTrue(openLost.flag()== refState, msg);
399
}
400
}
401
402