/*
* @(#)CityInputMethodDescriptor.java 1.2 99/12/03
*
* Copyright 1999 by Sun Microsystems, Inc.,
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*/
package com.sun.demos.cityim.internal;
import java.awt.Image;
import java.awt.im.spi.InputMethod;
import java.awt.im.spi.InputMethodDescriptor;
import java.util.Locale;
/**
* Provides sufficient information about an input method
* to enable selection and loading of that input method.
* The input method itself is only loaded when it is actually used.
*/
public class CityInputMethodDescriptor implements InputMethodDescriptor {
private static Locale YOMI = new Locale("ja", "JP", "YOMI");
public CityInputMethodDescriptor() {
}
/**
* @see java.awt.im.spi.InputMethodDescriptor#getAvailableLocales
*/
public Locale[] getAvailableLocales() {
Locale[] locales = {Locale.ENGLISH,
Locale.GERMAN,
Locale.JAPANESE,
YOMI,
Locale.SIMPLIFIED_CHINESE,
Locale.TRADITIONAL_CHINESE};
return locales;
}
/**
* @see java.awt.im.spi.InputMethodDescriptor#hasDynamicLocaleList
*/
public boolean hasDynamicLocaleList() {
return false;
}
/**
* @see java.awt.im.spi.InputMethodDescriptor#getInputMethodDisplayName
*/
public synchronized String getInputMethodDisplayName(Locale inputLocale, Locale displayLanguage) {
String localeName = null;
if (inputLocale == Locale.ENGLISH) {
localeName = "English";
} else if (inputLocale == Locale.GERMAN) {
localeName = "German";
} else if (inputLocale == Locale.JAPANESE) {
localeName = "Japanese";
} else if (inputLocale == YOMI) {
localeName = "Japanese Reading";
} else if (inputLocale == Locale.SIMPLIFIED_CHINESE) {
localeName = "Simplified Chinese";
} else if (inputLocale == Locale.TRADITIONAL_CHINESE) {
localeName = "Traditional Chinese";
}
if (localeName != null) {
return "City Input Method - " + localeName;
} else {
return "City Input Method";
}
}
/**
* @see java.awt.im.spi.InputMethodDescriptor#getInputMethodIcon
*/
public Image getInputMethodIcon(Locale inputLocale) {
return null;
}
/**
* @see java.awt.im.spi.InputMethodDescriptor#createInputMethod
*/
public InputMethod createInputMethod() throws Exception {
return new CityInputMethod();
}
public String toString() {
Locale loc[] = getAvailableLocales();
String locnames = null;
for (int i = 0; i < loc.length; i++) {
if (locnames == null) {
locnames = loc[i].toString();
} else {
locnames += "," + loc[i];
}
}
return getClass().getName() + "[" +
"locales=" + locnames +
",localelist=" + (hasDynamicLocaleList() ? "dynamic" : "static") +
"]";
}
}
|