|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package sun.awt; |
|
|
|
import sun.awt.datatransfer.DataTransferer; |
|
|
|
import java.awt.*; |
|
import java.awt.dnd.*; |
|
import java.awt.dnd.peer.DragSourceContextPeer; |
|
import java.awt.event.*; |
|
import java.awt.im.InputMethodHighlight; |
|
import java.awt.image.*; |
|
import java.awt.datatransfer.Clipboard; |
|
import java.awt.peer.*; |
|
import java.beans.PropertyChangeListener; |
|
import java.net.URL; |
|
import java.util.Map; |
|
import java.util.Properties; |
|
|
|
public class HeadlessToolkit extends Toolkit |
|
implements ComponentFactory, KeyboardFocusManagerPeerProvider { |
|
|
|
private static final KeyboardFocusManagerPeer kfmPeer = new KeyboardFocusManagerPeer() { |
|
public void setCurrentFocusedWindow(Window win) {} |
|
public Window getCurrentFocusedWindow() { return null; } |
|
public void setCurrentFocusOwner(Component comp) {} |
|
public Component getCurrentFocusOwner() { return null; } |
|
public void clearGlobalFocusOwner(Window activeWindow) {} |
|
}; |
|
|
|
private Toolkit tk; |
|
private ComponentFactory componentFactory; |
|
|
|
public HeadlessToolkit(Toolkit tk) { |
|
this.tk = tk; |
|
if (tk instanceof ComponentFactory) { |
|
componentFactory = (ComponentFactory)tk; |
|
} |
|
} |
|
|
|
public Toolkit getUnderlyingToolkit() { |
|
return tk; |
|
} |
|
|
|
/* |
|
* Component peer objects. |
|
*/ |
|
|
|
/* Lightweight implementation of Canvas and Panel */ |
|
|
|
public CanvasPeer createCanvas(Canvas target) { |
|
return (CanvasPeer)createComponent(target); |
|
} |
|
|
|
public PanelPeer createPanel(Panel target) { |
|
return (PanelPeer)createComponent(target); |
|
} |
|
|
|
/* |
|
* Component peer objects - unsupported. |
|
*/ |
|
|
|
public WindowPeer createWindow(Window target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public FramePeer createFrame(Frame target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public DialogPeer createDialog(Dialog target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ButtonPeer createButton(Button target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public TextFieldPeer createTextField(TextField target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ChoicePeer createChoice(Choice target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public LabelPeer createLabel(Label target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ListPeer createList(List target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public CheckboxPeer createCheckbox(Checkbox target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ScrollbarPeer createScrollbar(Scrollbar target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ScrollPanePeer createScrollPane(ScrollPane target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public TextAreaPeer createTextArea(TextArea target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public FileDialogPeer createFileDialog(FileDialog target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public MenuBarPeer createMenuBar(MenuBar target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public MenuPeer createMenu(Menu target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public PopupMenuPeer createPopupMenu(PopupMenu target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public MenuItemPeer createMenuItem(MenuItem target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public DragSourceContextPeer createDragSourceContextPeer( |
|
DragGestureEvent dge) |
|
throws InvalidDnDOperationException { |
|
throw new InvalidDnDOperationException("Headless environment"); |
|
} |
|
|
|
public RobotPeer createRobot(Robot target, GraphicsDevice screen) |
|
throws AWTException, HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() { |
|
|
|
return kfmPeer; |
|
} |
|
|
|
public TrayIconPeer createTrayIcon(TrayIcon target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public SystemTrayPeer createSystemTray(SystemTray target) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public boolean isTraySupported() { |
|
return false; |
|
} |
|
|
|
public GlobalCursorManager getGlobalCursorManager() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
|
|
|
|
*/ |
|
protected void loadSystemColors(int[] systemColors) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public ColorModel getColorModel() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public int getScreenResolution() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Map mapInputMethodHighlight(InputMethodHighlight highlight) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public int getMenuShortcutKeyMask() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public boolean getLockingKeyState(int keyCode) |
|
throws UnsupportedOperationException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public void setLockingKeyState(int keyCode, boolean on) |
|
throws UnsupportedOperationException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Cursor createCustomCursor(Image cursor, Point hotSpot, String name) |
|
throws IndexOutOfBoundsException, HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Dimension getBestCursorSize(int preferredWidth, int preferredHeight) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public int getMaximumCursorColors() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public <T extends DragGestureRecognizer> T |
|
createDragGestureRecognizer(Class<T> abstractRecognizerClass, |
|
DragSource ds, Component c, |
|
int srcActions, DragGestureListener dgl) |
|
{ |
|
return null; |
|
} |
|
|
|
public int getScreenHeight() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public int getScreenWidth() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Dimension getScreenSize() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Insets getScreenInsets(GraphicsConfiguration gc) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public void setDynamicLayout(boolean dynamic) |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
protected boolean isDynamicLayoutSet() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public boolean isDynamicLayoutActive() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
public Clipboard getSystemClipboard() |
|
throws HeadlessException { |
|
throw new HeadlessException(); |
|
} |
|
|
|
|
|
|
|
*/ |
|
public PrintJob getPrintJob(Frame frame, String jobtitle, |
|
JobAttributes jobAttributes, |
|
PageAttributes pageAttributes) { |
|
if (frame != null) { |
|
|
|
throw new HeadlessException(); |
|
} |
|
throw new NullPointerException("frame must not be null"); |
|
} |
|
|
|
public PrintJob getPrintJob(Frame frame, String doctitle, Properties props) |
|
{ |
|
if (frame != null) { |
|
|
|
throw new HeadlessException(); |
|
} |
|
throw new NullPointerException("frame must not be null"); |
|
} |
|
|
|
/* |
|
* Headless toolkit - supported. |
|
*/ |
|
|
|
public void sync() { |
|
// Do nothing |
|
} |
|
|
|
public void beep() { |
|
|
|
System.out.write(0x07); |
|
} |
|
|
|
|
|
|
|
*/ |
|
public EventQueue getSystemEventQueueImpl() { |
|
return SunToolkit.getSystemEventQueueImplPP(); |
|
} |
|
|
|
|
|
|
|
*/ |
|
public int checkImage(Image img, int w, int h, ImageObserver o) { |
|
return tk.checkImage(img, w, h, o); |
|
} |
|
|
|
public boolean prepareImage( |
|
Image img, int w, int h, ImageObserver o) { |
|
return tk.prepareImage(img, w, h, o); |
|
} |
|
|
|
public Image getImage(String filename) { |
|
return tk.getImage(filename); |
|
} |
|
|
|
public Image getImage(URL url) { |
|
return tk.getImage(url); |
|
} |
|
|
|
public Image createImage(String filename) { |
|
return tk.createImage(filename); |
|
} |
|
|
|
public Image createImage(URL url) { |
|
return tk.createImage(url); |
|
} |
|
|
|
public Image createImage(byte[] data, int offset, int length) { |
|
return tk.createImage(data, offset, length); |
|
} |
|
|
|
public Image createImage(ImageProducer producer) { |
|
return tk.createImage(producer); |
|
} |
|
|
|
public Image createImage(byte[] imagedata) { |
|
return tk.createImage(imagedata); |
|
} |
|
|
|
|
|
|
|
|
|
*/ |
|
@SuppressWarnings("deprecation") |
|
public FontPeer getFontPeer(String name, int style) { |
|
if (componentFactory != null) { |
|
return componentFactory.getFontPeer(name, style); |
|
} |
|
return null; |
|
} |
|
|
|
@Override |
|
public DataTransferer getDataTransferer() { |
|
return null; |
|
} |
|
|
|
@SuppressWarnings("deprecation") |
|
public FontMetrics getFontMetrics(Font font) { |
|
return tk.getFontMetrics(font); |
|
} |
|
|
|
@SuppressWarnings("deprecation") |
|
public String[] getFontList() { |
|
return tk.getFontList(); |
|
} |
|
|
|
/* |
|
* Desktop properties |
|
*/ |
|
|
|
public void addPropertyChangeListener(String name, |
|
PropertyChangeListener pcl) { |
|
tk.addPropertyChangeListener(name, pcl); |
|
} |
|
|
|
public void removePropertyChangeListener(String name, |
|
PropertyChangeListener pcl) { |
|
tk.removePropertyChangeListener(name, pcl); |
|
} |
|
|
|
|
|
|
|
*/ |
|
public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) { |
|
return false; |
|
} |
|
|
|
public boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType exclusionType) { |
|
return false; |
|
} |
|
|
|
|
|
|
|
*/ |
|
public boolean isAlwaysOnTopSupported() { |
|
return false; |
|
} |
|
|
|
/* |
|
* AWT Event listeners |
|
*/ |
|
|
|
public void addAWTEventListener(AWTEventListener listener, |
|
long eventMask) { |
|
tk.addAWTEventListener(listener, eventMask); |
|
} |
|
|
|
public void removeAWTEventListener(AWTEventListener listener) { |
|
tk.removeAWTEventListener(listener); |
|
} |
|
|
|
public AWTEventListener[] getAWTEventListeners() { |
|
return tk.getAWTEventListeners(); |
|
} |
|
|
|
public AWTEventListener[] getAWTEventListeners(long eventMask) { |
|
return tk.getAWTEventListeners(eventMask); |
|
} |
|
|
|
public boolean isDesktopSupported() { |
|
return false; |
|
} |
|
|
|
public DesktopPeer createDesktopPeer(Desktop target) |
|
throws HeadlessException{ |
|
throw new HeadlessException(); |
|
} |
|
|
|
public boolean areExtraMouseButtonsEnabled() throws HeadlessException{ |
|
throw new HeadlessException(); |
|
} |
|
} |