Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/sun/awt/HeadlessToolkit.java
38827 views
1
/*
2
* Copyright (c) 2000, 2012, 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. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package sun.awt;
27
28
import sun.awt.datatransfer.DataTransferer;
29
30
import java.awt.*;
31
import java.awt.dnd.*;
32
import java.awt.dnd.peer.DragSourceContextPeer;
33
import java.awt.event.*;
34
import java.awt.im.InputMethodHighlight;
35
import java.awt.image.*;
36
import java.awt.datatransfer.Clipboard;
37
import java.awt.peer.*;
38
import java.beans.PropertyChangeListener;
39
import java.net.URL;
40
import java.util.Map;
41
import java.util.Properties;
42
43
public class HeadlessToolkit extends Toolkit
44
implements ComponentFactory, KeyboardFocusManagerPeerProvider {
45
46
private static final KeyboardFocusManagerPeer kfmPeer = new KeyboardFocusManagerPeer() {
47
public void setCurrentFocusedWindow(Window win) {}
48
public Window getCurrentFocusedWindow() { return null; }
49
public void setCurrentFocusOwner(Component comp) {}
50
public Component getCurrentFocusOwner() { return null; }
51
public void clearGlobalFocusOwner(Window activeWindow) {}
52
};
53
54
private Toolkit tk;
55
private ComponentFactory componentFactory;
56
57
public HeadlessToolkit(Toolkit tk) {
58
this.tk = tk;
59
if (tk instanceof ComponentFactory) {
60
componentFactory = (ComponentFactory)tk;
61
}
62
}
63
64
public Toolkit getUnderlyingToolkit() {
65
return tk;
66
}
67
68
/*
69
* Component peer objects.
70
*/
71
72
/* Lightweight implementation of Canvas and Panel */
73
74
public CanvasPeer createCanvas(Canvas target) {
75
return (CanvasPeer)createComponent(target);
76
}
77
78
public PanelPeer createPanel(Panel target) {
79
return (PanelPeer)createComponent(target);
80
}
81
82
/*
83
* Component peer objects - unsupported.
84
*/
85
86
public WindowPeer createWindow(Window target)
87
throws HeadlessException {
88
throw new HeadlessException();
89
}
90
91
public FramePeer createFrame(Frame target)
92
throws HeadlessException {
93
throw new HeadlessException();
94
}
95
96
public DialogPeer createDialog(Dialog target)
97
throws HeadlessException {
98
throw new HeadlessException();
99
}
100
101
public ButtonPeer createButton(Button target)
102
throws HeadlessException {
103
throw new HeadlessException();
104
}
105
106
public TextFieldPeer createTextField(TextField target)
107
throws HeadlessException {
108
throw new HeadlessException();
109
}
110
111
public ChoicePeer createChoice(Choice target)
112
throws HeadlessException {
113
throw new HeadlessException();
114
}
115
116
public LabelPeer createLabel(Label target)
117
throws HeadlessException {
118
throw new HeadlessException();
119
}
120
121
public ListPeer createList(List target)
122
throws HeadlessException {
123
throw new HeadlessException();
124
}
125
126
public CheckboxPeer createCheckbox(Checkbox target)
127
throws HeadlessException {
128
throw new HeadlessException();
129
}
130
131
public ScrollbarPeer createScrollbar(Scrollbar target)
132
throws HeadlessException {
133
throw new HeadlessException();
134
}
135
136
public ScrollPanePeer createScrollPane(ScrollPane target)
137
throws HeadlessException {
138
throw new HeadlessException();
139
}
140
141
public TextAreaPeer createTextArea(TextArea target)
142
throws HeadlessException {
143
throw new HeadlessException();
144
}
145
146
public FileDialogPeer createFileDialog(FileDialog target)
147
throws HeadlessException {
148
throw new HeadlessException();
149
}
150
151
public MenuBarPeer createMenuBar(MenuBar target)
152
throws HeadlessException {
153
throw new HeadlessException();
154
}
155
156
public MenuPeer createMenu(Menu target)
157
throws HeadlessException {
158
throw new HeadlessException();
159
}
160
161
public PopupMenuPeer createPopupMenu(PopupMenu target)
162
throws HeadlessException {
163
throw new HeadlessException();
164
}
165
166
public MenuItemPeer createMenuItem(MenuItem target)
167
throws HeadlessException {
168
throw new HeadlessException();
169
}
170
171
public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target)
172
throws HeadlessException {
173
throw new HeadlessException();
174
}
175
176
public DragSourceContextPeer createDragSourceContextPeer(
177
DragGestureEvent dge)
178
throws InvalidDnDOperationException {
179
throw new InvalidDnDOperationException("Headless environment");
180
}
181
182
public RobotPeer createRobot(Robot target, GraphicsDevice screen)
183
throws AWTException, HeadlessException {
184
throw new HeadlessException();
185
}
186
187
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() {
188
// See 6833019.
189
return kfmPeer;
190
}
191
192
public TrayIconPeer createTrayIcon(TrayIcon target)
193
throws HeadlessException {
194
throw new HeadlessException();
195
}
196
197
public SystemTrayPeer createSystemTray(SystemTray target)
198
throws HeadlessException {
199
throw new HeadlessException();
200
}
201
202
public boolean isTraySupported() {
203
return false;
204
}
205
206
public GlobalCursorManager getGlobalCursorManager()
207
throws HeadlessException {
208
throw new HeadlessException();
209
}
210
211
/*
212
* Headless toolkit - unsupported.
213
*/
214
protected void loadSystemColors(int[] systemColors)
215
throws HeadlessException {
216
throw new HeadlessException();
217
}
218
219
public ColorModel getColorModel()
220
throws HeadlessException {
221
throw new HeadlessException();
222
}
223
224
public int getScreenResolution()
225
throws HeadlessException {
226
throw new HeadlessException();
227
}
228
229
public Map mapInputMethodHighlight(InputMethodHighlight highlight)
230
throws HeadlessException {
231
throw new HeadlessException();
232
}
233
234
public int getMenuShortcutKeyMask()
235
throws HeadlessException {
236
throw new HeadlessException();
237
}
238
239
public boolean getLockingKeyState(int keyCode)
240
throws UnsupportedOperationException {
241
throw new HeadlessException();
242
}
243
244
public void setLockingKeyState(int keyCode, boolean on)
245
throws UnsupportedOperationException {
246
throw new HeadlessException();
247
}
248
249
public Cursor createCustomCursor(Image cursor, Point hotSpot, String name)
250
throws IndexOutOfBoundsException, HeadlessException {
251
throw new HeadlessException();
252
}
253
254
public Dimension getBestCursorSize(int preferredWidth, int preferredHeight)
255
throws HeadlessException {
256
throw new HeadlessException();
257
}
258
259
public int getMaximumCursorColors()
260
throws HeadlessException {
261
throw new HeadlessException();
262
}
263
264
public <T extends DragGestureRecognizer> T
265
createDragGestureRecognizer(Class<T> abstractRecognizerClass,
266
DragSource ds, Component c,
267
int srcActions, DragGestureListener dgl)
268
{
269
return null;
270
}
271
272
public int getScreenHeight()
273
throws HeadlessException {
274
throw new HeadlessException();
275
}
276
277
public int getScreenWidth()
278
throws HeadlessException {
279
throw new HeadlessException();
280
}
281
282
public Dimension getScreenSize()
283
throws HeadlessException {
284
throw new HeadlessException();
285
}
286
287
public Insets getScreenInsets(GraphicsConfiguration gc)
288
throws HeadlessException {
289
throw new HeadlessException();
290
}
291
292
public void setDynamicLayout(boolean dynamic)
293
throws HeadlessException {
294
throw new HeadlessException();
295
}
296
297
protected boolean isDynamicLayoutSet()
298
throws HeadlessException {
299
throw new HeadlessException();
300
}
301
302
public boolean isDynamicLayoutActive()
303
throws HeadlessException {
304
throw new HeadlessException();
305
}
306
307
public Clipboard getSystemClipboard()
308
throws HeadlessException {
309
throw new HeadlessException();
310
}
311
312
/*
313
* Printing
314
*/
315
public PrintJob getPrintJob(Frame frame, String jobtitle,
316
JobAttributes jobAttributes,
317
PageAttributes pageAttributes) {
318
if (frame != null) {
319
// Should never happen
320
throw new HeadlessException();
321
}
322
throw new NullPointerException("frame must not be null");
323
}
324
325
public PrintJob getPrintJob(Frame frame, String doctitle, Properties props)
326
{
327
if (frame != null) {
328
// Should never happen
329
throw new HeadlessException();
330
}
331
throw new NullPointerException("frame must not be null");
332
}
333
334
/*
335
* Headless toolkit - supported.
336
*/
337
338
public void sync() {
339
// Do nothing
340
}
341
342
public void beep() {
343
// Send alert character
344
System.out.write(0x07);
345
}
346
347
/*
348
* Event Queue
349
*/
350
public EventQueue getSystemEventQueueImpl() {
351
return SunToolkit.getSystemEventQueueImplPP();
352
}
353
354
/*
355
* Images.
356
*/
357
public int checkImage(Image img, int w, int h, ImageObserver o) {
358
return tk.checkImage(img, w, h, o);
359
}
360
361
public boolean prepareImage(
362
Image img, int w, int h, ImageObserver o) {
363
return tk.prepareImage(img, w, h, o);
364
}
365
366
public Image getImage(String filename) {
367
return tk.getImage(filename);
368
}
369
370
public Image getImage(URL url) {
371
return tk.getImage(url);
372
}
373
374
public Image createImage(String filename) {
375
return tk.createImage(filename);
376
}
377
378
public Image createImage(URL url) {
379
return tk.createImage(url);
380
}
381
382
public Image createImage(byte[] data, int offset, int length) {
383
return tk.createImage(data, offset, length);
384
}
385
386
public Image createImage(ImageProducer producer) {
387
return tk.createImage(producer);
388
}
389
390
public Image createImage(byte[] imagedata) {
391
return tk.createImage(imagedata);
392
}
393
394
395
/*
396
* Fonts
397
*/
398
@SuppressWarnings("deprecation")
399
public FontPeer getFontPeer(String name, int style) {
400
if (componentFactory != null) {
401
return componentFactory.getFontPeer(name, style);
402
}
403
return null;
404
}
405
406
@Override
407
public DataTransferer getDataTransferer() {
408
return null;
409
}
410
411
@SuppressWarnings("deprecation")
412
public FontMetrics getFontMetrics(Font font) {
413
return tk.getFontMetrics(font);
414
}
415
416
@SuppressWarnings("deprecation")
417
public String[] getFontList() {
418
return tk.getFontList();
419
}
420
421
/*
422
* Desktop properties
423
*/
424
425
public void addPropertyChangeListener(String name,
426
PropertyChangeListener pcl) {
427
tk.addPropertyChangeListener(name, pcl);
428
}
429
430
public void removePropertyChangeListener(String name,
431
PropertyChangeListener pcl) {
432
tk.removePropertyChangeListener(name, pcl);
433
}
434
435
/*
436
* Modality
437
*/
438
public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) {
439
return false;
440
}
441
442
public boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType exclusionType) {
443
return false;
444
}
445
446
/*
447
* Always on top
448
*/
449
public boolean isAlwaysOnTopSupported() {
450
return false;
451
}
452
453
/*
454
* AWT Event listeners
455
*/
456
457
public void addAWTEventListener(AWTEventListener listener,
458
long eventMask) {
459
tk.addAWTEventListener(listener, eventMask);
460
}
461
462
public void removeAWTEventListener(AWTEventListener listener) {
463
tk.removeAWTEventListener(listener);
464
}
465
466
public AWTEventListener[] getAWTEventListeners() {
467
return tk.getAWTEventListeners();
468
}
469
470
public AWTEventListener[] getAWTEventListeners(long eventMask) {
471
return tk.getAWTEventListeners(eventMask);
472
}
473
474
public boolean isDesktopSupported() {
475
return false;
476
}
477
478
public DesktopPeer createDesktopPeer(Desktop target)
479
throws HeadlessException{
480
throw new HeadlessException();
481
}
482
483
public boolean areExtraMouseButtonsEnabled() throws HeadlessException{
484
throw new HeadlessException();
485
}
486
}
487
488