/* * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package sun.awt.im; import java.awt.Component; import java.awt.Rectangle; import java.awt.im.spi.InputMethod; /** * An input method adapter interfaces with the native input methods * on a host platform. In general, it looks to the input method * framework like a Java input method (that may support a few more * locales than a typical Java input method). However, since it * often has to work in a slightly hostile environment that's not * designed for easy integration into the Java input method * framework, it gets some special treatment that's not available * to Java input methods. * <p> * Licensees are free to modify this class as necessary to implement * their host input method adapters. * * @author JavaSoft International */ public abstract class InputMethodAdapter implements InputMethod { private Component clientComponent; void setClientComponent(Component client) { clientComponent = client; } protected Component getClientComponent() { return clientComponent; } protected boolean haveActiveClient() { return clientComponent != null && clientComponent.getInputMethodRequests() != null; } /** * Informs the input method adapter about the component that has the AWT * focus if it's using the input context owning this adapter instance. */ protected void setAWTFocussedComponent(Component component) { // ignore - adapters can override if needed } /** * Returns whether host input methods can support below-the-spot input. * Returns false by default. */ protected boolean supportsBelowTheSpot() { return false; } /** * Informs the input method adapter not to listen to the native events. * This method is called when a Java input method is active. */ protected void stopListening() { // ignore - adapters can override if needed } /** * Notifies client Window location or status changes */ public void notifyClientWindowChange(Rectangle location) { } /** * Starts reconvertion. An implementing host adapter has to override * this method if it can support reconvert(). * @exception UnsupportedOperationException when the adapter does not override * the method. */ public void reconvert() { throw new UnsupportedOperationException(); } /** * Disable the native input method. This method is provided for explicitly * turning off the native IM. The native IM is not turned off * when the native input method is deactivated. This method is * always called on AWT EDT. See details in bug 6226489. */ public abstract void disableInputMethod(); /** * Returns a string with information about the native input method, or * null. */ public abstract String getNativeInputMethodInfo(); }