Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/awt/Component/PaintAll/PaintAll.java
47311 views
1
/*
2
* Copyright (c) 2011, 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.Button;
25
import java.awt.Canvas;
26
import java.awt.Checkbox;
27
import java.awt.Choice;
28
import java.awt.Component;
29
import java.awt.Container;
30
import java.awt.Dimension;
31
import java.awt.Frame;
32
import java.awt.Graphics;
33
import java.awt.GridLayout;
34
import java.awt.Label;
35
import java.awt.List;
36
import java.awt.Panel;
37
import java.awt.ScrollPane;
38
import java.awt.Scrollbar;
39
import java.awt.TextArea;
40
import java.awt.TextField;
41
import java.awt.Toolkit;
42
import java.awt.image.BufferedImage;
43
44
/*
45
@test
46
@bug 6596915
47
@summary Test Component.paintAll() method
48
@author [email protected]: area=awt.component
49
@library ../../../../lib/testlibrary/
50
@build ExtendedRobot
51
@run main PaintAll
52
*/
53
public class PaintAll {
54
55
private static volatile boolean lwPainted;
56
private static volatile boolean buttonPainted;
57
private static volatile boolean canvasPainted;
58
private static volatile boolean checkboxPainted;
59
private static volatile boolean choicePainted;
60
private static volatile boolean containerPainted;
61
private static volatile boolean framePainted;
62
private static volatile boolean labelPainted;
63
private static volatile boolean listPainted;
64
private static volatile boolean panelPainted;
65
private static volatile boolean scrollbarPainted;
66
private static volatile boolean scrollPanePainted;
67
private static volatile boolean textAreaPainted;
68
private static volatile boolean textFieldPainted;
69
private static ExtendedRobot robot = null;
70
71
private static final Button buttonStub = new Button() {
72
@Override
73
public void paint(final Graphics g) {
74
buttonPainted = true;
75
}
76
};
77
78
private static final Canvas canvasStub = new Canvas() {
79
@Override
80
public void paint(final Graphics g) {
81
canvasPainted = true;
82
}
83
};
84
85
private static final Checkbox checkboxStub = new Checkbox() {
86
@Override
87
public void paint(final Graphics g) {
88
checkboxPainted = true;
89
}
90
};
91
92
private static final Choice choiceStub = new Choice() {
93
@Override
94
public void paint(final Graphics g) {
95
choicePainted = true;
96
}
97
};
98
99
private static final Component lwComponentStub = new Component() {
100
@Override
101
public void paint(final Graphics g) {
102
lwPainted = true;
103
}
104
};
105
106
private static final Container containerStub = new Container() {
107
@Override
108
public void paint(final Graphics g) {
109
containerPainted = true;
110
}
111
};
112
113
private static final Frame frame = new Frame() {
114
@Override
115
public void paint(final Graphics g) {
116
super.paint(g);
117
framePainted = true;
118
}
119
};
120
121
private static final Label labelStub = new Label() {
122
@Override
123
public void paint(final Graphics g) {
124
labelPainted = true;
125
}
126
};
127
128
private static final List listStub = new List() {
129
@Override
130
public void paint(final Graphics g) {
131
listPainted = true;
132
}
133
};
134
135
private static final Panel panelStub = new Panel() {
136
@Override
137
public void paint(final Graphics g) {
138
panelPainted = true;
139
}
140
};
141
142
private static final Scrollbar scrollbarStub = new Scrollbar() {
143
@Override
144
public void paint(final Graphics g) {
145
scrollbarPainted = true;
146
}
147
};
148
149
private static final ScrollPane scrollPaneStub = new ScrollPane() {
150
@Override
151
public void paint(final Graphics g) {
152
scrollPanePainted = true;
153
}
154
};
155
156
private static final TextArea textAreaStub = new TextArea() {
157
@Override
158
public void paint(final Graphics g) {
159
textAreaPainted = true;
160
}
161
};
162
163
private static final TextField textFieldStub = new TextField() {
164
@Override
165
public void paint(final Graphics g) {
166
textFieldPainted = true;
167
}
168
};
169
170
public static void main(final String[] args) throws Exception {
171
//Frame initialisation
172
final BufferedImage graphicsProducer =
173
new BufferedImage(BufferedImage.TYPE_INT_ARGB, 1, 1);
174
175
final Graphics g = graphicsProducer.getGraphics();
176
177
frame.setLayout(new GridLayout());
178
frame.add(buttonStub);
179
frame.add(canvasStub);
180
frame.add(checkboxStub);
181
frame.add(choiceStub);
182
frame.add(lwComponentStub);
183
frame.add(containerStub);
184
frame.add(labelStub);
185
frame.add(listStub);
186
frame.add(panelStub);
187
frame.add(scrollbarStub);
188
frame.add(scrollPaneStub);
189
frame.add(textAreaStub);
190
frame.add(textFieldStub);
191
frame.setSize(new Dimension(500, 500));
192
frame.setLocationRelativeTo(null);
193
frame.setVisible(true);
194
sleep();
195
196
//Check results.
197
validation();
198
199
//Reset all flags to 'false'.
200
initPaintedFlags();
201
202
//Tested method.
203
frame.paintAll(g);
204
sleep();
205
206
//Check results.
207
validation();
208
cleanup();
209
}
210
211
private static void initPaintedFlags() {
212
lwPainted = false;
213
buttonPainted = false;
214
canvasPainted = false;
215
checkboxPainted = false;
216
choicePainted = false;
217
containerPainted = false;
218
framePainted = false;
219
labelPainted = false;
220
listPainted = false;
221
panelPainted = false;
222
scrollbarPainted = false;
223
scrollPanePainted = false;
224
textAreaPainted = false;
225
textFieldPainted = false;
226
}
227
228
private static void validation() {
229
if (!buttonPainted) {
230
fail("Paint is not called a Button "
231
+ "when paintAll() invoked on a parent");
232
}
233
if (!canvasPainted) {
234
fail("Paint is not called a Canvas "
235
+ "when paintAll() invoked on a parent");
236
}
237
if (!checkboxPainted) {
238
fail("Paint is not called a Checkbox "
239
+ "when paintAll() invoked on a parent");
240
}
241
if (!choicePainted) {
242
fail("Paint is not called a Choice "
243
+ "when paintAll() invoked on a parent");
244
}
245
if (!lwPainted) {
246
fail("Paint is not called on a lightweight"
247
+ " subcomponent when paintAll() invoked on a parent");
248
}
249
if (!containerPainted) {
250
fail("Paint is not called on a Container"
251
+ " subcomponent when paintAll() invoked on a parent");
252
}
253
if (!labelPainted) {
254
fail("Paint is not called on a Label"
255
+ " subcomponent when paintAll() invoked on a parent");
256
}
257
if (!listPainted) {
258
fail("Paint is not called on a List"
259
+ " subcomponent when paintAll() invoked on a parent");
260
}
261
if (!panelPainted) {
262
fail("Paint is not called on a Panel"
263
+ " subcomponent when paintAll() invoked on a parent");
264
}
265
if (!scrollbarPainted) {
266
fail("Paint is not called on a Scrollbar"
267
+ " subcomponent when paintAll() invoked on a parent");
268
}
269
if (!scrollPanePainted) {
270
fail("Paint is not called on a ScrollPane"
271
+ " subcomponent when paintAll() invoked on a parent");
272
}
273
if (!textAreaPainted) {
274
fail("Paint is not called on a TextArea"
275
+ " subcomponent when paintAll() invoked on a parent");
276
}
277
if (!textFieldPainted) {
278
fail("Paint is not called on a TextField"
279
+ " subcomponent when paintAll() invoked on a parent");
280
}
281
if (!framePainted) {
282
fail("Paint is not called on a Frame when paintAll()");
283
}
284
}
285
286
private static void sleep() {
287
if(robot == null) {
288
try {
289
robot = new ExtendedRobot();
290
}catch(Exception ex) {
291
ex.printStackTrace();
292
throw new RuntimeException("Unexpected failure");
293
}
294
}
295
robot.waitForIdle(500);
296
}
297
298
private static void fail(final String message) {
299
cleanup();
300
throw new RuntimeException(message);
301
}
302
303
private static void cleanup() {
304
frame.dispose();
305
}
306
}
307
308