001 /* InputMethodDescriptor.java -- enables loading and use of an input method 002 Copyright (C) 2002, 2005 Free Software Foundation, Inc. 003 004 This file is part of GNU Classpath. 005 006 GNU Classpath is free software; you can redistribute it and/or modify 007 it under the terms of the GNU General Public License as published by 008 the Free Software Foundation; either version 2, or (at your option) 009 any later version. 010 011 GNU Classpath is distributed in the hope that it will be useful, but 012 WITHOUT ANY WARRANTY; without even the implied warranty of 013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 General Public License for more details. 015 016 You should have received a copy of the GNU General Public License 017 along with GNU Classpath; see the file COPYING. If not, write to the 018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 019 02110-1301 USA. 020 021 Linking this library statically or dynamically with other modules is 022 making a combined work based on this library. Thus, the terms and 023 conditions of the GNU General Public License cover the whole 024 combination. 025 026 As a special exception, the copyright holders of this library give you 027 permission to link this library with independent modules to produce an 028 executable, regardless of the license terms of these independent 029 modules, and to copy and distribute the resulting executable under 030 terms of your choice, provided that you also meet, for each linked 031 independent module, the terms and conditions of the license of that 032 module. An independent module is a module which is not derived from 033 or based on this library. If you modify this library, you may extend 034 this exception to your version of the library, but you are not 035 obligated to do so. If you do not wish to do so, delete this 036 exception statement from your version. */ 037 038 package java.awt.im.spi; 039 040 import java.awt.AWTException; 041 import java.awt.Image; 042 import java.awt.im.InputContext; 043 import java.util.Locale; 044 045 /** 046 * This interface provides information about an InputMethod before it is 047 * loaded. 048 * 049 * @author Eric Blake (ebb9@email.byu.edu) 050 * @since 1.3 051 * @status updated to 1.4 052 */ 053 public interface InputMethodDescriptor 054 { 055 /** 056 * Returns the locales supported by the input method this describes. This 057 * allows the selection of input methods by locale (by language only, or 058 * also by country and variant), via 059 * {@link InputContext#selectInputMethod(Locale)}. The returned list should 060 * ignore pass-through locales, so it is usually a subset of locales for 061 * which {@link InputMethod#setLocale(Locale)} returns true. If 062 * {@link #hasDynamicLocaleList()} returns true, this is called each time 063 * information is needed, allowing dynamic addition or removal of supported 064 * locales. 065 * 066 * @return the list of supported locales 067 * @throws AWTException if the input method is not available 068 */ 069 Locale[] getAvailableLocales() throws AWTException; 070 071 /** 072 * Test whether the input method this describes has a static or dynamic 073 * locale list. For example, this would return true if the list of supported 074 * locales depends on adapters currently loaded over a network. 075 * 076 * @return true if the locale list is dynamic 077 */ 078 boolean hasDynamicLocaleList(); 079 080 /** 081 * Returns a user visible name of the input locale, displayed in the 082 * specified locale. The inputLocale parameter must be one obtained from 083 * the list in {@link #getAvailableLocales()}, or null for a 084 * locale-independent description of the input method. If a translation to 085 * the desired display language is not available, another language may be 086 * used. 087 * 088 * @param inputLocale the locale of the input method, or null 089 * @param displayLanguage the language of the result 090 * @return the name of the input method when using the given inputLocale 091 */ 092 String getInputMethodDisplayName(Locale inputLocale, 093 Locale displayLanguage); 094 095 /** 096 * Returns a 16x16 icon for the input locale. The inputLocale parameter 097 * must be one obtained from the list in {@link #getAvailableLocales()}, or 098 * null for a locale-independent icon for the input method. 099 * 100 * @param inputLocale the locale of the input method, or null 101 * @return a 16x16 icon for the input method when using the given inputLocale 102 */ 103 Image getInputMethodIcon(Locale inputLocale); 104 105 /** 106 * Creates a new instance of the input method. 107 * 108 * @return the newly created input method 109 * @throws Exception if anything goes wrong 110 */ 111 InputMethod createInputMethod() throws Exception; 112 113 } // interface InputMethodDescriptor