blob: c64a85a617ecd7ee14a227103c10d49532d94036 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package java.awt;
//???AWT
//import java.awt.datatransfer.Clipboard;
//import java.awt.dnd.DragGestureEvent;
//import java.awt.dnd.DragGestureListener;
//import java.awt.dnd.DragGestureRecognizer;
//import java.awt.dnd.DragSource;
//import java.awt.dnd.InvalidDnDOperationException;
//import java.awt.dnd.peer.DragSourceContextPeer;
import java.awt.im.InputMethodHighlight;
import java.awt.image.ColorModel; //import java.awt.peer.*;
//import java.beans.PropertyChangeSupport;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.harmony.awt.ComponentInternals; //import org.apache.harmony.awt.datatransfer.DTK;
import org.apache.harmony.awt.wtk.GraphicsFactory;
import org.apache.harmony.awt.wtk.NativeEventQueue;
import org.apache.harmony.awt.wtk.WindowFactory;
/**
* The HeadlessToolkit class is a subclass of ToolkitImpl to be used for
* graphical environments that lack keyboard and mouse capabilities.
*
* @since Android 1.0
*/
public final class HeadlessToolkit extends ToolkitImpl {
// ???AWT
/*
* @Override protected ButtonPeer createButton(Button a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected CheckboxPeer createCheckbox(Checkbox a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected CheckboxMenuItemPeer
* createCheckboxMenuItem(CheckboxMenuItem a0) throws HeadlessException {
* throw new HeadlessException(); }
* @Override protected ChoicePeer createChoice(Choice a0) throws
* HeadlessException { throw new HeadlessException(); } public Cursor
* createCustomCursor(Image img, Point hotSpot, String name) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected DialogPeer createDialog(Dialog a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override public <T extends DragGestureRecognizer> T
* createDragGestureRecognizer( Class<T> recognizerAbstractClass, DragSource
* ds, Component c, int srcActions, DragGestureListener dgl) { return null;
* }
* @Override public DragSourceContextPeer
* createDragSourceContextPeer(DragGestureEvent dge) throws
* InvalidDnDOperationException { throw new InvalidDnDOperationException();
* }
* @Override protected FileDialogPeer createFileDialog(FileDialog a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected FramePeer createFrame(Frame a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected LabelPeer createLabel(Label a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected ListPeer createList(List a0) throws HeadlessException
* { throw new HeadlessException(); }
* @Override protected MenuPeer createMenu(Menu a0) throws HeadlessException
* { throw new HeadlessException(); }
* @Override protected MenuBarPeer createMenuBar(MenuBar a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected MenuItemPeer createMenuItem(MenuItem a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected PopupMenuPeer createPopupMenu(PopupMenu a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected ScrollbarPeer createScrollbar(Scrollbar a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected ScrollPanePeer createScrollPane(ScrollPane a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected TextAreaPeer createTextArea(TextArea a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected TextFieldPeer createTextField(TextField a0) throws
* HeadlessException { throw new HeadlessException(); }
* @Override protected WindowPeer createWindow(Window a0) throws
* HeadlessException { throw new HeadlessException(); }
*/
@Override
public Dimension getBestCursorSize(int prefWidth, int prefHeight) throws HeadlessException {
throw new HeadlessException();
}
@Override
public ColorModel getColorModel() throws HeadlessException {
throw new HeadlessException();
}
@Override
public GraphicsFactory getGraphicsFactory() throws HeadlessException {
throw new HeadlessException();
}
@Override
public boolean getLockingKeyState(int keyCode) throws UnsupportedOperationException {
throw new HeadlessException();
}
@Override
public int getMaximumCursorColors() throws HeadlessException {
throw new HeadlessException();
}
@Override
public int getMenuShortcutKeyMask() throws HeadlessException {
throw new HeadlessException();
}
// ???AWT
/*
* @Override NativeEventQueue getNativeEventQueue() throws HeadlessException
* { throw new HeadlessException(); }
* @Override public PrintJob getPrintJob(Frame frame, String jobtitle,
* JobAttributes jobAttributes, PageAttributes pageAttributes) throws
* IllegalArgumentException { throw new IllegalArgumentException(); }
* @Override public PrintJob getPrintJob(Frame frame, String jobtitle,
* Properties props) throws NullPointerException { throw new
* NullPointerException(); }
*/
@Override
public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException {
throw new HeadlessException();
}
@Override
public int getScreenResolution() throws HeadlessException {
throw new HeadlessException();
}
@Override
public Dimension getScreenSize() throws HeadlessException {
throw new HeadlessException();
}
// ???AWT
/*
* @Override public Clipboard getSystemClipboard() throws HeadlessException
* { throw new HeadlessException(); }
* @Override public Clipboard getSystemSelection() throws HeadlessException
* { throw new HeadlessException(); }
* @Override WindowFactory getWindowFactory() throws HeadlessException {
* throw new HeadlessException(); }
*/
@Override
protected void init() {
lockAWT();
try {
ComponentInternals.setComponentInternals(new ComponentInternalsImpl());
// ???AWT: new EventQueue(this); // create the system EventQueue
// ???AWT: dispatcher = new Dispatcher(this);
desktopProperties = new HashMap<String, Object>();
// ???AWT: desktopPropsSupport = new PropertyChangeSupport(this);
// ???AWT: awtEventsManager = new AWTEventsManager();
// ???AWT: dispatchThread = new HeadlessEventDispatchThread(this,
// dispatcher);
// ???AWT: dtk = DTK.getDTK();
dispatchThread.start();
} finally {
unlockAWT();
}
}
@Override
public boolean isDynamicLayoutActive() throws HeadlessException {
throw new HeadlessException();
}
@Override
protected boolean isDynamicLayoutSet() throws HeadlessException {
throw new HeadlessException();
}
@Override
public boolean isFrameStateSupported(int state) throws HeadlessException {
throw new HeadlessException();
}
@Override
protected void loadSystemColors(int[] systemColors) throws HeadlessException {
throw new HeadlessException();
}
@Override
public Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlight(
InputMethodHighlight highlight) throws HeadlessException {
throw new HeadlessException();
}
@Override
Map<java.awt.font.TextAttribute, ?> mapInputMethodHighlightImpl(InputMethodHighlight highlight)
throws HeadlessException {
throw new HeadlessException();
}
@Override
public void setDynamicLayout(boolean dynamic) throws HeadlessException {
throw new HeadlessException();
}
@Override
public void setLockingKeyState(int keyCode, boolean on) throws UnsupportedOperationException {
throw new HeadlessException();
}
}